PnpStartDevice

__int64 __fastcall PnpStartDevice(
        _DEVICE_OBJECT *DeviceObject,
        int (__fastcall *a2)(_DEVICE_OBJECT *, _IRP *, void *),
        UINT64 *a3){
  void *DeviceNode; 
  __int64 v7; 
  _IO_STACK_LOCATION TopStackLocation; 

  if( DeviceObject )
    DeviceNode = DeviceObject->DeviceObjectExtension->DeviceNode;
  else
    DeviceNode = 0i64;
  PoFxPrepareDevice((_DEVICE_NODE *)DeviceNode, 1u);
  *((_DWORD *)DeviceNode + 39) = 1;
  memset(&TopStackLocation, 0i64, sizeof(TopStackLocation));
  TopStackLocation.Parameters.SecurityContext = (_IO_SECURITY_CONTEXT *)*((_QWORD *)DeviceNode + 52);
  *(_QWORD *)&TopStackLocation.Parameters.Options = *((_QWORD *)DeviceNode + 53);
  *(_WORD *)&TopStackLocation.MajorFunction = 27;
  return PnpSendIrp(DeviceObject, &TopStackLocation, v7, a2, a3);
}

Referenced by:

PnpStartDeviceNode