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