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