PipProcessRestartPhase1

__int64 __fastcall PipProcessRestartPhase1(__int64 a1, int a2, __int64 a3){
  int v3; 
  unsigned int started; 
  v3 = a3;
  if( (byte_140C130BB & 0x10) != 0 )
    McTemplateK0dz_EtwWriteTransfer(a1, &KMPnPEvt_ProcessDeviceRestart_Start, a3, 1i64, *(const WCHAR **)(a1 + 48));
  if( v3 && (*(_DWORD *)(a1 + 396) & 0x400000) != 0 )
  {
    started = -1073741267;
  }
  else
  {
    started = PnpStartDeviceNode(a1, 1, a2);
    if( (*(_DWORD *)(a1 + 396) & 0x1000000) != 0 )
    {
      PnpUnlockMountableDevice(*(DEVICE_OBJECT **)(a1 + 32));
      PipClearDevNodeFlags((_DEVICE_NODE *)a1, 0x1000000ui64);
    }
  }
  if( (byte_140C130BB & 0x10) != 0 )
    McTemplateK0dz_EtwWriteTransfer(a1, &KMPnPEvt_ProcessDeviceRestart_Stop, a3, 1i64, *(const WCHAR **)(a1 + 48));
  return started;
}

Referenced by:

PipProcessDevNodeTree