KiIsHyperVCr3RspErrataPresent
BOOL __stdcall KiIsHyperVCr3RspErrataPresent(INT64 a1){
bool v1;
BOOL result;
_HV_HYPERVISOR_VERSION_INFO HypervisorVersionOut;
_HV_X64_HYPERVISOR_FEATURES HvFeaturesOut;
v1 = *(_BYTE *)(a1 + 141) == 1;
HypervisorVersionOut = 0i64;
result = 0;
if( v1 )
{
if( HviIsHypervisorVendorMicrosoft() )
{
HvFeaturesOut = 0i64;
HviGetHypervisorFeatures(&HvFeaturesOut);
if( (HvFeaturesOut.PartitionPrivileges.AsUINT64 & 0x100000000000i64) == 0 )
{
HviGetHypervisorVersion(&HypervisorVersionOut);
if( HypervisorVersionOut.BuildNumber < 0x429D
&& (HypervisorVersionOut.BuildNumber != 14393 || (HypervisorVersionOut._bf_c & 0xFFFFFFu) < 0x1479) )
{
return 1;
}
}
}
}
return result;
}Referenced by:
KiIsBranchConfusionMitigationSupported