HvlPhase1Initialize

NTSTATUS __stdcall HvlPhase1Initialize(_LOADER_PARAMETER_BLOCK *LoaderBlock){
  __int64 v3; 
  UINT64 v4; 
  __int128 v5; 
  _LARGE_INTEGER PhysicalAddress; 
  PhysicalAddress.QuadPart = 0i64;
  if( (unsigned __int8)HviIsAnyHypervisorPresent() && (HvlpRootFlags & 4) == 0 )
  {
    HvlpHvIdentityInfoCallbackRecord.State = 0;
    KeRegisterBugCheckReasonCallback(
      &HvlpHvIdentityInfoCallbackRecord,
      (PKBUGCHECK_REASON_CALLBACK_ROUTINE)HvlpHvIdentityInfoCallback,
      KbCallbackSecondaryDumpData,
      &HvlpComponentName);
  }
  if( (_BYTE)HvlHypervisorConnected )
  {
    MmMarkHypercallPageRetpolineBit();
    HvlpSetupCachedHypercallPages(KeGetCurrentPrcb());
    HvlpInitializePowerStatistics();
    if( (HvlpRootFlags & 0x10) != 0 )
    {
      v5 = 0i64;
      if( (int)HvlpMapStatisticsPage(1, &v5, &PhysicalAddress) >= 0 )
      {
        MmMapIoSpaceEx(PhysicalAddress, 0x1000ui64, 2ui64);
        HvlpHypervisorStatsPage = v3;
      }
    }
    HvlConfigureMemoryZeroingOnReset(1);
    LODWORD(HvlpFlags) = HvlpFlags | 8;
    VslpIumPhase0Initialize((INT64)LoaderBlock);
    if( (HvlpRootFlags & 4) != 0 || VslVsmEnabled )
      HvlpInitializeHvCrashdump(*((_QWORD *)LoaderBlock + 30) + 2504i64, v4);
  }
  return 0;
}

Referenced by:

InitBootProcessor