Delen via


HvCallStartVirtualProcessor

HvCallStartVirtualProcessor is een verlichte methode voor het starten van een virtuele processor. Het is functioneel gelijkwaardig aan traditionele OPIT-gebaseerde methoden, behalve dat de VP kan beginnen met een gewenste registerstatus.

Dit is de enige methode voor het starten van een VP in een niet-nul-VTL.

gebruikersinterface

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

Code aanroepen

0x0099 (Eenvoudig)

Invoerparameters

x64-indeling

Naam Offset Grootte Verstrekte informatie
PartitionId 0 8 Partition
VpIndex 8 4 VP-index die moet worden gestart. Gebruik HvCallGetVpIndexFromApicId om de VP-index op te halen uit een APIC-id.
TargetVtl 12 1 Doel-VTL
VpContext 16 224 Hiermee geeft u de eerste context waarin de VP moet beginnen.

ARM64-indeling

Naam Offset Grootte Verstrekte informatie
PartitionId 0 8 Partition
VpIndex 8 4 VP-index die moet worden gestart. Als u de VP-index wilt ophalen uit een MPIDR-waarde, gebruikt u HvCallGetVpIndexFromApicId.
TargetVtl 12 1 Doel-VTL
VpContext 16 72 Hiermee geeft u de eerste context waarin de VP moet beginnen.

Retourwaarden

Statuscode Foutvoorwaarde
HV_STATUS_ACCESS_DENIED Toegang geweigerd
HV_STATUS_INVALID_PARTITION_ID De opgegeven partitie-id is ongeldig.
HV_STATUS_INVALID_VP_INDEX De virtuele processor die is opgegeven door HV_VP_INDEX is ongeldig.
HV_STATUS_INVALID_REGISTER_VALUE De opgegeven registerwaarde is ongeldig.
HV_STATUS_INVALID_VP_STATE Een virtuele processor heeft niet de juiste status voor de prestaties van de aangegeven bewerking.
HV_STATUS_INVALID_PARTITION_STATE De opgegeven partitie heeft niet de status Actief.
HV_STATUS_INVALID_VTL_STATE De VTL-status conflicteert met de aangevraagde bewerking.

Zie ook

HV_INITIAL_VP_CONTEXT