Virtual Processor Data Types
The hypervisor defines the following data types to manage virtual processors.
VP Index
Virtual processors are identified by using an index called the VpIndex. The maximum number of virtual processors per partition that are supported by the current implementation of the hypervisor can be obtained through CPUID leaf 0x40000005. A virtual processor index must be less than the maximum number of virtual processors per partition.
A special value HV_ANY_VP can be used in certain situations to specify any virtual processor. A virtual processor index and HV_ANY_VP are defined as follows:
typedef UINT32 HV_VP_INDEX; #define HV_ANY_VP 0xFFFFFFFF
A virtual processor's identifier can be retrieved by the guest operating system through a hypervisor-defined model-specific register (MSR) HV_X64_MSR_VP_INDEX.
#define HV_X64_MSR_VP_INDEX 0x40000002
VP Register Names
Virtual processor state is referenced by register names, 32-bit numbers that uniquely identify a register. Register names are identified by values from the HV_REGISTER_NAME enumeration.
VP Register Values
Virtual processor register values are all 128 bits in size. Values that do not consume the full 128 bits are zero-extended to fill out the entire 128 bits. Register values are described by a HV_REGISTER_VALUE union.
Send comments about this topic to Microsoft
Build date: 11/16/2013