WHvSetVirtualProcessorState

Mengatur kategori status tersimpan pada prosesor virtual.

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
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

Tangani ke objek partisi.

VpIndex

Menentukan indeks prosesor virtual yang statusnya diatur.

StateType

Menentukan kategori status yang akan diatur. Lihat WHvGetVirtualProcessorState untuk arti dari setiap nilai.

Buffer

Menentukan status yang akan diterapkan. Format buffer tergantung pada StateType.

BufferSizeInBytes

Menentukan ukuran Buffer, dalam byte. Ukuran harus cocok dengan ukuran status yang diidentifikasi oleh StateType.

Mengembalikan Nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah S_OK.

Fungsi mengembalikan E_INVALIDARG jika StateType bukan tipe status yang valid.

Remarks

Fungsi ini WHvSetVirtualProcessorState menerapkan kategori status prosesor virtual yang diidentifikasi oleh StateType. Ini adalah mitra dari WHvGetVirtualProcessorState.

Tidak seperti operasi get, buffer yang disediakan ke operasi yang ditetapkan harus sama persis dengan ukuran status yang sedang dipulihkan.

Requirements

Persyaratan Nilai
Windows minimum yang didukung Windows 10, versi 20H2 (x64); Windows 11, versi 24H2, build 26100.3915 (Arm64)
Header WinHvPlatform.h
Perpustakaan WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Baca juga