Partager via


KeQueryHardwareCounterConfiguration, fonction (ntddk.h)

La routine KeQueryHardwareCounterConfiguration interroge le système d’exploitation pour obtenir la liste des compteurs matériels à utiliser pour le profilage des threads.

Syntaxe

NTSTATUS KeQueryHardwareCounterConfiguration(
  [out] PHARDWARE_COUNTER CounterArray,
  [in]  ULONG             MaximumCount,
  [out] PULONG            Count
);

Paramètres

[out] CounterArray

Pointeur vers une mémoire tampon allouée par l’appelant dans laquelle la routine écrit un tableau d’éléments de type HARDWARE_COUNTER. Chaque élément de tableau est une structure qui contient des informations sur un compteur matériel. Le tableau contient un élément pour chaque compteur matériel affecté au profilage de thread. Si la routine échoue, elle n’écrit rien dans cette mémoire tampon.

[in] MaximumCount

Spécifie le nombre maximal d’éléments auxquels la routine peut écrire dans la mémoire tampon pointée par le paramètre CounterArray. La taille de la mémoire tampon allouée par l’appelant doit être au moins MaximumCount * sizeof(HARDWARE_COUNTER) octets.

[out] Count

Pointeur vers un emplacement dans lequel la routine écrit le nombre d’éléments de tableau qu’elle a écrits dans la mémoire tampon pointée par le paramètre CounterArray. Si la longueur de la mémoire tampon spécifiée par MaximumCount n’est pas suffisamment grande pour contenir l’intégralité du tableau, la routine écrit la longueur requise dans *Count et retourne STATUS_BUFFER_TOO_SMALL.

Valeur de retour

KeQueryHardwareCounterConfiguration retourne STATUS_SUCCESS si l’appel réussit. Les valeurs de retour d’erreur possibles sont les suivantes :

Retourner le code Description
STATUS_BUFFER_TOO_SMALL Le paramètre MaximumCount spécifie une longueur de mémoire tampon qui n’est pas suffisamment grande pour contenir les informations de configuration du compteur.
STATUS_NOT_IMPLEMENTED Cette routine n’est pas implémentée pour l’architecture du processeur sur laquelle l’appelant s’exécute.

Remarques

Dans Windows 7, cette routine est implémentée uniquement pour les architectures x86, x64 et Itanium. Si l’appelant s’exécute sur une architecture de processeur qui n’est pas prise en charge, la routine retourne STATUS_NOT_IMPLEMENTED.

Pour définir la configuration du compteur matériel à utiliser pour le profilage de thread, appelez la routine KeSetHardwareCounterConfiguration routine.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows 7 et versions ultérieures de Windows.
plateforme cible Universel
d’en-tête ntddk.h (include Ntddk.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

HARDWARE_COUNTER

KeSetHardwareCounterConfiguration