HviGetHardwareFeatures

NTSTATUS __fastcall HviGetHardwareFeatures(INT64 a1){
  NTSTATUS result; 
  __int64 v3; 
  _HV_VENDOR_AND_MAX_FUNCTION HvVendorAndMaxFunctionOut; 

  HvVendorAndMaxFunctionOut = 0i64;
  HviGetHypervisorVendorAndMaxFunction(&HvVendorAndMaxFunctionOut);
  if( HvVendorAndMaxFunctionOut.MaxFunction < 0x40000006 )
  {
    result = 0;
    *(_QWORD *)a1 = 0i64;
    *(_QWORD *)(a1 + 8) = 0i64;
  }
  else
  {
    v3 = __cpuid(1073741830, 0);
    result = EAX(v3);
    *(_DWORD *)a1 = result;
    *(_DWORD *)(a1 + 4) = EBX(v3);
    *(_DWORD *)(a1 + 8) = ECX(v3);
    *(_DWORD *)(a1 + 12) = EDX(v3);
  }
  return result;
}

Referenced by:

EtwpTraceSystemInitialization
HalpInterruptInitDiscard
HalpIommuInitDiscard
HviIsIommuInUse
HvipApertureDetectParameters
HvlQueryDetailInfo
HvlQueryVsmProtectionInfo
HvlpDetermineEnlightenments