Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Načte kategorii uloženého stavu z virtuálního procesoru.
Syntaxe
// 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
);
Parameters
Partition
Popisovač objektu oddílu
VpIndex
Určuje index virtuálního procesoru, jehož stav se načte.
StateType
Určuje kategorii stavu, který se má načíst. Význam jednotlivých hodnot najdete v části Poznámky.
Buffer
Přijme požadovaný stav. Formát vyrovnávací paměti závisí na StateType.
BufferSizeInBytes
Určuje velikost Bufferv bajtech.
BytesWritten
Pokud není null, obdrží počet bajtů zapsaných do Buffer. Pokud je vyrovnávací paměť příliš malá, obdrží počet bajtů potřebných k uložení stavu.
Návratová hodnota
Pokud je funkce úspěšná, návratová hodnota je S_OK.
Pokud Buffer je pro požadovaný stav příliš malý, je vrácená hodnota WHV_E_INSUFFICIENT_BUFFER. V tomto případě BytesWritten obdrží požadovaný počet bajtů. Pokud StateType není platný typ stavu, je vrácená hodnota E_INVALIDARG.
Remarks
Funkce WHvGetVirtualProcessorState načte kategorii stavu virtuálního procesoru identifikovaného funkcí StateType. Poskytuje jedno rozhraní s podporou architektury pro ukládání stavu virtuálního procesoru a nahrazuje zastaralé WHvGetVirtualProcessorXsaveState funkce a WHvGetVirtualProcessorInterruptControllerState2 funkce.
Typy stavů společné pro obě architektury
-
WHvVirtualProcessorStateTypeSynicMessagePageaWHvVirtualProcessorStateTypeSynicEventFlagPagenačtěte syntetickou zprávu kontroleru přerušení (SynIC) a stránky příznaku událostí. -
WHvVirtualProcessorStateTypeSynicTimerStatenačte stav syntetického časovače SynIC.
Typy stavů x64
-
WHvVirtualProcessorStateTypeInterruptControllerState2načte místní stav APIC. -
WHvVirtualProcessorStateTypeXsaveStatenačte stav rozšířeného procesoru (xsave). -
WHvVirtualProcessorStateTypeNestedStatenačte vnořený stav virtualizace.
Typy stavů Arm64
-
WHvVirtualProcessorStateTypeInterruptControllerStatenačte stav GIC pro jednotlivé procesory. -
WHvVirtualProcessorStateTypeGlobalInterruptStatenačte stav kontroleru přerušení na úrovni oddílu. -
WHvVirtualProcessorStateTypeSveStatenačte stav SVE (Scalable Vector Extension).
Chcete-li určit požadovanou velikost vyrovnávací paměti, zavolejte funkci s vyrovnávací pamětí, která je příliš malá a přečte hodnotu vrácenou při BytesWritten vrácení WHV_E_INSUFFICIENT_BUFFERfunkce , a pak znovu zavolejte funkci s vyrovnávací pamětí této velikosti.
Požadavky
| Requirement | Value |
|---|---|
| Minimální podporovaná Windows | Windows 10 verze 20H2 (x64); Windows 11, verze 24H2, build 26100.3915 (Arm64) |
| Header | WinHvPlatform.h |
| Knihovna | WinHvPlatform.lib |
| knihovna DLL | WinHvPlatform.dll |
| Architektura | x64, Arm64 |