Phase1InitializationIoReady
VOID __stdcall Phase1InitializationIoReady(PVOID Context, UINT8 UseAlternateShell){
__int64 v4;
int v5;
NTSTATUS inited;
INT64 v7;
RtlpInitializeNonVolatileFlush();
LOBYTE(v4) = CmStateSeparationEnabled != 0;
v5 = ExpInitializeStateSeparationPhase1(v4);
if( (int)(v5 + 0x80000000) >= 0 && v5 != -1073741637 )
KeBugCheckEx(0x32u, 0i64, 0i64, 0i64, 0i64);
CmInitSystem2();
inited = EmInitSystem(1ui64, (_LOADER_PARAMETER_BLOCK *)Context);
if( inited < 0 )
KeBugCheckEx(0x32u, inited, 8ui64, 1ui64, 0i64);
TmInitSystemPhase2();
InbvSetProgressBarSubset(0i64, 0x64ui64);
if( InitSafeBootMode )
InitSafeBoot(UseAlternateShell);
VmInitSystem(2i64, v7);
MmInitSystem(2ui64, (_LOADER_PARAMETER_BLOCK *)Context);
SaveNodeDistanceInformation();
if( !PoInitSystem(3ui64, (_LOADER_PARAMETER_BLOCK *)Context) )
KeBugCheck(0xA0ui64);
KeInitializeClock(2ui64, (_LOADER_PARAMETER_BLOCK *)Context);
KiInitializeReservedCpuSets();
TraceLoggingRegisterEx_EtwRegister_EtwSetInformation(&dword_140C02C20);
ExLogTimeZoneInformation();
ExInitLicenseData();
if( !PsInitSystem(2ui64, (_LOADER_PARAMETER_BLOCK *)Context) )
goto LABEL_21;
MmInitSystemDll();
if( !SeRmInitPhase1() )
KeBugCheck(0x6Cui64);
BootApplicationPersistentDataProcess(2i64);
if( !PspInitPhase3() )
LABEL_21:
KeBugCheck(0x6Bui64);
StartFirstUserProcess();
++*(_DWORD *)InitializationPhase;
ExNotifyCallback(ExCbPhase1InitComplete, 0i64, 0i64);
if( ViVerifierEnabled )
VfNotifyVerifierOfEvent(5ui64);
if( VfClearanceFlag )
VfClearVerifierSettings();
ExQueryBootEntropyInformation(0i64);
if( !KeInitSystem(4ui64) )
KeBugCheckEx(0x32u, 0xFFFFFFFFC0000001ui64, 0i64, 2ui64, 0i64);
}Referenced by:
Phase1Initialization