Constantes du mode journalisation

Les constantes suivantes représentent les modes de journalisation possibles pour une session de suivi d’événements.

Les constantes sont utilisées dans les membres LogFileMode des structures EVENT_TRACE_LOGFILE, EVENT_TRACE_PROPERTIES et TRACE_LOGFILE_HEADER . Ces constantes sont définies dans le fichier d’en-tête Evntrace.h .

Mode Description
EVENT_TRACE_FILE_MODE_NONE (0x00000000) Identique à EVENT_TRACE_FILE_MODE_SEQUENTIAL sans taille de fichier maximale spécifiée.
EVENT_TRACE_FILE_MODE_SEQUENTIAL (0x00000001) Écrit les événements dans un fichier journal de manière séquentielle ; s’arrête lorsque le fichier atteint sa taille maximale. N’utilisez pas avec EVENT_TRACE_FILE_MODE_CIRCULAR ou EVENT_TRACE_FILE_MODE_NEWFILE.
EVENT_TRACE_FILE_MODE_CIRCULAR (0x00000002) Écrit des événements dans un fichier journal. Une fois que le fichier a atteint la taille maximale, les événements les plus anciens sont remplacés par des événements entrants. Notez que le contenu du fichier journal circulaire peut apparaître dans l’ordre sur les ordinateurs multiprocesseurs.
N’utilisez pas avec EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE ou EVENT_TRACE_FILE_MODE_SEQUENTIAL.
EVENT_TRACE_FILE_MODE_APPEND (0x00000004) Ajoute des événements à un fichier journal séquentiel existant. Si le fichier n’existe pas, il est créé. Utilisez uniquement si vous spécifiez l’heure système pour la résolution d’horloge. Sinon, ProcessTrace retourne des événements avec des horodatages incorrects. Lorsque vous utilisez EVENT_TRACE_FILE_MODE_APPEND, les valeurs de BufferSize, NumberOfProcessors et ClockType doivent être fournies explicitement et doivent être les mêmes dans l’enregistreur d’événements et le fichier ajouté.
N’utilisez pas avec EVENT_TRACE_REAL_TIME_MODE, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_NEWFILE ou EVENT_TRACE_PRIVATE_LOGGER_MODE.
Windows 2000 : Cette valeur n’est pas prise en charge.
EVENT_TRACE_FILE_MODE_NEWFILE (0x00000008) Bascule automatiquement vers un nouveau fichier journal lorsque le fichier atteint la taille maximale. Le membre MaximumFileSize de EVENT_TRACE_PROPERTIES doit être défini. Le nom de fichier spécifié doit être une chaîne mise en forme (par exemple, la chaîne contient un %d, par exemple c:\test%d.etl). Chaque fois qu’un fichier est créé, un compteur est incrémenté et sa valeur est utilisée, la chaîne mise en forme est mise à jour et la chaîne résultante est utilisée comme nom de fichier.
Cette option n’est pas autorisée pour les sessions de suivi d’événements privées et ne doit pas être utilisée pour les sessions d’enregistreur d’événements du noyau NT.
N’utilisez pas avec EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND ou EVENT_TRACE_FILE_MODE_SEQUENTIAL.
Windows 2000 : Cette valeur n’est pas prise en charge.
EVENT_TRACE_FILE_MODE_PREALLOCATE(0x00000020) Réserve EVENT_TRACE_PROPERTIES. MaximumFileSize d’octets d’espace disque pour le fichier journal à l’avance. Le fichier occupe tout l’espace pendant la journalisation, pour les fichiers journaux circulaires et séquentiels. Lorsque vous arrêtez la session, le fichier journal est réduit à la taille nécessaire. Vous devez définir EVENT_TRACE_PROPERTIES. MaximumFileSize.
Vous ne pouvez pas utiliser le mode pour les sessions de suivi d’événements privées.
Windows 2000 : Cette valeur n’est pas prise en charge.
EVENT_TRACE_NONSTOPPABLE_MODE(0x00000040) Impossible d’arrêter la session de journalisation. Ce mode est uniquement pris en charge par Autologger.Cette option est prise en charge sur Windows Vista et versions ultérieures.
.
EVENT_TRACE_SECURE_MODE (0X00000080) Limite les personnes autorisées à consigner des événements dans la session aux personnes disposant d’une autorisation TRACELOG_LOG_EVENT . Cette option est prise en charge sur Windows Vista et versions ultérieures.
EVENT_TRACE_REAL_TIME_MODE (0x00000100) Fournit les événements aux consommateurs en temps réel. Les événements sont remis lorsque les mémoires tampons sont vidées, et non au moment où le fournisseur écrit l’événement. Vous ne devez pas activer le mode en temps réel s’il n’y a pas de consommateurs pour consommer les événements, car les appels aux événements de journalisation finissent par échouer lorsque les mémoires tampons deviennent pleines. Avant Windows Vista, si les événements n’étaient pas consommés, les événements étaient ignorés. Ne spécifiez pas plusieurs consommateurs en temps réel dans un seul processus sur Windows XP ou Windows Server 2003. Au lieu de cela, un thread consomme des événements et distribuez-les à d’autres.
Avant Windows Vista : Vous ne devez pas utiliser le mode temps réel, car le taux d’événements pris en charge est beaucoup plus faible que la lecture à partir du fichier journal (les événements peuvent être supprimés). En outre, l’ordre des événements n’est pas garanti sur les ordinateurs avec plusieurs processeurs. Le mode temps réel est plus adapté aux événements de type notification à faible trafic.

Vous pouvez combiner ce mode avec d’autres modes de fichier journal ; Toutefois, n’utilisez pas ce mode avec EVENT_TRACE_PRIVATE_LOGGER_MODE. Notez que si vous combinez ce mode avec d’autres modes de fichier journal, les mémoires tampons sont vidées une fois par seconde, ce qui entraîne l’écriture de mémoires tampons partiellement remplies dans votre fichier journal. Par exemple, si vous utilisez des mémoires tampons de 64 000 et que votre taux de journalisation est de 1 événement par seconde, le service écrit 64 000 mémoires/seconde dans votre fichier journal.
EVENT_TRACE_DELAY_OPEN_FILE_MODE(0x00000200) Ce mode est utilisé pour retarder l’ouverture du fichier journal jusqu’à ce qu’un événement se produise.
Remarque :
Sur Windows Vista ou version ultérieure, ce mode n’est pas applicable et ne doit pas être utilisé.
EVENT_TRACE_BUFFERING_MODE (0x00000400) Ce mode écrit des événements dans une mémoire tampon circulaire. Les événements écrits au-delà de la taille totale de la mémoire tampon suppriment les événements les plus anciens restant dans la mémoire tampon. La taille de cette mémoire tampon est le produit de MinimumBuffers et bufferSize (voir EVENT_TRACE_PROPERTIES). En conséquence de cette formule, toute mémoire tampon qui utilise EVENT_TRACE_BUFFERING_MODE ignore la valeur MaximumBuffers .
Les événements ne sont pas écrits dans un fichier journal ou remis en temps réel, et ETW ne vide pas les mémoires tampons. Pour obtenir une instantané de la mémoire tampon, appelez la fonction FlushTrace.
Ce mode est particulièrement utile pour déboguer des pilotes de périphérique conjointement avec la possibilité d’afficher le contenu des mémoires tampons en mémoire avec l’extension de débogueur du noyau WMITrace .
N’utilisez pas avec EVENT_TRACE_FILE_MODE_SEQUENTIAL, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE ou EVENT_TRACE_REAL_TIME_MODE.
EVENT_TRACE_PRIVATE_LOGGER_MODE (0x00000800) Crée une session de suivi d’événements en mode utilisateur qui s’exécute dans le même processus que son fournisseur de trace d’événements. La mémoire des mémoires tampons provient de la mémoire du processus. Les processus qui ne nécessitent pas de données du noyau peuvent éliminer la surcharge associée aux transitions en mode noyau à l’aide d’une session de suivi d’événements privée.
Si le fournisseur est inscrit par plusieurs processus, ETW ajoute l’identificateur de processus au nom du fichier journal pour créer un nom de fichier journal unique. Par exemple, si le contrôleur spécifie les noms des fichiers journaux sous la forme c:\mylogs\myprivatelog.etl, ETW crée le fichier journal sous la forme c:\mylogs\myprivatelog.etl_nnnn, où nnnn est l’identificateur de processus. L’identificateur de processus n’est pas ajouté au premier processus qui inscrit le fournisseur, il est ajouté uniquement aux processus suivants qui inscrivent le fournisseur.
Les sessions de suivi d’événements privées présentent les limitations suivantes :
  • Une session privée peut enregistrer des événements uniquement pour les threads du processus dans lequel elle s’exécute.
  • Il peut y avoir jusqu’à huit sessions privées par processus.
  • Les sessions privées ne peuvent pas être utilisées avec une remise en temps réel.
  • Les événements générés par une session privée n’incluent pas le temps d’exécution pour les instructions en mode noyau et en mode utilisateur, ni les détails au niveau des threads du temps processeur utilisé.
Les filtres d’ID de processus et les filtres de noms exécutables peuvent désormais être transmis aux API de contrôle de session lorsque les enregistreurs d’événements privés à l’échelle du système sont démarrés. Pour obtenir de meilleurs résultats dans les scénarios inter-processus, les mêmes filtres doivent être passés à chaque opération de contrôle au cours de la session, y compris les appels d’activation/diasble du fournisseur. Notez que les filtres ont le même format que ceux consommés par EnableTraceEx2.
Vous pouvez utiliser ce mode conjointement avec le mode EVENT_TRACE_PRIVATE_IN_PROC .
Avant Windows 10, version 1703 : Seuls LocalSystem, l’administrateur et les utilisateurs du groupe d’administrateurs qui s’exécutent dans un processus avec élévation de privilèges peuvent créer une session privée. Si vous incluez l’indicateur EVENT_TRACE_PRIVATE_IN_PROC , n’importe quel utilisateur peut créer une session privée in-process. En outre, dans les versions antérieures de Windows, il ne peut y avoir qu’une seule session privée par processus (sauf si le mode EVENT_TRACE_PRIVATE_IN_PROC est également spécifié, auquel cas vous pouvez créer jusqu’à trois sessions privées in-process).
Avant Windows Vista : Les utilisateurs du groupe Utilisateurs du journal des performances peuvent également créer une session privée.

N’utilisez pas avec EVENT_TRACE_REAL_TIME_MODE.
Avant Windows 7 et Windows Server 2008 R2 : N’utilisez pas avec EVENT_TRACE_FILE_MODE_NEWFILE.
EVENT_TRACE_ADD_HEADER_MODE(0x00001000) Cette option ajoute un en-tête au fichier journal.
Remarque :
Sur Windows Vista ou version ultérieure, ce mode n’est pas applicable et ne doit pas être utilisé.
EVENT_TRACE_USE_KBYTES_FOR_SIZE(0x00002000) Utilisez des kilo-octets comme unité de mesure pour spécifier la taille d’un fichier. L’unité de mesure par défaut est des mégaoctets. Ce mode s’applique à la valeur de Registre MaxFileSize pour une session AutoLogger et au membre MaximumFileSize de EVENT_TRACE_PROPERTIES. Cette option est prise en charge sur Windows Vista et versions ultérieures.
EVENT_TRACE_USE_GLOBAL_SEQUENCE(0x00004000) Utilise des numéros de séquence uniques entre les sessions de suivi d’événements. Ce mode s’applique uniquement aux événements enregistrés à l’aide de la fonction TraceMessage . Pour plus d’informations, consultez TraceMessage pour plus d’informations sur l’utilisation.
EVENT_TRACE_USE_GLOBAL_SEQUENCE et EVENT_TRACE_USE_LOCAL_SEQUENCE s’excluent mutuellement.
Windows 2000 : Cette valeur n’est pas prise en charge.
EVENT_TRACE_USE_LOCAL_SEQUENCE (0x00008000) Utilise des numéros de séquence uniques uniquement pour une session de suivi d’événements individuelle. Ce mode s’applique uniquement aux événements enregistrés à l’aide de la fonction TraceMessage . Pour plus d’informations, consultez TraceMessage pour plus d’informations sur l’utilisation.
EVENT_TRACE_USE_GLOBAL_SEQUENCE et EVENT_TRACE_USE_LOCAL_SEQUENCE s’excluent mutuellement.
Windows 2000 : Cette valeur n’est pas prise en charge.
EVENT_TRACE_RELOG_MODE (0x00010000) Journalise l’événement sans inclure EVENT_TRACE_HEADER. Note:
Ce mode ne doit pas être utilisé. Il est réservé à un usage interne.
Windows 2000 : Cette valeur n’est pas prise en charge.
EVENT_TRACE_PRIVATE_IN_PROC (0x00020000) Utilisez conjointement avec le mode EVENT_TRACE_PRIVATE_LOGGER_MODE pour démarrer une session privée. Ce mode applique que seul le processus qui a inscrit le GUID du fournisseur peut démarrer la session d’enregistreur d’événements avec ce GUID.
Vous pouvez créer jusqu’à trois sessions privées in-process par processus.
Cette option est prise en charge sur Windows Vista et versions ultérieures.
EVENT_TRACE_MODE_RESERVED(0x00100000) Cette option est utilisée pour signaler le tas et le suivi de section critique. Cette option est prise en charge sur Windows Vista et versions ultérieures.
EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN(0x00400000) Cette option arrête la journalisation lors de l’arrêt hybride. Si aucun EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN ou EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN n’est spécifié, ETW choisit une valeur par défaut selon que l’appelant provient ou non de la session 0. Cette option est prise en charge sur Windows 8 et Windows Server 2012.
EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN(0x00800000) Cette option poursuit la journalisation lors de l’arrêt hybride. Si aucun EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN ou EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN n’est spécifié, ETW choisit une valeur par défaut selon que l’appelant provient ou non de la session 0. Cette option est prise en charge sur Windows 8 et Windows Server 2012.
EVENT_TRACE_USE_PAGED_MEMORY (0x01000000) Utilise la mémoire paginée. Ce paramètre est recommandé afin que les événements n’utilisent pas la mémoire non paginé. Les mémoires tampons non paginés utilisent la mémoire non pagée pour l’espace de mémoire tampon. Étant donné que les mémoires tampons non paginées ne sont jamais paginées, une session de journalisation fonctionne correctement. L’utilisation de mémoires tampons paginables est moins gourmande en ressources.
Les fournisseurs en mode noyau et les enregistreurs d’événements système ne peuvent pas journaliser les événements dans les sessions qui spécifient ce mode de journalisation.
Ce mode est ignoré si EVENT_TRACE_PRIVATE_LOGGER_MODE est défini.
Vous ne pouvez pas utiliser ce mode avec l’enregistreur d’événements du noyau NT.
Windows 2000 : Cette valeur n’est pas prise en charge.
EVENT_TRACE_SYSTEM_LOGGER_MODE(0x02000000) Cette option recevra des événements de SystemTraceProvider. Si le paramètre LogFileModedes propriétésStartTrace inclut cet indicateur, l’enregistreur d’événements est un enregistreur d’événements système. Cette option est prise en charge sur Windows 8 et Windows Server 2012.
EVENT_TRACE_INDEPENDENT_SESSION_MODE(0x08000000) Indique qu’une session de journalisation ne doit pas être affectée par des échecs EventWrite dans d’autres sessions. Sans cet indicateur, si un événement ne peut pas être publié dans l’une des sessions pour lesquelles un fournisseur est activé, l’événement n’est publié dans aucune des sessions. Lorsque cet indicateur est défini, l’échec de l’écriture d’un événement dans une session n’entraîne pas le retour d’un code d’erreur par la fonction EventWrite dans d’autres sessions.
Ne pas utiliser avec EVENT_TRACE_PRIVATE_LOGGER_MODE.
Cette option est prise en charge sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures.
EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING (0x10000000) Écrit les événements qui ont été enregistrés sur différents processeurs dans une mémoire tampon commune. L’utilisation de ce mode peut éliminer le problème d’événements qui apparaissent dans le désordre lorsque des événements sont publiés sur différents processeurs à l’aide de l’heure système. Ce mode peut également éliminer le problème lié aux journaux circulaires qui semblent supprimer des événements sur plusieurs ordinateurs de processeur.
Si vous n’utilisez pas ce mode et que vous utilisez l’heure système, les événements peuvent apparaître dans le désordre sur plusieurs ordinateurs processeurs. En effet, les mémoires tampons ETW sont associées à un processeur au lieu d’un thread. Par conséquent, si un thread est basculé d’un processeur à un autre, la mémoire tampon associée à ce dernier processeur peut être vidée sur le disque avant celle associée à l’ancien processeur.
Si vous prévoyez un volume élevé d’événements (par exemple, plus de 1 000 événements par seconde), vous ne devez pas utiliser ce mode.
Notez que le numéro de processeur n’est pas inclus dans l’événement.
Cette option est prise en charge sur Windows 7, Windows Server 2008 R2 et versions ultérieures.
EVENT_TRACE_ADDTO_TRIAGE_DUMP(0x80000000) Cette option ajoute des mémoires tampons ETW aux vidages de tri. Cette option est prise en charge sur Windows 8 et Windows Server 2012.