Configuration et démarrage d’une session de suivi d’événements
Pour configurer une session de suivi d’événements, utilisez la structure des _ _ Propriétés de la trace d’événements pour spécifier les propriétés de la session. La mémoire que vous allouez pour la structure des _ _ Propriétés de trace d’événements doit être suffisamment grande pour contenir également les noms de session et de fichier journal qui suivent la structure en mémoire.
Une fois que vous avez spécifié les propriétés de la session, appelez la fonction StartTrace pour démarrer la session. Si la fonction est réussie, le paramètre SessionHandle contient le handle de session et la propriété LoggerNameOffset contient l’offset du nom de la session.
Pour activer les fournisseurs qui doivent enregistrer des événements dans votre session, appelez la fonction EnableTrace pour activer les fournisseurs classiques et la fonction EnableTraceEx pour activer les fournisseurs basés sur un manifeste . pour permettre aux fournisseurs de journaliser des événements de journal sur des conditions spécifiques sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures, appelez la fonction EnableTraceEx2 .
En outre, vous pouvez également suivre des informations supplémentaires sur un événement à l’aide d’un appel à la fonction TraceSetInformation . TraceSetInformation place des informations de traçage supplémentaires dans la section des données étendues d’un événement et peut inclure des informations telles que les informations de version de la trace ou les fournisseurs actuellement inscrits sur le système. Pour plus d’informations, consultez récupération de données de suivi d’événements supplémentaires.
Jusqu’à huit sessions de suivi peuvent activer et recevoir des événements du même fournisseur basé sur un manifeste . Toutefois, une seule session de suivi peut activer un fournisseur classique . Si plusieurs sessions de suivi essaient d’activer un fournisseur classique, la première session cesse de recevoir des événements lorsque la deuxième session active le fournisseur. Par exemple, si la session A activé le fournisseur 1, puis le fournisseur 1 de la session B, seule la session B recevrait les événements du fournisseur 1.
Vous pouvez utiliser l’une des trois fonctions pour activer un fournisseur, mais vous risquez de perdre des fonctionnalités si vous utilisez EnableTrace pour activer un fournisseur basé sur un manifeste, car vous ne pouvez pas fournir une valeur MatchAllKeyword, spécifier des éléments de données étendus à inclure dans l’événement ou fournir des données de filtre définies par le fournisseur. Pour plus d’informations, consultez la section Notes de chaque fonction.
sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures, la charge utile d’événement, la portée et les filtres de parcours de pile peuvent être utilisés par la fonction EnableTraceEx2 et les structures activer les _ _ paramètres de TRACE et _ _ descripteurs de filtre d’événement pour filtrer sur des conditions spécifiques dans une session de journalisation. Pour plus d’informations sur les filtres de charge utile d’événement, consultez les fonctions TdhCreatePayloadFilteret TdhAggregatePayloadFilters , ainsi que les structures de prédicat activer les _ _ paramètres de trace, _ _ descripteur de filtre d’événement et de _ filtre _ de charge utile .
Pour déterminer le niveau et les mots clés utilisés pour activer un fournisseur basé sur un manifeste, utilisez l’une des commandes suivantes :
- Logman query Provider-nom
- Fournisseur de stratégie de nom wevtutil
Les commandes répertorient uniquement le niveau et les mots clés, le fournisseur doit documenter les exigences de données de filtre pour les contrôleurs potentiels.
Pour énumérer les fournisseurs basés sur un manifeste, utilisez wevtutil EP.
Pour les fournisseurs classiques, il revient au fournisseur de documenter et de mettre à la disposition des contrôleurs potentiels les niveaux de gravité ou d’activer les indicateurs qu’il prend en charge. Si le fournisseur souhaite être activé par n’importe quel contrôleur, le fournisseur doit accepter 0 comme niveau de gravité et activer les indicateurs et interpréter 0 comme une requête d’exécution de la journalisation par défaut (tout ce qui peut être).
Vous pouvez activer le fournisseur avant ou après que le fournisseur s’est inscrit lui-même. Une fois le fournisseur activé, ETW appelle la fonction de rappel du fournisseur. Si le fournisseur n’est pas inscrit, ETW appellera la fonction de rappel du fournisseur une fois qu’il s’est inscrit lui-même.
Vous pouvez également utiliser la fonction EnableTrace pour désactiver le fournisseur (l’arrêter à partir de l’enregistrement des événements dans votre session) ou pour mettre à jour le niveau de journalisation ou activer les indicateurs du fournisseur. Avec la fonction EnableTraceEx , vous pouvez désactiver le fournisseur ou mettre à jour le niveau, les mots clés, les données étendues et les données de filtre. Chaque fois que vous appelez la fonction EnableTrace ou EnableTraceEx , ETW appelle la fonction de rappel du fournisseur. Le fournisseur reste activé pour la session jusqu’à ce que la session désactive le fournisseur.
Pour arrêter la session de suivi après avoir collecté des événements, appelez la fonction ControlTrace et transmettez l' _ arrêt du contrôle de trace d’événements _ _ en tant que code de contrôle. Pour spécifier la session à arrêter, vous pouvez passer le descripteur de session de suivi d’événements obtenu à partir d’un appel antérieur à la fonction StartTrace , ou le nom d’une session démarrée précédemment. Veillez à désactiver tous les fournisseurs avant d’arrêter la session. Si vous arrêtez la session avant de désactiver le fournisseur pour la première fois, ETW désactive le fournisseur et tente d’appeler la fonction de rappel de contrôle du fournisseur. Si l’application qui a démarré la session se termine sans désactiver le fournisseur ou en appelant la fonction ControlTrace , le fournisseur reste activé.
Si ControlTrace réussit, les propriétés de session sont mises à jour pour refléter les valeurs de propriété finales et exécuter des statistiques pour la session de suivi d’événements.
Pour obtenir un exemple de démarrage d’une session de suivi d’événements, consultez les rubriques suivantes :
- Exemple qui crée une session et active un fournisseur basé sur un manifeste -démarre une session de suivi, active un fournisseur basé sur un manifeste, désactive le fournisseur, puis arrête la session.
Pour plus d’informations sur le démarrage d’une session de suivi, consultez l’une des rubriques suivantes :
- Configuration et démarrage d’une session SystemTraceProvider
- Configuration et démarrage de la session de journalisation du noyau NT
- Configuration et démarrage d’une session de journalisation automatique
- Configuration et démarrage de la session de journalisation globale
- Configuration et démarrage d’une session de journalisation privée