Udostępnij przez


HvCallStartVirtualProcessor

HvCallStartVirtualProcessor to oświecona metoda uruchamiania procesora wirtualnego. Jest ona funkcjonalnie równoważna tradycyjnym metodom opartym na protokole INIT, z tą różnicą, że wiceprezes może zacząć od żądanego stanu rejestracji.

Jest to jedyna metoda uruchamiania vp in a non-zero VTL.

Interfejs

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

Kod wywołania

0x0099 (Proste)

Parametry wejściowe

Układ x64

Name Przesunięcie Rozmiar Podane informacje
PartitionId 0 8 Partition
VpIndex 8 4 Indeks VP, aby rozpocząć. Aby uzyskać indeks VP z identyfikatora APIC, użyj HvCallGetVpIndexFromApicId.
TargetVtl 12 1 Docelowa VTL
VpContext 16 224 Określa początkowy kontekst, w którym należy uruchomić vp.

Układ ARM64

Name Przesunięcie Rozmiar Podane informacje
PartitionId 0 8 Partition
VpIndex 8 4 Indeks VP, aby rozpocząć. Aby uzyskać indeks VP z wartości MPIDR, użyj HvCallGetVpIndexFromApicId.
TargetVtl 12 1 Docelowa VTL
VpContext 16 72 Określa początkowy kontekst, w którym należy uruchomić vp.

Zwracane wartości

Kod stanu Warunek błędu
HV_STATUS_ACCESS_DENIED Odmowa dostępu
HV_STATUS_INVALID_PARTITION_ID Określony identyfikator partycji jest nieprawidłowy.
HV_STATUS_INVALID_VP_INDEX Procesor wirtualny określony przez HV_VP_INDEX jest nieprawidłowy.
HV_STATUS_INVALID_REGISTER_VALUE Podana wartość rejestru jest nieprawidłowa.
HV_STATUS_INVALID_VP_STATE Procesor wirtualny nie jest w prawidłowym stanie dla wydajności wskazanej operacji.
HV_STATUS_INVALID_PARTITION_STATE Określona partycja nie jest w stanie "aktywny".
HV_STATUS_INVALID_VTL_STATE Stan VTL powoduje konflikt z żądaną operacją.

Zobacz także

HV_INITIAL_VP_CONTEXT