Partager via


Configuration et démarrage d’une session SystemTraceProvider

SystemTraceProvider est un fournisseur de noyau avec des ensembles prédéfinis d’événements de noyau pris en charge sur Windows 7, Windows Server 2008 R2 et versions ultérieures. Sur Windows 7 et Windows Server 2008 R2, SystemTraceProvider ne pouvait être utilisé que pour la session NT Kernel Logger.

Sur Windows 8, Windows Server 2012 et versions ultérieures, systemTraceProvider peut être multiplexé pour jusqu’à 8 sessions d’enregistreur d’événements. Les deux premiers emplacements pour les sessions d’enregistreur d’événements sont réservés à l’enregistreur d’événements du noyau NT et à l’enregistreur d’événements de contexte de noyau circulaire .

Pour plus d’informations sur l’utilisation de la session d’enregistreur d’événements du noyau NT en tant que fournisseur de traces, consultez Configuration et démarrage de la session d’enregistreur d’événements du noyau NT.

Sur Windows 10 sdk build 20348 et versions ultérieures, SystemTraceProvider peut être configuré via des fournisseurs système distincts, qui peuvent être contrôlés avec EnableTraceEx2 comme le suivi d’événements standard pour les fournisseurs d’événements Windows. Pour obtenir la liste complète des fournisseurs système, des mots clés et des indicateurs et groupes hérités correspondants, consultez Fournisseurs système

Activer une session SystemTraceProvider

Pour permettre à SystemTraceProvider de démarrer une session autre que l’enregistreur d’événements du noyau NT, exécutez la commande suivante :

tracelog -start MySession -f c:\Kernel1.etl -eflag PROC_THREAD+LOADER+CSWITCH

Pour activer par programmation SystemTraceProvider pour démarrer une session autre que l’enregistreur d’événements du noyau NT, procédez comme suit.

  • Définissez un nom d’enregistreur d’événements privé.

    #define PRIVATE_LOGGER_NAME L"Session de trace privée »

  • Au niveau du contrôleur, définissez les membres suivants de la structure EVENT_TRACE_PROPERTIES .

    Définissez LogFileModesur EVENT_TRACE_SYSTEM_LOGGER_MODE.

    Définissez LoggerName sur journal privé, au lieu de KERNEL_LOGGER_NAME.

    Vérifiez que le membre Wnode.Guid de la structure EVENT_TRACE_PROPERTIES n’est pas défini sur SystemTraceControlGuid. Vous devez affecter un nouveau GUID à ce membre.

  • Sur le consommateur, définissez le membre LoggerName de la structure EVENT_TRACE_LOGFILE sur cet enregistreur d’événements privé.

Notes

Si vous souhaitez qu’un processus non-administrateur ou non TCB puisse démarrer une session de trace de profilage à l’aide de SystemTraceProvider pour le compte d’applications tierces, vous devez accorder le privilège de profil utilisateur, puis ajouter cet utilisateur au GUID de session (créé pour la session d’enregistreur d’événements) et au GUID du fournisseur de trace système pour activer le fournisseur de trace système. Pour plus d’informations, consultez la fonction EventAccessControl .

 

Configuration et démarrage d’une session d’enregistreur d’événements privés

Configuration et démarrage d’une session de journal automatique

Configuration et démarrage d’une session de suivi d’événements

Configuration et démarrage de la session d’enregistreur d’événements du noyau NT

Fournisseurs système

Mise à jour d’une session de suivi d’événements