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 |