HviIsHypervisorMicrosoftCompatible

The HviIsHypervisorMicrosoftCompatible function tells whether the cpuid instruction is implemented by a hypervisor that has Microsoft’s interface.

Declaration

BOOLEAN HviIsHypervisorMicrosoftCompatible (VOID);

Return Value

The function returns TRUE or FALSE according to whether a hypervisor is present and implements Microsoft’s interface.

Availability

The HviIsHypervisorMicrosoftCompatible function is exported by name from the kernel in version 10.0 and higher.

History

The version 6.3 kernel has an inline routine that is coded very similarly to the version 10.0 HviIsHypervisorMicrosoftCompatible. Public symbol files for the version 6.3 kernel confirm that this earlier kernel has an inline routine that was already named HviIsHypervisorMicrosoftCompatible, took no input and returned a BOOLEAN. That the inline routine in the binary is the same as named in the symbol files which is in turn the origin of the exported function must be all but certain.

Documentation Status

The HviIsHypervisorMicrosoftCompatible function is not documented.

Behaviour

If a hypervisor is present, the function executes cpuid leaf 0x40000001 to get the 4-byte signature of the hypervisor’s interface—see HviGetHypervisorInterface. The function returns TRUE if and only if this signature is 0x31237648, i.e., “Hv#1” when the bytes are read as text from least significant to most.