Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft eine Kategorie des gespeicherten Zustands von einem virtuellen Prozessor ab.
Syntax
// WHvGetVirtualProcessorState and WHvSetVirtualProcessorState types.
#if defined(_AMD64_)
typedef enum WHV_VIRTUAL_PROCESSOR_STATE_TYPE
{
WHvVirtualProcessorStateTypeSynicMessagePage = 0x00000000,
WHvVirtualProcessorStateTypeSynicEventFlagPage = 0x00000001,
WHvVirtualProcessorStateTypeSynicTimerState = 0x00000002,
WHvVirtualProcessorStateTypeInterruptControllerState2 = 0x00001000,
WHvVirtualProcessorStateTypeXsaveState = 0x00001001,
WHvVirtualProcessorStateTypeNestedState = 0x00001002,
} WHV_VIRTUAL_PROCESSOR_STATE_TYPE;
#elif defined (_ARM64_)
#define WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN (1ui32 << 31)
#define WHV_VIRTUAL_PROCESSOR_STATE_TYPE_ANY_VP (1ui32 << 30)
typedef enum WHV_VIRTUAL_PROCESSOR_STATE_TYPE
{
WHvVirtualProcessorStateTypeInterruptControllerState = 0x00000000 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN,
WHvVirtualProcessorStateTypeSynicMessagePage = 0x00000002 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN,
WHvVirtualProcessorStateTypeSynicEventFlagPage = 0x00000003 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN,
WHvVirtualProcessorStateTypeSynicTimerState = 0x00000004,
WHvVirtualProcessorStateTypeGlobalInterruptState = 0x00000006 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_ANY_VP,
WHvVirtualProcessorStateTypeSveState = 0x00000007 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN,
} WHV_VIRTUAL_PROCESSOR_STATE_TYPE;
#endif
HRESULT
WINAPI
WHvGetVirtualProcessorState(
_In_ WHV_PARTITION_HANDLE Partition,
_In_ UINT32 VpIndex,
_In_ WHV_VIRTUAL_PROCESSOR_STATE_TYPE StateType,
_Out_writes_bytes_to_(BufferSizeInBytes, *BytesWritten) VOID* Buffer,
_In_ UINT32 BufferSizeInBytes,
_Out_opt_ UINT32* BytesWritten
);
Parameter
Partition
Behandeln sie das Partitionsobjekt.
VpIndex
Gibt den Index des virtuellen Prozessors an, dessen Status abgerufen wird.
StateType
Gibt die Kategorie des abzurufenden Zustands an. Die Bedeutung der einzelnen Werte finden Sie im Abschnitt "Hinweise".
Buffer
Empfängt den angeforderten Zustand. Das Format des Puffers hängt von StateType.
BufferSizeInBytes
Gibt die Größe von Buffer, in Byte an.
BytesWritten
Wenn kein NULL-Wert vorhanden ist, wird die Anzahl der Bytes empfangen, die in Buffer. Wenn der Puffer zu klein ist, empfängt er die Anzahl der Bytes, die zum Speichern des Zustands erforderlich sind.
Rückgabewert
Wenn die Funktion erfolgreich ist, lautet S_OKder Rückgabewert .
Wenn Buffer der angeforderte Zustand zu klein ist, lautet WHV_E_INSUFFICIENT_BUFFERder Rückgabewert . In diesem Fall BytesWritten erhält die Anzahl der erforderlichen Bytes. Wenn StateType es sich nicht um einen gültigen Zustandstyp handelt, lautet E_INVALIDARGder Rückgabewert .
Remarks
Die WHvGetVirtualProcessorState Funktion ruft eine Kategorie des virtuellen Prozessorzustands ab, der durch StateType. Sie stellt eine einzelne, architekturfähige Schnittstelle zum Speichern des Zustands virtueller Prozessoren bereit und ersetzt die veralteten WHvGetVirtualProcessorXsaveState Und WHvGetVirtualProcessorInterruptControllerState2 Funktionen.
Zustandstypen, die für beide Architekturen gemeinsam sind
-
WHvVirtualProcessorStateTypeSynicMessagePageundWHvVirtualProcessorStateTypeSynicEventFlagPagerufen Sie die SynIC-Meldungs- und Ereigniskennzeichnungsseiten (Synthetic Interrupt Controller) ab. -
WHvVirtualProcessorStateTypeSynicTimerStateRuft den SynIC-Zeitgeberzustand ab.
x64-Statustypen
-
WHvVirtualProcessorStateTypeInterruptControllerState2ruft den lokalen APIC-Status ab. -
WHvVirtualProcessorStateTypeXsaveStateruft den erweiterten Prozessorstatus (xsave) ab. -
WHvVirtualProcessorStateTypeNestedStateruft den geschachtelten Virtualisierungsstatus ab.
Arm64-Zustandstypen
-
WHvVirtualProcessorStateTypeInterruptControllerStateRuft den GIC-Zustand pro Prozessor ab. -
WHvVirtualProcessorStateTypeGlobalInterruptStateruft den partitionsweiten Interrupt-Controllerzustand ab. -
WHvVirtualProcessorStateTypeSveStateruft den SVE-Zustand (Scalable Vector Extension) ab.
Um die erforderliche Puffergröße zu ermitteln, rufen Sie die Funktion mit einem Puffer auf, der zu klein ist, und lesen Sie den wert, der beim BytesWritten Zurückgeben WHV_E_INSUFFICIENT_BUFFERder Funktion zurückgegeben wird, und rufen Sie die Funktion dann erneut mit einem Puffer dieser Größe auf.
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützte Windows | Windows 10, Version 20H2 (x64); Windows 11, Version 24H2, Build 26100.3915 (Arm64) |
| Header | WinHvPlatform.h |
| Bibliothek | WinHvPlatform.lib |
| DLL | WinHvPlatform.dll |
| Architecture | x64, Arm64 |