PipProcessRestartPhase1
NTSTATUS __stdcall PipProcessRestartPhase1(_DEVICE_NODE *DeviceNode, UINT64 Synchronous, UINT64 OperationsPending){
int v3;
int v4;
NTSTATUS started;
INT64 v7;
v3 = OperationsPending;
v4 = Synchronous;
if( (byte_140C130BB & 0x10) != 0 )
McTemplateK0dz_EtwWriteTransfer(
(__int64)DeviceNode,
(const _EVENT_DESCRIPTOR *)KMPnPEvt_ProcessDeviceRestart_Start,
OperationsPending,
1,
DeviceNode->InstancePath.Buffer);
if( v3 && (DeviceNode->Flags & 0x400000) != 0 )
{
started = -1073741267;
}
else
{
started = PnpStartDeviceNode(DeviceNode, 1, v4);
if( (DeviceNode->Flags & 0x1000000) != 0 )
{
PnpUnlockMountableDevice((__int64)DeviceNode->PhysicalDeviceObject, v7, OperationsPending);
PipClearDevNodeFlags(DeviceNode, 0x1000000ui64);
}
}
if( (byte_140C130BB & 0x10) != 0 )
McTemplateK0dz_EtwWriteTransfer(
(__int64)DeviceNode,
(const _EVENT_DESCRIPTOR *)KMPnPEvt_ProcessDeviceRestart_Stop,
OperationsPending,
1,
DeviceNode->InstancePath.Buffer);
return started;
}Referenced by:
PipProcessDevNodeTree