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 peut ê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 du noyau circulaire.

Pour plus d’informations sur l’utilisation de la session NT Kernel Logger en tant que fournisseur de trace, 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 activer SystemTraceProvider pour 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« Some Private Trace Session »

  • Sur le contrôleur, définissez les membres suivants de la structure EVENT_TRACE_PROPERTIES .

    Définissez LogFileMode sur EVENT_TRACE_SYSTEM_LOGGER_MODE.

    Définissez LoggerName sur enregistreur d’événements 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.

  • Côté consommateur, définissez le membre LoggerName de la structure EVENT_TRACE_LOGFILE à cet enregistreur privé.

Remarque

Si vous souhaitez qu’un processus de non-administrateurs ou un processus de blocage de contrôle non-TCP (TCB) puisse démarrer une session de suivi 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 de journalisation) et au GUID du fournisseur de suivi système pour activer ce dernier. 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 d’autologger

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

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

fournisseurs de système

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