Partager via


Fonction EnableThreadProfiling (winbase.h)

Active le profilage de thread sur le thread spécifié.

Syntaxe

DWORD EnableThreadProfiling(
  [in]  HANDLE  ThreadHandle,
  [in]  DWORD   Flags,
  [in]  DWORD64 HardwareCounters,
  [out] HANDLE  *PerformanceDataHandle
);

Paramètres

[in] ThreadHandle

Handle du thread sur lequel vous souhaitez activer le profilage. Il doit s’agir du thread actuel.

[in] Flags

Pour recevoir des données de profilage de thread telles que le nombre de commutateurs de contexte, définissez ce paramètre sur THREAD_PROFILING_FLAG_DISPATCH ; sinon, définissez sur 0.

[in] HardwareCounters

Pour recevoir des données de compteur de performances matérielles, définissez ce paramètre sur un masque de bits qui identifie les compteurs matériels à collecter. Vous pouvez spécifier jusqu’à 16 compteurs de performances. Chaque bit est directement lié à l’index de compteur matériel de base zéro pour les compteurs de performances matérielles que vous avez configurés. Définissez sur zéro si vous ne collectez pas les données du compteur matériel. Si vous définissez un bit pour un compteur matériel qui n’a pas été configuré, la valeur du compteur lu pour ce compteur est zéro.

[out] PerformanceDataHandle

Handle opaque que vous utilisez lors de l’appel des fonctions ReadThreadProfilingData et DisableThreadProfiling .

Valeur retournée

Retourne ERROR_SUCCESS si l’appel réussit ; sinon, un code d’erreur système (voir Winerror.h).

Remarques

Vous devez appeler la fonction DisableThreadProfiling avant de quitter le thread.

Pour profiler les compteurs de performances matérielles, vous avez besoin d’un pilote pour configurer les compteurs. Les compteurs de performances étant configurés globalement pour le système, chaque thread a accès aux mêmes données de compteur matériel. Les compteurs doivent être configurés avant d’activer le profilage. Pour plus d’informations sur la configuration des compteurs de performances matérielles, consultez la fonction KeSetHardwareCounterConfiguration dans le Kit de pilotes Windows (WDK).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

DisableThreadProfiling

QueryThreadProfiling

ReadThreadProfilingData