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.