WHvSetVirtualProcessorState

Nastaví kategorii uloženého stavu ve virtuálním 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
WHvSetVirtualProcessorState(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT32 VpIndex,
    _In_ WHV_VIRTUAL_PROCESSOR_STATE_TYPE StateType,
    _In_reads_bytes_(BufferSizeInBytes) const VOID* Buffer,
    _In_ UINT32 BufferSizeInBytes
    );

Parameters

Partition

Popisovač objektu oddílu

VpIndex

Určuje index virtuálního procesoru, jehož stav je nastaven.

StateType

Určuje kategorii stavu, který se má nastavit. Viz WHvGetVirtualProcessorState význam každé hodnoty.

Buffer

Určuje stav, který se má použít. Formát vyrovnávací paměti závisí na StateType.

BufferSizeInBytes

Určuje velikost Bufferv bajtech. Velikost se musí shodovat s velikostí státu identifikovaného StateType.

Návratová hodnota

Pokud je funkce úspěšná, návratová hodnota je S_OK.

Funkce vrátí E_INVALIDARG , pokud StateType není platným typem stavu.

Remarks

Funkce WHvSetVirtualProcessorState použije kategorii stavu virtuálního procesoru identifikovaného funkcí StateType. Je to protějšek WHvGetVirtualProcessorState.

Na rozdíl od operace get musí být vyrovnávací paměť zadaná do operace sady přesně velikost obnoveného stavu.

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

Viz také