Geoff Chappell, Software Analyst
The HV_HYPERVISOR_VERSION_INFO structure collects the information that a hypervisor’s cpuid leaf 0x40000002 produces in the eax, ebx, ecx and edx registers.
The HV_HYPERVISOR_VERSION_INFO is documented in the Windows Driver Kit (WDK) for Windows 7, which was the last to have documentation included. That kit also provides a C-language definition in the HVGDK.H header file. Later kits do not.
The structure anyway repackages material that Microsoft documents in the Hypervisor Top-Level Functional Specification. If it has become undocumented, it may be just that Microsoft regards the structure as no more than a convenience for Microsoft’s own programming in the loader and kernel, if not in the hypervisor itself.
The HV_HYPERVISOR_VERSION_INFO is 0x10 bytes. Names and definitions below are from the C-language definition in the WDK for Windows 7 and from type information in the symbol files for URLMON.DLL in Windows 8 and higher. Well might you wonder what URLMON.DLL has to do with the hypervisor such that its symbol files have type information for this structure but the kernel’s don’t!
UINT MinorVersion : 16; UINT MajorVersion : 16;
UINT ServiceNumber : 24; UINT ServiceBranch : 8;