Constantes de mode de 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 du _ _ fichier journal de suivi d’événements, des _ _ Propriétés de suivi d’événements et des structures d' _ _ en-tête de fichier journal de trace . 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 aucune taille de fichier maximale spécifiée.
EVENT_TRACE_FILE_MODE_SEQUENTIAL (0x00000001) Écrit les événements dans un fichier journal de façon séquentielle ; s’arrête lorsque le fichier atteint sa taille maximale. Ne pas utiliser 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 atteint la taille maximale, les événements les plus anciens sont remplacés par les événements entrants. Notez que le contenu du fichier journal circulaire peut apparaître dans le désordre sur les ordinateurs multiprocesseurs.
N’utilisez pas with EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILEou 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éé. À utiliser uniquement si vous spécifiez l' heure système pour la résolution de l’horloge, sinon, ProcessTrace retourne les événements avec des horodatages incorrects. Lorsque vous utilisez EVENT_TRACE_FILE_MODE_APPEND, les valeurs de bufferSize, NumberOfProcessorset ClockType doivent être explicitement fournies et doivent être les mêmes dans le journal et le fichier ajouté.
N’utilisez pas with EVENT_TRACE_REAL_TIME_MODE, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_NEWFILEou 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, tel que c:\test%d.ETL). Chaque fois qu’un nouveau 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 de journalisation du noyau NT.
N’utilisez pas with 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 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 pris en charge uniquement par l’enregistreur automatique. cette option est prise en charge sur Windows Vista et versions ultérieures.
.
EVENT_TRACE_SECURE_MODE (0X00000080) Limite les personnes autorisées à consigner les événements dans la session à ceux qui disposent de l’autorisation TRACELOG_LOG_EVENT . cette option est prise en charge sur Windows Vista et versions ultérieures.
EVENT_TRACE_REAL_TIME_MODE (0x00000100) Remet 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 journal finissent par échouer lorsque les mémoires tampons seront saturées. 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 processus sur Windows XP intégral Server 2003. Au lieu de cela, il faut que l’un des threads consomme les événements et les distribue aux autres.
avant Windows Vista : Vous ne devez pas utiliser le mode temps réel, car le taux d’événements pris en charge est bien plus faible que la lecture 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 en temps réel est plus approprié pour les é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 Ko et que votre taux de journalisation est 1 événement chaque seconde, le service écrit 64 Ko/seconde dans votre fichier journal.
EVENT_TRACE_DELAY_OPEN_FILE_MODE(0x00000200) Ce mode permet de différer l’ouverture du fichier journal jusqu’à ce qu’un événement se produise.
Remarque :
sur Windows Vista ou version ultérieure, ce mode ne doit pas être appliqué.

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 encore dans la mémoire tampon. La taille de cette mémoire tampon est le produit de MinimumBuffers et BufferSize (voir EVENT_TRACE_PROPERTIES). À la suite 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 ne sont pas fournis en temps réel, et ETW ne vide pas les mémoires tampons. Pour obtenir un 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 avec la possibilité d’afficher le contenu de mémoires tampons en mémoire avec l’extension de débogueur de noyau WMITrace .
N’utilisez pas with EVENT_TRACE_FILE_MODE_SEQUENTIAL, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILEou 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 suivi d’événements. La mémoire pour les 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énement 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 en tant que c:\mylogs\myprivatelog.etl, ETW crée le fichier journal en tant que c:\mylogs\ myprivatelog.etl_nnnn, où nnnn est l’identificateur du 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 des événements privés 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 la remise en temps réel.
  • Les événements qui sont générés par une session privée n’incluent pas le temps d’exécution pour les instructions en mode noyau ou en mode utilisateur, ni les détails au niveau du thread du temps processeur utilisé.
Les filtres d’ID de processus et les filtres de nom d’exécutable peuvent désormais être passés dans les API de contrôle de session lorsque les enregistreurs privés du système sont démarrés. Pour obtenir les meilleurs résultats dans les scénarios inter-processus, les mêmes filtres doivent être passés à chaque opération de contrôle pendant la session, y compris les appels Enable/diasble du fournisseur. Notez que les filtres ont le même format que ceux utilisés par EnableTraceEx2.
Vous pouvez utiliser ce mode conjointement avec le mode EVENT_TRACE_PRIVATE_IN_PROC .
avant Windows 10, version 1703 : Seul 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.

Ne pas utiliser avec EVENT_TRACE_REAL_TIME_MODE.
avant Windows 7 et Windows Server 2008 R2 : Ne pas utiliser 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 ne doit pas être appliqué.

EVENT_TRACE_USE_KBYTES_FOR_SIZE(0x00002000) Utilisez kilo-octets comme unité de mesure pour spécifier la taille d’un fichier. L’unité de mesure par défaut est en mégaoctets. Ce mode s’applique à la valeur de Registre MaxFileSize pour une session de journalisation automatique et le 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 qui sont uniques dans les sessions de suivi d’événements. Ce mode s’applique uniquement aux événements journalisé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 qui sont uniques uniquement pour une session de suivi d’événements individuelle. Ce mode s’applique uniquement aux événements journalisé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 de EVENT_TRACE_HEADER.
Remarque :
Ce mode ne doit pas être utilisé. Elle est réservée à 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 impose que seul le processus qui a inscrit le GUID du fournisseur puisse démarrer la session de journalisation 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 suivi des sections critiques et du tas. 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 de l’arrêt hybride. Si ni EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN ni EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN n’est spécifié, ETW choisit une valeur par défaut selon que l’appelant provient de la session 0 ou non. 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 de l’arrêt hybride. Si ni EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN ni EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN n’est spécifié, ETW choisit une valeur par défaut selon que l’appelant provient de la session 0 ou non. 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ée. Les mémoires tampons non paginées utilisent la mémoire non paginée pour l’espace de la mémoire tampon. Étant donné que les mémoires tampons non paginées ne sont jamais paginées, une session de journalisation s’effectue correctement. L’utilisation de mémoires tampons paginables est moins gourmande en ressources.
Les fournisseurs en mode noyau et les journaux système ne peuvent pas consigner des événements dans des 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 de noyau NT.
Windows 2000 : Cette valeur n’est pas prise en charge.
EVENT_TRACE_SYSTEM_LOGGER_MODE(0x02000000) Cette option reçoit les événements de SystemTraceProvider. Si le paramètre dePropriétés StartTrace LogFileMode comprend cet indicateur, l’enregistreur d’événements est un journal 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 les échecs de 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 pas publié dans les sessions. Lorsque cet indicateur est défini, l’échec de l’écriture d’un événement dans une session ne fait pas en sorte que la fonction EventWrite retourne un code d’erreur 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 des événements qui ont été enregistrés sur des processeurs différents dans une mémoire tampon commune. L’utilisation de ce mode peut éliminer le problème des événements qui apparaissent dans le désordre lorsque des événements sont publiés sur des processeurs différents à l’aide de l’heure système. Ce mode peut également éliminer le problème avec les journaux circulaires qui s’affichent pour 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 de processeur. Cela est dû au fait que les mémoires tampons ETW sont associées à un processeur au lieu d’un thread. Par conséquent, si un thread passe d’un processeur à un autre, la mémoire tampon associée à ce dernier peut être vidée sur le disque avant celle associée à l’UC précédente.
Si vous vous attendez à 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 avec 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 triage. cette option est prise en charge sur Windows 8 et Windows Server 2012.