PnpBootPhaseComplete
INT64 __fastcall PnpBootPhaseComplete(){
int v0;
WORK_QUEUE_ITEM *PoolWithTag;
v0 = PiPnpRtlInit(2ui64);
if( v0 >= 0 )
{
PnpBootMode = 0;
if( PnpSetupOOBEInProgress
&& (int)ExSubscribeWnfStateChange(
&PnpSetupWnfSubscription,
(INT64 *)&WNF_DEP_OOBE_COMPLETE,
1i64,
0i64,
(INT64)PipUpdateSetupOobeCompleteWnfCallback,
0i64) < 0 )
{
PnpSetupOOBEInProgress = 0;
}
v0 = PiDmaGuardInitialize(2i64);
if( v0 >= 0 )
{
PnpRequestDeviceAction(*((_DEVICE_OBJECT **)IopRootDeviceNode + 4), ClearProblem, 0, 0x27ui64, 0i64, 0i64);
v0 = PpDevCfgProcessDevices();
if( v0 >= 0 )
{
PoolWithTag = (WORK_QUEUE_ITEM *)ExAllocatePoolWithTag(NonPagedPoolNx, 0x20ui64, 0x6E697050ui64);
if( PoolWithTag )
{
PoolWithTag->List.Flink = 0i64;
PoolWithTag->WorkerRoutine = PipUpdateDeviceProducts;
PoolWithTag->Parameter = PoolWithTag;
ExQueueWorkItem(PoolWithTag, NormalWorkQueue);
}
else
{
return(unsigned int)-1073741670;
}
}
}
}
return(unsigned int)v0;
}Referenced by:
CmCompleteRegistryInitialization