Compartilhar via


HvCallSetVpRegisters

A hiperchamada HvCallSetVpRegisters grava o estado de um processador virtual.

Interface

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
   );

O estado é gravado como uma série de valores de registro, cada um correspondente a um nome de registro fornecido como entrada.

A verificação mínima de erros é executada quando um valor de registro é modificado. Em particular, o hipervisor validará que os bits reservados de um registro são definidos como zero, os bits que são definidos de forma arquitetônica como sempre contendo um zero ou um são definidos adequadamente e os bits especificados além do tamanho arquitetônico do registro são zerados.

Essa chamada não pode ser usada para modificar o valor de um registro somente leitura.

Os efeitos colaterais da modificação de um registro não são executados. Isso inclui a geração de exceções, sincronizações de pipeline, liberações de TLB e assim por diante.

Restrições

  • O chamador deve ser o pai da partição especificada por PartitionId ou a partição especificada deve ser "self" e a partição deve ter o privilégio AccessVpRegisters.

Código de chamada

0x0051 (Rep)

Parâmetros de Entrada

Nome Deslocamento Tamanho Informações Fornecidas
PartitionId 0 8 Especifica a ID da partição.
VpIndex 8 4 Especifica o índice do processador virtual.
TargetVtl 12 1 especifica a VTL de destino.
RsvdZ 13 3

Elemento da lista de entrada

Nome Deslocamento Tamanho Informações Fornecidas
RegisterName 0 4 Especifica o nome de um registro a ser modificado.
RsvdZ 4 12
RegisterValue 16 16 Especifica o novo valor para o registro especificado.

Confira também

HV_REGISTER_NAME

HV_REGISTER_VALUE