PnpCancelStopDeviceNode
void __fastcall PnpCancelStopDeviceNode(_DEVICE_NODE *DeviceNode){
_DEVICE_OBJECT *PhysicalDeviceObject;
INT64 v3;
INT64 v4;
if( DeviceNode->State == DeviceNodeQueryStopped )
{
if( (DeviceNode->StateFlags & 0x20) == 0 )
KeBugCheckEx(0xCAu, (PVOID)0xD, DeviceNode, (PVOID)0x20, 0i64);
PoFxIdleDevice(DeviceNode->PhysicalDeviceObject);
PhysicalDeviceObject = DeviceNode->PhysicalDeviceObject;
DeviceNode->StateFlags &= ~0x20u;
IopQueryReconfiguration(6u, PhysicalDeviceObject);
PipRestoreDevNodeState(DeviceNode);
if( (DeviceNode->Flags & 0x1000000) != 0 )
{
PnpUnlockMountableDevice((__int64)DeviceNode->PhysicalDeviceObject, v3, v4);
PipClearDevNodeFlags(DeviceNode, 0x1000000ui64);
}
}
}Referenced by:
PnpCancelStopDeviceSubtree
PnpQueryRebalanceWorker