HvGetVpRegisters function
The HvGetVpRegisters function reads the architectural state of a virtual processor.
Syntax
HV_STATUS HvGetVpRegisters( _In_ HV_PARTITION_ID PartitionId, _In_ HV_VP_INDEX VpIndex, _Inout_ PUINT32 RegisterCount, _In_ PCHV_REGISTER_NAME RegisterNameList, _In_ PHV_REGISTER_VALUE RegisterValueList );
Parameters
- PartitionId [in]
-
An HV_PARTITION_ID value that identifies the partition on which HvGetVpRegisters reads the architectural state of a virtual processor. HV_PARTITION_ID is defined as an unsigned 64-bit (UINT64) value.
- VpIndex [in]
-
An HV_VP_INDEX value that specifies the index of the virtual processor for which that HvGetVpRegisters reads the architectural state. HV_VP_INDEX is defined as an unsigned 32-bit (UINT32) value.
- RegisterCount [in, out]
-
A pointer to a variable that contains the number of registers to read. HvGetVpRegisters specifies the actual number of registers that it read.
- RegisterNameList [in]
-
A pointer to an array of HV_REGISTER_NAME variables for the names of the registers for which HvGetVpRegisters should request the state.
- RegisterValueList [in]
-
A pointer to an array of HV_REGISTER_VALUE variables that HvGetVpRegisters stores the requested register state values in.
Return value
HvGetVpRegisters returns one of the following values. In addition to these values, HvGetVpRegisters can also return one of the values that are specified in Common Hypercall Status Codes.
| Return code | Description |
|---|---|
|
HvGetVpRegisters successfully read the architectural state of a virtual processor. |
|
The caller is neither the partition itself nor the parent of the specified partition. |
|
The specified partition identifier is invalid. |
|
The specified VP index does not reference a virtual processor within the specified partition. |
|
One of the specified register names is invalid. |
|
The specified partition is not in the active state. |
Remarks
The HvGetVpRegisters function is a rep call. The caller passes a valid value to the RegisterCount parameter in a call to HvGetVpRegisters as the rep count. For more information about hypercall inputs, see Hypercall Inputs.
HvGetVpRegisters returns the state of a virtual processor as a series of register values in the array that the RegisterValueList parameter specifies. Each register value that HvGetVpRegisters returns corresponds to a register name that the caller provided as input to the array that the RegisterNameList parameter specifies.
HvGetVpRegisters has the following restrictions:
-
The partition that PartitionId specifies must be in the active state.
-
The caller must be the parent of the partition that is specified by PartitionId or the partition that specifies its own partition identifier.
Native Interface
| HvGetVpRegisters [rep] | |
|---|---|
|
Call Code = 0x0050 | |
| Input Parameter Header | |
|
0 |
PartitionId (8 bytes) |
|
8 |
VpIndex (4 bytes) Padding (4 bytes) |
| Input List Element | |
|
0 |
RegisterName[0] (4 bytes) RegisterName[1] (4 bytes) |
| Output List Element | |
|
0 |
RegisterValue (low-order) (8 bytes) |
|
8 |
RegisterValue (high-order) (8 bytes) |
Requirements
|
Version | HvGetVpRegisters is available in version 1.0 and later versions of the hypervisor. |
|---|---|
|
Header |
|
|
IRQL | Any level |
See also
Send comments about this topic to Microsoft
Build date: 11/16/2013
