Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sanal işlemciden kaydedilmiş durum kategorisini alır.
Sözdizimi
// 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
Bölüm nesnesi için tanıtıcı.
VpIndex
Durumu alınan sanal işlemcinin dizinini belirtir.
StateType
Alınacak durum kategorisini belirtir. Her değerin anlamı için Açıklamalar bölümüne bakın.
Buffer
İstenen durumu alır. Arabellek biçimine bağlıdır StateType.
BufferSizeInBytes
Bufferboyutunu bayt cinsinden belirtir.
BytesWritten
NULL değilse, öğesine Bufferyazılan bayt sayısını alır. Arabellek çok küçük olduğunda, durumu tutmak için gereken bayt sayısını alır.
Dönüş Değeri
İşlev başarılı olursa, dönüş değeri olur S_OK.
İstenen durumu içeremeyecek kadar küçükse Buffer , dönüş değeri olur WHV_E_INSUFFICIENT_BUFFER. Bu durumda, BytesWritten gereken bayt sayısını alır. Geçerli bir durum türü değilse StateType , dönüş değeri olur E_INVALIDARG.
Açıklamalar
işlevi tarafından WHvGetVirtualProcessorStateStateTypetanımlanan bir sanal işlemci durumu kategorisi alır. Sanal işlemci durumunu kaydetmek için mimariye duyarlı tek bir arabirim sağlar ve kullanım dışı ve WHvGetVirtualProcessorXsaveStateWHvGetVirtualProcessorInterruptControllerState2 işlevlerin yerini alır.
Her iki mimaride de ortak olan durum türleri
-
WHvVirtualProcessorStateTypeSynicMessagePageveWHvVirtualProcessorStateTypeSynicEventFlagPageyapay kesme denetleyicisi (SynIC) iletisini ve olay bayrağı sayfalarını alın. -
WHvVirtualProcessorStateTypeSynicTimerStateSynIC yapay zamanlayıcı durumunu alır.
x64 durum türleri
-
WHvVirtualProcessorStateTypeInterruptControllerState2yerel APIC durumunu alır. -
WHvVirtualProcessorStateTypeXsaveStategenişletilmiş işlemci (xsave) durumunu alır. -
WHvVirtualProcessorStateTypeNestedStateiç içe sanallaştırma durumunu alır.
Arm64 durum türleri
-
WHvVirtualProcessorStateTypeInterruptControllerStateişlemci başına GIC durumunu alır. -
WHvVirtualProcessorStateTypeGlobalInterruptStatebölüm genelinde kesme denetleyicisi durumunu alır. -
WHvVirtualProcessorStateTypeSveStateÖlçeklenebilir Vektör Uzantısı (SVE) durumunu alır.
Gerekli arabellek boyutunu belirlemek için, işlevi çok küçük bir arabellekle çağırın ve işlevi döndürdüğünde BytesWrittenWHV_E_INSUFFICIENT_BUFFERdöndürülen değeri okuyun ve ardından bu boyutta bir arabellekle işlevi yeniden çağırın.
Requirements
| Requirement | Değer |
|---|---|
| Desteklenen en düşük Windows | Windows 10, sürüm 20H2 (x64); Windows 11, sürüm 24H2, derleme 26100.3915 (Arm64) |
| Header | WinHvPlatform.h |
| Kütüphane | WinHvPlatform.lib |
| DLL | WinHvPlatform.dll |
| Architecture | x64, Arm64 |