SmKmIssueIo

NTSTATUS __stdcall SmKmIssueIo(
        _SMKM_FILE_INFO *FileInfo,
        _SMKM_ISSUE_IO_PARAMS *IoParams,
        VOID *CompletionRoutine,
        VOID *CompletionContext,
        UINT64 PerformsFileIo){
  __int64 v5; 
  __int64 i; 
  _LARGE_INTEGER v8; 

  v5 = (unsigned int)IoParams[6];
  for( i = *((_QWORD *)FileInfo + 6); (unsigned int)v5 >= *(_DWORD *)i; i += 16i64 )
    v5 = (unsigned int)(v5 - *(_DWORD *)i);
  v8.QuadPart = *(_QWORD *)(i + 8) + (unsigned int)IoParams[5] + v5 * (unsigned int)IoParams[7];
  if( (_DWORD)PerformsFileIo )
    return SmKmIssueFileIo(
             (__int64 *)FileInfo,
             (__int64)IoParams,
             &v8,
             (void(__stdcall *)(PVOID, PIO_STATUS_BLOCK, ULONG))CompletionRoutine,
             CompletionContext);
  else
    return SmKmIssueVolumeIo(
             (__int64)FileInfo,
             (__int64)IoParams,
             &v8,
             (int(__fastcall *)(_DEVICE_OBJECT *, _IRP *, void *))CompletionRoutine,
             CompletionContext);
}

Referenced by:

SmIssueIo