SmKmIssueFileIo

__int64 __fastcall SmKmIssueFileIo(
        struct _SMKM_FILE_INFO *a1,
        struct _SMKM_ISSUE_IO_PARAMS *a2,
        union _LARGE_INTEGER *a3,
        void (__stdcall *a4)(void *, struct _IO_STATUS_BLOCK *, unsigned int),
        void *ApcContext){
  struct _IO_STATUS_BLOCK *v6; 
  void *v7; 
  void *v8; 
  NTSTATUS File; 
  ULONG v11; 
  v6 = *(struct _IO_STATUS_BLOCK **)a2;
  v7 = (void *)*((_QWORD *)a2 + 1);
  v8 = *(void **)a1;
  v11 = *((_DWORD *)a2 + 4);
  if( (*((_DWORD *)a2 + 8) & 1) != 0 )
    File = NtReadFile(v8, 0i64, a4, ApcContext, v6, v7, v11, a3, 0i64);
  else
    File = NtWriteFile(v8, 0i64, a4, ApcContext, v6, v7, v11, a3, 0i64);
  if( (File & 0xC0000000) == -1073741824 )
  {
    v6->Status = File;
    ((void(__fastcall *)(void *, struct _IO_STATUS_BLOCK *, _QWORD))a4)(ApcContext, v6, 0i64);
  }
  return 259i64;
}

Referenced by:

SmKmIssueIo