Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengambil kategori status tersimpan dari 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
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
Tangani ke objek partisi.
VpIndex
Menentukan indeks prosesor virtual yang statusnya diambil.
StateType
Menentukan kategori status yang akan diambil. Lihat bagian Keterangan untuk arti setiap nilai.
Buffer
Menerima status yang diminta. Format buffer tergantung pada StateType.
BufferSizeInBytes
Menentukan ukuran Buffer, dalam byte.
BytesWritten
Jika non-NULL, menerima jumlah byte yang ditulis ke Buffer. Ketika buffer terlalu kecil, buffer menerima jumlah byte yang diperlukan untuk menahan status.
Mengembalikan Nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah S_OK.
Jika Buffer terlalu kecil untuk berisi status yang diminta, nilai yang dikembalikan adalah WHV_E_INSUFFICIENT_BUFFER. Dalam hal ini, BytesWritten menerima jumlah byte yang diperlukan. Jika StateType bukan jenis status yang valid, nilai yang dikembalikan adalah E_INVALIDARG.
Remarks
Fungsi ini WHvGetVirtualProcessorState mengambil kategori status prosesor virtual yang diidentifikasi oleh StateType. Ini menyediakan satu antarmuka sadar arsitektur untuk menyimpan status prosesor virtual dan menggantikan fungsi dan WHvGetVirtualProcessorInterruptControllerState2 yang tidak digunakan WHvGetVirtualProcessorXsaveState lagi.
Jenis status umum untuk kedua arsitektur
-
WHvVirtualProcessorStateTypeSynicMessagePagedanWHvVirtualProcessorStateTypeSynicEventFlagPageambil pesan pengontrol interupsi sintetis (SynIC) dan halaman bendera peristiwa. -
WHvVirtualProcessorStateTypeSynicTimerStatemengambil status timer sintetis SynIC.
Jenis status x64
-
WHvVirtualProcessorStateTypeInterruptControllerState2mengambil status APIC lokal. -
WHvVirtualProcessorStateTypeXsaveStatemengambil status prosesor diperluas (xsave). -
WHvVirtualProcessorStateTypeNestedStatemengambil status virtualisasi berlapis.
Jenis status Arm64
-
WHvVirtualProcessorStateTypeInterruptControllerStatemengambil status GIC per prosesor. -
WHvVirtualProcessorStateTypeGlobalInterruptStatemengambil status pengontrol interupsi seluruh partisi. -
WHvVirtualProcessorStateTypeSveStatemengambil status Ekstensi Vektor (SVE) yang Dapat Diskalakan.
Untuk menentukan ukuran buffer yang diperlukan, panggil fungsi dengan buffer yang terlalu kecil dan baca nilai yang dikembalikan BytesWritten ketika fungsi kembali WHV_E_INSUFFICIENT_BUFFER, lalu panggil fungsi lagi dengan buffer ukuran tersebut.
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 |