Partager via


HvCallSetVpRegisters

L’hypercall HvCallSetVpRegisters écrit l’état d’un processeur virtuel.

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

L’état est écrit sous la forme d’une série de valeurs de registre, chacune correspondant à un nom de registre fourni en tant qu’entrée.

Une vérification minimale des erreurs est effectuée lorsqu’une valeur de registre est modifiée. En particulier, l’hyperviseur vérifie que les bits réservés d’un registre sont définis sur zéro, que les bits définis sur le plan architectural comme contenant toujours un zéro ou un sont définis de manière appropriée, et que les bits spécifiés au-delà de la taille architecturale du registre sont définis à zéro.

Cet appel ne peut pas être utilisé pour modifier la valeur d’un registre en lecture seule.

Les effets secondaires de la modification d’un registre ne sont pas effectués. Cela inclut la génération d’exceptions, les synchronisations de pipeline, les vidages TLB, etc.

Restrictions

  • L’appelant doit être le parent de la partition spécifiée par PartitionId, ou la partition spécifiée doit être « auto » et la partition doit avoir le privilège AccessVpRegisters.

Code d’appel

0x0051 (Rep)

Paramètres d’entrée

Nom Offset Taille Informations fournies
PartitionId 0 8 Spécifie l’ID de partition.
VpIndex 8 4 Spécifie l’index du processeur virtuel.
TargetVtl 12 1 spécifie la durée de vie VTL cible.
RsvdZ 13 3

Élément de liste d’entrée

Nom Offset Taille Informations fournies
RegisterName 0 4 Spécifie le nom d’un registre à modifier.
RsvdZ 4 12
RegisterValue 16 16 Spécifie la nouvelle valeur pour le registre spécifié.

Voir aussi

HV_REGISTER_NAME

HV_REGISTER_VALUE