Condividi tramite


HvCallStartVirtualProcessor

HvCallStartVirtualProcessor è un metodo con riconoscimento dei dati per l'avvio di un processore virtuale. È funzionalmente equivalente ai metodi tradizionali basati su INIT, ad eccezione del fatto che il VP può iniziare con uno stato di registro desiderato.

Questo è l'unico metodo per avviare una VP in una VTL non zero.

Interfaccia

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

Call Code

0x0099 (Semplice)

Parametri di input

Layout x64

Nome Offset Misura Informazioni fornite
PartitionId 0 8 Partition
VpIndex 8 4 Indice VP da avviare. Per ottenere l'indice VP da un ID APIC, usare HvCallGetVpIndexFromApicId.
TargetVtl 12 1 VTL di destinazione
VpContext 16 224 Specifica il contesto iniziale in cui deve essere avviato il VP.

ARM64 Layout

Nome Offset Misura Informazioni fornite
PartitionId 0 8 Partition
VpIndex 8 4 Indice VP da avviare. Per ottenere l'indice VP da un valore MPIDR, usare HvCallGetVpIndexFromApicId.
TargetVtl 12 1 VTL di destinazione
VpContext 16 72 Specifica il contesto iniziale in cui deve essere avviato il VP.

Valori restituiti

Codice di stato Condizione di errore
HV_STATUS_ACCESS_DENIED Accesso negato
HV_STATUS_INVALID_PARTITION_ID L'ID di partizione specificato non è valido.
HV_STATUS_INVALID_VP_INDEX Il processore virtuale specificato da HV_VP_INDEX non è valido.
HV_STATUS_INVALID_REGISTER_VALUE Il valore del registro fornito non è valido.
HV_STATUS_INVALID_VP_STATE Un processore virtuale non è nello stato corretto per le prestazioni dell'operazione indicata.
HV_STATUS_INVALID_PARTITION_STATE La partizione specificata non è nello stato "attivo".
HV_STATUS_INVALID_VTL_STATE Lo stato VTL è in conflitto con l'operazione richiesta.

Vedere anche

HV_INITIAL_VP_CONTEXT