為虛擬處理器擷取效能計數器。
語法
HRESULT
WINAPI
WHvGetVirtualProcessorCounters(
_In_ WHV_PARTITION_HANDLE Partition,
_In_ UINT32 VpIndex,
_In_ WHV_PROCESSOR_COUNTER_SET CounterSet,
_Out_writes_bytes_to_(BufferSizeInBytes, *BytesWritten) VOID* Buffer,
_In_ UINT32 BufferSizeInBytes,
_Out_opt_ UINT32* BytesWritten
);
typedef enum WHV_PROCESSOR_COUNTER_SET
{
WHvProcessorCounterSetRuntime,
WHvProcessorCounterSetIntercepts,
WHvProcessorCounterSetEvents,
WHvProcessorCounterSetApic,
} WHV_PROCESSOR_COUNTER_SET;
typedef struct WHV_PROCESSOR_RUNTIME_COUNTERS
{
UINT64 TotalRuntime100ns;
UINT64 HypervisorRuntime100ns;
} WHV_PROCESSOR_RUNTIME_COUNTERS;
typedef struct WHV_PROCESSOR_INTERCEPT_COUNTER
{
UINT64 Count;
UINT64 Time100ns;
} WHV_PROCESSOR_INTERCEPT_COUNTER;
typedef struct WHV_PROCESSOR_INTERCEPT_COUNTERS
{
WHV_PROCESSOR_INTERCEPT_COUNTER PageInvalidations;
WHV_PROCESSOR_INTERCEPT_COUNTER ControlRegisterAccesses;
WHV_PROCESSOR_INTERCEPT_COUNTER IoInstructions;
WHV_PROCESSOR_INTERCEPT_COUNTER HaltInstructions;
WHV_PROCESSOR_INTERCEPT_COUNTER CpuidInstructions;
WHV_PROCESSOR_INTERCEPT_COUNTER MsrAccesses;
WHV_PROCESSOR_INTERCEPT_COUNTER OtherIntercepts;
WHV_PROCESSOR_INTERCEPT_COUNTER PendingInterrupts;
WHV_PROCESSOR_INTERCEPT_COUNTER EmulatedInstructions;
WHV_PROCESSOR_INTERCEPT_COUNTER DebugRegisterAccesses;
WHV_PROCESSOR_INTERCEPT_COUNTER PageFaultIntercepts;
} WHV_PROCESSOR_ACTIVITY_COUNTERS;
typedef struct WHV_PROCESSOR_EVENT_COUNTERS
{
UINT64 PageFaultCount;
UINT64 ExceptionCount;
UINT64 InterruptCount;
} WHV_PROCESSOR_GUEST_EVENT_COUNTERS;
typedef struct WHV_PROCESSOR_APIC_COUNTERS
{
UINT64 MmioAccessCount;
UINT64 EoiAccessCount;
UINT64 TprAccessCount;
UINT64 SentIpiCount;
UINT64 SelfIpiCount;
} WHV_PROCESSOR_APIC_COUNTERS;
Parameters
Partition
指定要查詢的分割區。
VpIndex
指定要查詢處理器的虛擬處理器索引。
CounterSet
指定查詢的計數器。
Buffer
指定要寫入計數器的緩衝區。
BufferSizeInBytes
以位元組表示 Buffer的大小。
BytesWritten
若非 NULL,則接收以位元組為單位的計數器大小。
傳回值
如果函式成功,則傳回值為 S_OK。
若傳遞一個未識別的值, CounterSet則返回值為 WHV_E_UNKNOWN_PROPERTY。
Remarks
該 WHvGetVirtualProcessorCounters 函式會將指定虛擬處理器所需的效能計數器集合擷取到提供的緩衝區中。
Requirements
| 需求 | 價值 |
|---|---|
| 最低支援的 Windows | Windows 10,版本 1809(x64);Windows 11,版本 24H2,建置版 26100.3915(Arm64) |
| Header | WinHvPlatform.h |
| 圖書館 | WinHvPlatform.lib |
| DLL | WinHvPlatform.dll |
| Architecture | x64、Arm64 |