Partager via


HvCallStartVirtualProcessor

HvCallStartVirtualProcessor est une méthode éclairée pour démarrer un processeur virtuel. Elle est fonctionnellement équivalente aux méthodes traditionnelles basées sur INIT, sauf que le VP peut commencer par un état d’inscription souhaité.

Il s’agit de la seule méthode de démarrage d’un VP dans une VTL non nulle.

Interface

HV_STATUS
HvCallStartVirtualProcessor(
   _In_ HV_PARTITION_ID PartitionId,
   _In_ HV_VP_INDEX VpIndex,
   _In_ HV_VTL TargetVtl,
   _In_ HV_INITIAL_VP_CONTEXT VpContext
   );

Code d’appel

0x0099 (Simple)

Paramètres d’entrée

Disposition x64

Nom Décalage Taille Informations fournies
PartitionId 0 8 Partition
VpIndex 8 4 Index VP à démarrer. Pour obtenir l’index VP à partir d’un ID APIC, utilisez HvCallGetVpIndexFromApicId.
TargetVtl 12 1 Durée de vie virtuelle cible
VpContext 16 224 Spécifie le contexte initial dans lequel le VP doit démarrer.

Disposition ARM64

Nom Décalage Taille Informations fournies
PartitionId 0 8 Partition
VpIndex 8 4 Index VP à démarrer. Pour obtenir l’index VP à partir d’une valeur MPIDR, utilisez HvCallGetVpIndexFromApicId.
TargetVtl 12 1 Durée de vie virtuelle cible
VpContext 16 72 Spécifie le contexte initial dans lequel le VP doit démarrer.

Valeurs de retour

Code de statut Condition d’erreur
HV_STATUS_ACCESS_DENIED Accès refusé
HV_STATUS_INVALID_PARTITION_ID L’ID de partition spécifié n’est pas valide.
HV_STATUS_INVALID_VP_INDEX Le processeur virtuel spécifié par HV_VP_INDEX n’est pas valide.
HV_STATUS_INVALID_REGISTER_VALUE La valeur de registre fournie n’est pas valide.
HV_STATUS_INVALID_VP_STATE Un processeur virtuel n’est pas dans l’état correct pour les performances de l’opération indiquée.
HV_STATUS_INVALID_PARTITION_STATE La partition spécifiée n’est pas dans l’état « actif ».
HV_STATUS_INVALID_VTL_STATE L’état VTL est en conflit avec l’opération demandée.

Voir aussi

HV_INITIAL_VP_CONTEXT