WHvGetVirtualProcessorCounters

Récupère des compteurs de performances pour un processeur virtuel.

Syntaxe

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;

Paramètres

Partition

Spécifie la partition à interroger.

VpIndex

Spécifie l’index du processeur virtuel du processeur à interroger.

CounterSet

Spécifie le jeu de compteurs à interroger.

Buffer

Spécifie la mémoire tampon dans laquelle écrire les compteurs.

BufferSizeInBytes

Spécifie la taille en octets Buffer.

BytesWritten

Si la valeur n’est pas NULL, reçoit la taille du compteur défini en octets.

Valeur de retour

Si la fonction réussit, la valeur de retour est S_OK.

Si une valeur non reconnue a été passée pour CounterSet, la valeur de retour est WHV_E_UNKNOWN_PROPERTY.

Remarks

La WHvGetVirtualProcessorCounters fonction récupère l’ensemble demandé de compteurs de performances pour le processeur virtuel spécifié dans la mémoire tampon fournie.

Exigences

Requirement Valeur
Windows minimum pris en charge Windows 10, version 1809 (x64) ; Windows 11, version 24H2, build 26100.3915 (Arm64)
Header WinHvPlatform.h
Bibliothèque WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Voir aussi