PnpBootPhaseComplete

__int64 PnpBootPhaseComplete(){
  NTSTATUS v0; 
  _WORK_QUEUE_ITEM *PoolWithTag; 

  v0 = PiPnpRtlInit(2ui64);
  if( v0 >= 0 )
  {
    PnpBootMode = 0;
    if( HIBYTE(qword_140C50A2C)
      && ExSubscribeWnfStateChange(
           &PnpSetupWnfSubscription,
           (INT64 *)&WNF_DEP_OOBE_COMPLETE,
           1i64,
           0i64,
           (INT64)PipUpdateSetupOobeCompleteWnfCallback,
           0i64) < 0 )
    {
      HIBYTE(qword_140C50A2C) = 0;
    }
    v0 = PiDmaGuardInitialize(2);
    if( v0 >= 0 )
    {
      PnpRequestDeviceAction(*(PVOID *)(*(&PnpReplaceEvent + 831) + 32i64), 2, 0, 39i64, 0i64, 0i64, 0i64);
      v0 = PpDevCfgProcessDevices();
      if( v0 >= 0 )
      {
        PoolWithTag = (_WORK_QUEUE_ITEM *)ExAllocatePoolWithTag(0x200ui64, 0x20ui64, 1852403792i64);
        if( PoolWithTag )
        {
          PoolWithTag->List.Flink = 0i64;
          PoolWithTag->WorkerRoutine = (void(__fastcall *)(void *))PipUpdateDeviceProducts;
          PoolWithTag->Parameter = PoolWithTag;
          ExQueueWorkItem(PoolWithTag, NormalWorkQueue);
        }
        else
        {
          return(unsigned int)-1073741670;
        }
      }
    }
  }
  return(unsigned int)v0;
}

Referenced by:

CmCompleteRegistryInitialization