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 codeDescription
HV_STATUS_SUCCESS

HvGetVpRegisters successfully read the architectural state of a virtual processor.

HV_STATUS_ACCESS_DENIED

The caller is neither the partition itself nor the parent of the specified partition.

HV_STATUS_INVALID_PARTITION_ID

The specified partition identifier is invalid.

HV_STATUS_INVALID_VP_INDEX

The specified VP index does not reference a virtual processor within the specified partition.

HV_STATUS_INVALID_PARAMETER

One of the specified register names is invalid.

HV_STATUS_INVALID_PARTITION_STATE

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

Hvgdk.h (include Hvgdk.h)

IRQL

Any level

See also

HV_REGISTER_NAME
HV_REGISTER_VALUE

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.