KdpCreateFileCallback

NTSTATUS __stdcall KdpCreateFileCallback(INT64 a1, PFN_WDFCX_DEVICE_POST_SELF_MANAGED_IO_INIT *a2, _LARGE_INTEGER a3){
  int v3; 
  NTSTATUS v4; 
  _LARGE_INTEGER *AllocationSize; 
  UINT64 FileAttributes; 
  UINT64 v8; 
  UINT64 CreateDisposition; 
  UINT64 CreateOptions; 
  UINT64 v11; 
  _IO_STATUS_BLOCK IoStatusBlock; 
  _OBJECT_ATTRIBUTES ObjectAttributes; 
  _LARGE_INTEGER v14; 

  *(&ObjectAttributes.Length + 1) = 0;
  memset(&ObjectAttributes.Attributes + 1, 0, 20);
  ObjectAttributes.RootDirectory = 0i64;
  ObjectAttributes.ObjectName = (_UNICODE_STRING *)a2;
  v3 = *(_DWORD *)(a1 + 8);
  v14 = a3;
  LODWORD(v11) = 0;
  ObjectAttributes.Length = 48;
  LODWORD(CreateOptions) = (*(&stru_140CF2E80 + 1656) != 0 ? 0x80000 : 0) | v3;
  LODWORD(CreateDisposition) = *(_DWORD *)(a1 + 4);
  LODWORD(v8) = 0;
  LODWORD(FileAttributes) = *(_DWORD *)a1;
  IoStatusBlock = 0i64;
  ObjectAttributes.Attributes = 576;
  LODWORD(AllocationSize) = ZwCreateFile(
                              (VOID **)(a1 + 16),
                              0x120116ui64,
                              &ObjectAttributes,
                              &IoStatusBlock,
                              &v14,
                              FileAttributes,
                              v8,
                              CreateDisposition,
                              CreateOptions,
                              0i64,
                              v11);
  v4 = (int)AllocationSize;
  DbgPrintEx(
    0,
    0,
    "KdPullRemoteFile(%p): Return from ZwCreateFile with status %x\n",
    KeGetCurrentThread(),
    AllocationSize);
  if( v4 < 0 )
    DbgPrintEx(0, 2u, "\nKdPullRemoteFile: Local file open failed, 0x%08x\n", (unsigned int)v4);
  return v4;
}

Referenced by:

No references.