HviGetIptFeatures
CHAR __fastcall HviGetIptFeatures(INT32 *a1){
__int32 v2;
__int64 v3;
INT32 v5[4];
INT32 v6[4];
*(_OWORD *)v5 = 0i64;
*(_OWORD *)v6 = 0i64;
LOBYTE(v2) = HviIsHypervisorMicrosoftCompatible();
if( (_BYTE)v2
&& (LOBYTE(v2) = HviGetHypervisorVendorAndMaxFunction(v5), v5[0] >= 0x4000000Bu)
&& (LOBYTE(v2) = HviGetHypervisorFeatures(v6), (v6[3] & 0x8000000) != 0) )
{
v3 = __cpuid(1073741835, 0);
v2 = EAX(v3);
*a1 = v2;
a1[1] = EBX(v3);
a1[2] = ECX(v3);
a1[3] = EDX(v3);
}
else
{
*(_QWORD *)a1 = 0i64;
*((_QWORD *)a1 + 1) = 0i64;
}
return v2;
}Referenced by:
KiGetIptInfo