HvlPhase1Initialize
VOID __stdcall HvlPhase1Initialize(){
INT64 v0;
INT64 v1;
__int64 v2;
int v3;
UINT64 v4;
_HV_STATS_OBJECT_IDENTITY ObjectId;
UINT64 StatsPagePa;
StatsPagePa = 0i64;
v1 = v0;
if( HviIsAnyHypervisorPresent() && (HvlpRootFlags & 4) == 0 )
{
*(&HvlpHvIdentityInfoCallbackRecord.State + 4) = 0;
KeRegisterBugCheckReasonCallback(
&HvlpHvIdentityInfoCallbackRecord,
(PKBUGCHECK_REASON_CALLBACK_ROUTINE)HvlpHvIdentityInfoCallback,
KbCallbackSecondaryDumpData,
&HvlpComponentName);
}
if( (_BYTE)HvlHypervisorConnected )
{
MmMarkHypercallPageRetpolineBit();
HvlpSetupCachedHypercallPages(KeGetCurrentPrcb());
HvlpInitializePowerStatistics();
if( (HvlpRootFlags & 0x10) != 0 )
{
ObjectId = 0i64;
HvlpMapStatisticsPage(HvStatsObjectHypervisor, &ObjectId, &StatsPagePa);
if( v3 >= 0 )
HvlpHypervisorStatsPage = (__int64)MmMapIoSpaceEx((_LARGE_INTEGER)StatsPagePa, 0x1000ui64, 2ui64);
}
LOBYTE(v2) = 1;
HvlConfigureMemoryZeroingOnReset(v2);
LODWORD(HvlpFlags) = HvlpFlags | 8;
VslpIumPhase0Initialize(v1);
if( (HvlpRootFlags & 4) != 0 || VslVsmEnabled )
HvlpInitializeHvCrashdump(*(_QWORD *)(v1 + 240) + 2504i64, v4);
}
}Referenced by:
InitBootProcessor