Compartir a través de


HvCallSetVpRegisters

El hiperllamada HvCallSetVpRegisters escribe el estado de un procesador virtual.

Interfaz

HV_STATUS
HvCallSetVpRegisters(
   _In_ HV_PARTITION_ID PartitionId,
   _In_ HV_VP_INDEX VpIndex,
   _In_ HV_INPUT_VTL InputVtl,
   _Inout_ PUINT32 RegisterCount,
   _In_reads(RegisterCount) PCHV_REGISTER_NAME RegisterNameList,
   _In_reads(RegisterCount) PCHV_REGISTER_VALUE RegisterValueList
   );

El estado se escribe como una serie de valores de registro, cada uno correspondiente a un nombre de registro proporcionado como entrada.

La comprobación de errores mínima se realiza cuando se modifica un valor de registro. En concreto, el hipervisor validará que los bits reservados de un registro se establecen en cero, los bits que se definen arquitectónicamente como siempre que contienen un cero o uno se establecen adecuadamente y los bits especificados más allá del tamaño arquitectónico del registro están ceros.

Esta llamada no se puede usar para modificar el valor de un registro de solo lectura.

No se realizan efectos secundarios de modificar un registro. Esto incluye la generación de excepciones, sincronizaciones de canalización, vaciados de TLB, etc.

Restricciones

  • El autor de la llamada debe ser el elemento primario de la partición especificada por PartitionId, o la partición especificada debe ser "self" y la partición debe tener el privilegio AccessVpRegisters.

Código de llamada

0x0051 (Rep.)

Parámetros de entrada

Nombre Offset Size Información proporcionada
PartitionId 0 8 Especifica el identificador de partición.
VpIndex 8 4 Especifica el índice del procesador virtual.
TargetVtl 12 1 especifica el VTL de destino.
RsvdZ 13 3

Elemento de lista de entrada

Nombre Offset Size Información proporcionada
RegisterName 0 4 Especifica el nombre de un registro que se va a modificar.
RsvdZ 4 12
RegisterValue 16 16 Especifica el nuevo valor para el registro especificado.

Consulte también

HV_REGISTER_NAME

HV_REGISTER_VALUE