PnpCancelStopDeviceNode
void __fastcall PnpCancelStopDeviceNode(ULONG_PTR BugCheckParameter2){
DEVICE_OBJECT *v2;
UINT64 v3;
if( *(_DWORD *)(BugCheckParameter2 + 300) == 777 )
{
if( (*(_DWORD *)(BugCheckParameter2 + 704) & 0x20) == 0 )
KeBugCheckEx(0xCAu, 0xDui64, BugCheckParameter2, 0x20ui64, 0i64);
PoFxIdleDevice(*(DEVICE_OBJECT **)(BugCheckParameter2 + 32));
v2 = *(DEVICE_OBJECT **)(BugCheckParameter2 + 32);
*(_DWORD *)(BugCheckParameter2 + 704) &= ~0x20u;
IopQueryReconfiguration(6u, v2);
PipRestoreDevNodeState(BugCheckParameter2, v3);
if( (*(_DWORD *)(BugCheckParameter2 + 396) & 0x1000000) != 0 )
{
PnpUnlockMountableDevice(*(DEVICE_OBJECT **)(BugCheckParameter2 + 32));
PipClearDevNodeFlags((_DEVICE_NODE *)BugCheckParameter2, 0x1000000ui64);
}
}
}Referenced by:
PnpCancelStopDeviceSubtree
PnpQueryRebalanceWorker