PpIrpAllocateDeviceUsageNotification
_IRP *__stdcall PpIrpAllocateDeviceUsageNotification(INT64 a1){
_KEVENT *v1;
INT64 v3;
_IRP *result;
_IO_STACK_LOCATION *CurrentStackLocation;
v1 = (_KEVENT *)(a1 + 40);
KeInitializeEvent(a1 + 40, 0, 0);
LOBYTE(v3) = *(_BYTE *)(*(_QWORD *)a1 + 76i64);
result = (_IRP *)IoAllocateIrp(v3, 0);
if( result )
{
result->Tail.OriginalFileObject = *(_FILE_OBJECT **)(a1 + 16);
result->Tail.Thread = (_ETHREAD *)KeGetCurrentThread();
result->UserIosb = (_IO_STATUS_BLOCK *)(a1 + 24);
CurrentStackLocation = result->Tail.CurrentStackLocation;
result->RequestorMode = 0;
result->UserEvent = v1;
result->Flags = 4;
result->Overlay.UserApcRoutine = 0i64;
*(_WORD *)&CurrentStackLocation[-1].MajorFunction = 5659;
CurrentStackLocation[-1].FileObject = *(_FILE_OBJECT **)(a1 + 16);
result->IoStatus.Status = -1073741637;
result->AssociatedIrp.MasterIrp = 0i64;
LOBYTE(CurrentStackLocation[-1].Parameters.SecurityContext) = *(_BYTE *)(a1 + 12);
CurrentStackLocation[-1].Parameters.Options = *(_DWORD *)(a1 + 8);
}
return result;
}Referenced by:
PiPagePathSetState
PipSendGuestAssignedNotification