PopIrpWatchdogBugcheck
VOID __stdcall __noreturn PopIrpWatchdogBugcheck(_POP_IRP_DATA *IrpData){
_POP_IRP_DATA *v1;
_DEVICE_OBJECT *Pdo;
_QWORD *DeviceNode;
__int64 v4;
_POP_IRP_DATA *v5;
unsigned __int16 *BugCheckParameter4;
int BugCheckParameter3[2];
__int64 v8;
__int64 v9;
__int64 v10;
__int64 v11;
v1 = IrpData;
if( IrpData->PowerStateType == SystemPowerState )
{
Pdo = IrpData->Pdo;
if( Pdo )
DeviceNode = Pdo->DeviceObjectExtension->DeviceNode;
else
DeviceNode = 0i64;
v4 = DeviceNode[33];
if( v4 )
{
v5 = *(_POP_IRP_DATA **)(v4 + 72i64 * *(char *)(v4 + 66) + 200);
if( v5->MinorFunction == IrpData->MinorFunction )
v1 = v5;
}
}
BugCheckParameter4 = (unsigned __int16 *)v1->Irp;
PopInternalAddToDumpFile(0i64, 0i64, v1->Pdo);
IoAddTriageDumpDataBlock(BugCheckParameter4, (_BYTE *)BugCheckParameter4[1]);
IoAddTriageDumpDataBlock(v1, (_BYTE *)0x100);
BugCheckParameter3[1] = 0;
v8 = (__int64)&stru_140C23628 + 952;
BugCheckParameter3[0] = 163840;
v9 = (__int64)&PopIrpWorkerControlEvent + 128;
v10 = *(&WheapDeferredInternalLogsEventLock + 337);
v11 = *(&WheapDeferredInternalLogsEventLock + 338);
KeBugCheckEx(0x9Fu, (PVOID)3, v1->Pdo, BugCheckParameter3, BugCheckParameter4);
}Referenced by:
PopDequeueQuerySetIrp
PopIrpWatchdog