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