在虛擬處理器上設定一個儲存狀態類別。
語法
// 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
handle 轉到 partition 物件。
VpIndex
指定設定狀態的虛擬處理器的索引。
StateType
指定要設定的狀態類別。 請參閱 WHvGetVirtualProcessorState 每個數值的意義。
Buffer
指定適用的州。 緩衝區的格式取決於 StateType。
BufferSizeInBytes
指定 的 Buffer大小(以位元組為單位)。 大小必須與由 StateType所識別的狀態大小相符。
傳回值
如果函式成功,則傳回值為 S_OK。
若 StateType 不是有效的狀態型別,則 該函式會回傳E_INVALIDARG。
Remarks
該 WHvSetVirtualProcessorState 函數套用一個由 識別的 StateType虛擬處理器狀態類別。 它是 的 WHvGetVirtualProcessorState對應。
與 get 操作不同,提供給 set 操作的緩衝區必須完全等於被還原狀態的大小。
Requirements
| 需求 | 價值 |
|---|---|
| 最低支援的 Windows | Windows 10,版本 20H2(x64);Windows 11,版本 24H2,建置版 26100.3915(Arm64) |
| Header | WinHvPlatform.h |
| 圖書館 | WinHvPlatform.lib |
| DLL | WinHvPlatform.dll |
| Architecture | x64、Arm64 |