Comment se connecter à la session d’enregistreur d’événements global
Utilisez la procédure suivante pour configurer un pilote afin qu’il se connecte à la session de suivi De l’enregistreur d’événements global :
Ajoutez la définition suivante au code du pilote. Insérez la définition entre la définition de macro WPP_CONTROL_GUIDS et l’instruction include pour le fichier d’en-tête de message de trace.
#define WPP_GLOBALLOGGER
Utilisez Tracelog pour configurer une session de suivi de l’enregistreur d’événements global. La commande la plus simple est la suivante :
tracelog -start GlobalLogger
Pour obtenir des instructions complètes, y compris les paramètres de configuration de la session de trace Global Logger, consultez Syntaxe de la commande Tracelog et Session de suivi de l’enregistreur d’événements global.
Pour obtenir un exemple, consultez Exemple 13 : Création d’une session d’enregistreur d’événements global.
Cette commande crée et configure la session de trace, mais la session ne démarre pas tant que vous n’avez pas redémarré le système (étape 5).
Sous la sous-clé HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger , ajoutez une sous-clé nommée pour le GUID de contrôle du fournisseur de trace. Dans Windows Vista et les versions ultérieures de Windows, le GUID de contrôle doit être placé entre accolades ( {} ).
La commande tracelog -start GlobalLogger ajoute la sous-clé GlobalLogger au Registre. La sous-clé ControlGUID établit le pilote en tant que fournisseur de traces pour la session de suivi Global Logger.
Par exemple, pour configurer l’exemple de pilote Tracedrv de manière à ce qu’il se connecte à la session de suivi De l’enregistreur d’événements global sur un ordinateur exécutant Windows XP, ajoutez une sous-clé nommée pour le GUID de contrôle Tracedrv, d58c126f-b309-11d1-969e-0000f875a5bc : HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger\d58c126f-b309-11d1-969e-0000f875a5bc.
TraceDrv, un exemple de pilote qui a été conçu pour le suivi logiciel, est disponible dans le référentiel d’exemples de pilotes Windows sur GitHub.
Pour configurer le fournisseur de trace, ajoutez les entrées de Registre suivantes à la sous-clé ControlGUID . Ces entrées sont facultatives et leurs valeurs sont définies par le pilote.
Nom de l’entrée Type de données Description Indicateurs
REG_DWORD
Spécifie les indicateurs de trace pour le fournisseur.
La signification des indicateurs est définie indépendamment par chaque fournisseur de trace. En règle générale, les indicateurs représentent des niveaux de rapports de plus en plus détaillés.
Niveau
REG_DWORD
Spécifie le niveau de trace pour le fournisseur.
La signification de la valeur Level est définie indépendamment par chaque fournisseur de trace. En règle générale, le niveau de trace représente la gravité de l’événement (informations, avertissement ou erreur).
Notez que le nom de l’entrée Indicateurs est au pluriel et que le nom de l’entrée Niveau est au singulier.
- Redémarrez le système. Cela démarre la session de suivi Global Logger.
Une fois votre test terminé, supprimez la sous-clé ControlGUID ou définissez la valeur de l’entrée Start dans la sous-clé GlobalLogger sur 0. Si ce n’est pas le cas, la session Global Logger s’exécute et le pilote s’y connecte chaque fois que vous redémarrez le système.
Commentaires
Lorsque WPP_GLOBALLOGGER est présent, WPP ajoute du code qui lit le Registre et détermine si la session Global Logger est en cours d’exécution et si le pilote est activé pour le suivi dans la session Global Logger. Ce code prend la place de la notification d’activation que le pilote recevrait d’une session de trace standard.
En outre, étant donné que la session Global Logger ne fournit pas de notification de rappel, Windows suppose qu’un rappel s’est produit et se poursuit en conséquence.
Les définitions WPP ne génèrent qu’une petite quantité de code, il n’est donc pas nécessaire de les supprimer du code après le test.