HvCallStartVirtualProcessor
HvCallStartVirtualProcessor ist eine wichtige Methode zum Starten eines virtuellen Prozessors. Sie entspricht funktional herkömmlichen INIT-basierten Methoden, mit der Ausnahme, dass der VP mit einem gewünschten Registerzustand beginnen kann.
Dies ist die einzige Methode zum Starten eines VP in einer VTL,die nicht 0 (null) ist.
Schnittstelle
HV_STATUS
HvCallStartVirtualProcessor(
_In_ HV_PARTITION_ID PartitionId,
_In_ HV_VP_INDEX VpIndex,
_In_ HV_VTL TargetVtl,
_In_ HV_INITIAL_VP_CONTEXT VpContext
);
Aufrufcode
0x0099
(Einfach)
Eingabeparameter
Name | Offset | Size | Informationen bereitgestellt |
---|---|---|---|
PartitionId |
0 | 8 | Partition |
VpIndex |
8 | 4 | VP-Index zum Starten. Verwenden Sie HvGetVpIndexFromApicId, um den VP-Index aus einer APIC-ID zu erhalten. |
TargetVtl |
12 | 1 | Ziel-VTL |
VpContext |
16 | 224 | Gibt den Anfangskontext an, in dem der VP gestartet werden soll. |
Rückgabewerte
Statuscode | Fehlerbedingung |
---|---|
HV_STATUS_ACCESS_DENIED |
Zugriff verweigert. |
HV_STATUS_INVALID_PARTITION_ID |
Die angegebene Partitions-ID ist ungültig. |
HV_STATUS_INVALID_VP_INDEX |
Der von der -HV_VP_INDEX angegebene virtuelle Prozessor ist ungültig. |
HV_STATUS_INVALID_REGISTER_VALUE |
Der angegebene Registerwert ist ungültig. |
HV_STATUS_INVALID_VP_STATE |
Ein virtueller Prozessor befindet sich nicht im richtigen Zustand für die Leistung des angegebenen Vorgangs. |
HV_STATUS_INVALID_PARTITION_STATE |
Die angegebene Partition befindet sich nicht im Status „Aktiv“. |
HV_STATUS_INVALID_VTL_STATE |
Der VTL-Status weist einen Konflikt mit dem angeforderten Vorgang auf. |