Phase1InitializationIoReady
VOID __stdcall Phase1InitializationIoReady(VOID *Context, UINT8 UseAlternateShell, INT64 a3, VOID *a4){
__int64 v6;
int v7;
NTSTATUS inited;
INT64 v9;
RtlpInitializeNonVolatileFlush();
LOBYTE(v6) = *(&stru_140CF2E80 + 1656) != 0;
v7 = ExpInitializeStateSeparationPhase1(v6);
if( (int)(v7 + 0x80000000) >= 0 && v7 != -1073741637 )
KeBugCheckEx(0x32u, 0i64, 0i64, 0i64, 0i64);
CmInitSystem2();
inited = EmInitSystem(1ui64, (_LOADER_PARAMETER_BLOCK *)Context);
if( inited < 0 )
KeBugCheckEx(0x32u, (PVOID)inited, (PVOID)8, (PVOID)1, 0i64);
TmInitSystemPhase2();
InbvSetProgressBarSubset(0i64, 0x64ui64);
if( InitSafeBootMode )
InitSafeBoot(UseAlternateShell);
VmInitSystem(2i64, v9);
MmInitSystem(2ui64, (_LOADER_PARAMETER_BLOCK *)Context);
SaveNodeDistanceInformation();
if( !PoInitSystem(3ui64, (_LOADER_PARAMETER_BLOCK *)Context) )
KeBugCheck(0xA0u);
KeInitializeClock(2ui64, (_LOADER_PARAMETER_BLOCK *)Context);
KiInitializeReservedCpuSets();
TraceLoggingRegisterEx_EtwRegister_EtwSetInformation((char *)&stru_140C00F40 + 7392);
ExLogTimeZoneInformation();
ExInitLicenseData();
if( !PsInitSystem(2ui64, (_LOADER_PARAMETER_BLOCK *)Context) )
goto LABEL_21;
MmInitSystemDll();
if( !SeRmInitPhase1() )
KeBugCheck(0x6Cu);
BootApplicationPersistentDataProcess(2ui64);
if( !PspInitPhase3() )
LABEL_21:
KeBugCheck(0x6Bu);
StartFirstUserProcess();
LODWORD(InitializationPhase) = InitializationPhase + 1;
ExNotifyCallback(*(&ExBootDevicesRemovedEvent + 21), 0i64, 0i64);
if( ViVerifierEnabled )
VfNotifyVerifierOfEvent(5ui64);
if( VfClearanceFlag )
VfClearVerifierSettings();
ExQueryBootEntropyInformation(0i64);
if( !KeInitSystem(4ui64) )
KeBugCheckEx(0x32u, (PVOID)0xFFFFFFFFC0000001i64, 0i64, (PVOID)2, 0i64);
}Referenced by:
Phase1Initialization