CPUID Access

Note: These APIs are not yet publicly available and will be included in a future Windows release.

Syntax

//
// Context data for an exit caused by a CPUID call (WHvRunVpExitReasonX64CPUID)
//
typedef struct WHV_X64_CPUID_ACCESS_CONTEXT
{
    // Context of the virtual processor
    WHV_VP_EXIT_CONTEXT VpContext;

    // CPUID access info
    UINT64 Rax;
    UINT64 Rcx;
    UINT64 Rdx;
    UINT64 Rbx;
    UINT64 DefaultResultRax;
    UINT64 DefaultResultRcx;
    UINT64 DefaultResultRdx;
    UINT64 DefaultResultRbx;
} WHV_X64_CPUID_ACCESS_CONTEXT;

Return Value

Information about exits caused by the virtual processor executing the CPUID instruction is provided in the WHV_X64_CPUID_ACCESS_CONTEXT structure. The DefaultResultRax-Rbx members of the structure provide the values of the requested CPUID values that the hypervisor would return based on the partition properties and the capabilities of the host.

Exits for CPUID accesses are only generated if they are enabled by setting the WHV_EXTENDED_VM_EXITS.CpuidExit property for the partition.