Partager via


Configuration et démarrage de la session Global Logger

La session de suivi des événements Global Logger enregistre les événements qui se produisent au début du processus de démarrage du système d’exploitation. Les applications et les pilotes de périphérique peuvent utiliser la session Global Logger pour capturer les traces avant que l’utilisateur ne se connecte. Notez que certains pilotes de périphérique, tels que les pilotes de périphérique de disque, ne sont pas chargés au moment du début de la session Global Logger.

Notes

Si vous créez une session Global Logger sur Windows Vista, vous devez plutôt envisager de créer une session AutoLogger .

Vous utilisez le Registre pour configurer la session Global Logger. Ajoutez la clé GlobalLogger à la clé de Registre suivante, si elle n’est pas déjà présente :

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Control
            \WMI

Le tableau suivant décrit les valeurs que vous pouvez définir pour la clé GlobalLogger . Vous devez disposer de privilèges d’administrateur pour spécifier ces valeurs de Registre. Les valeurs de Registre affectent tous les fournisseurs qui consignent les événements dans la session Global Logger. La valeur Start est la seule valeur requise pour démarrer la session Global Logger ; toutes les autres valeurs ont des paramètres par défaut qui sont utilisés si la valeur n’est pas présente dans le Registre. En règle générale, vous devez utiliser les valeurs par défaut. Si vous spécifiez une valeur que ETW ne peut pas prendre en charge, ETW la remplace.

Valeur Type Description
Start REG_DWORD Définissez cette valeur sur 1 (activé) pour démarrer la session Global Logger la prochaine fois que le système démarre. Pour arrêter le démarrage de la session, définissez cette valeur sur 0 (désactivé).
BufferSize REG_DWORD Taille de chaque mémoire tampon, en kilo-octets. Cette valeur doit être inférieure à un mégaoctet. ETW utilise la taille de la mémoire physique pour calculer cette valeur.
ClockType REG_DWORD Minuteur à utiliser lors de la journalisation de l’horodatage pour chaque événement.
  • 1 = Valeur du compteur de performances (haute résolution)
  • 2 = Minuteur système
  • 3 = compteur de cycle du processeur
Pour obtenir une description de chaque type d’horloge, consultez le membre ClientContext de WNODE_HEADER.
La valeur par défaut est 1 (valeur du compteur de performances) sur Windows Vista et versions ultérieures. Avant Windows Vista, la valeur par défaut est 2 (minuteur système).
EnableKernelFlags REG_BINARY Utilisez cette valeur pour activer un ou plusieurs fournisseurs de noyau. Si vous activez les fournisseurs de noyau, la session Global Logger se renomme en Enregistreur d’événements de noyau NT au démarrage. Pour connaître les valeurs possibles, consultez le membre EnableFlags de EVENT_TRACE_PROPERTIES.
FileCounter REG_DWORD Nombre de fichiers journaux de suivi des événements générés par les sessions Global Logger. Le système incrémente cette valeur jusqu’à ce qu’elle atteigne la valeur FileMax. Ensuite, il réinitialise la valeur à 0. Ce compteur empêche le système de remplacer un fichier journal de trace Global Logger.
FileMax REG_DWORD Nombre maximal de fichiers journaux de suivi des événements autorisés sur le système. Lorsque le nombre de journaux de suivi atteint le maximum spécifié, le système commence à remplacer les journaux, en commençant par le plus ancien.
Si le fichier journal spécifié dans FileName existe, ETW ajoute la valeur FileCounter au nom du fichier. Par exemple, si le nom du fichier journal par défaut est utilisé, la forme est %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl.NNNN.
La valeur par défaut est 0, ce qui signifie qu’il n’y a pas de maximum.
FileName REG_SZ Chemin complet du fichier journal. Le chemin d’accès à ce fichier doit exister. Le fichier journal est un fichier journal séquentiel. Notez que tous les fournisseurs qui écrivent des événements dans la session Global Logger écrivent des événements dans ce fichier journal. Le chemin d’accès est limité à 1 024 caractères. Si FileName n’est pas spécifié, les événements sont écrits dans %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl. Avant Windows Vista : Le fichier par défaut est %SystemRoot%\System32\LogFiles\WMI\Trace.log.

FlushTimer REG_DWORD À quelle fréquence, en secondes, les tampons de trace sont vidés de force. La durée minimale de vidage est de 1 seconde. Cette vidage forcé s’ajoute à la vidage automatique qui se produit lorsqu’une mémoire tampon est pleine et lorsque la session de trace s’arrête.
Pour le cas d’un enregistreur d’événements en temps réel, la valeur zéro (valeur par défaut) signifie que l’heure de vidage est définie sur 1 seconde. Un enregistreur d’événements en temps réel est lorsque LogFileMode est défini sur EVENT_TRACE_REAL_TIME_MODE.
La valeur par défaut est 0. Par défaut, les mémoires tampons sont vidées uniquement lorsqu’elles sont pleines.
LogFileMode REG_DWORD Spécifie les options de session de journal. Pour connaître les valeurs, consultez Constantes du mode journalisation. Ces valeurs sont prises en charge sur Windows Vista et versions ultérieures.
MaximumBuffers REG_DWORD Nombre maximal de mémoires tampons à allouer. En règle générale, cette valeur correspond au nombre minimal de mémoires tampons plus vingt. ETW utilise la taille de la mémoire tampon et la taille de la mémoire physique pour calculer cette valeur. Cette valeur doit être supérieure ou égale à la valeur de MinimumBuffers.
MaxFileSize REG_DWORD Taille maximale, en mégaoctets, du fichier journal de trace d’événements. Par défaut, il n’existe aucune taille de fichier maximale.
MinimumBuffers REG_DWORD Nombre minimal de mémoires tampons à allouer au démarrage de la session Global Logger. Le nombre minimal de mémoires tampons que vous pouvez spécifier est de deux tampons par processeur. Par exemple, sur un seul ordinateur processeur, le nombre minimal de mémoires tampons est de deux.
La valeur par défaut d’un système monoprocesseur est 0x3.
État REG_DWORD Status de démarrage de Global Logger. Si l’enregistreur global n’a pas pu démarrer, la valeur de cette clé est le code d’erreur Win32 approprié. Si l’enregistreur global a démarré, la valeur de cette clé est ERROR_SUCCESS (0).

Une fois que le Registre a été modifié et que l’ordinateur a redémarré, la session Global Logger démarre automatiquement et est utilisée comme n’importe quelle autre session à une exception près : vous utilisez le handle constant WMI_GLOBAL_LOGGER_ID (défini dans Wmistr.h) pour référencer la session Global Logger. Cette constante peut être utilisée comme argument pour n’importe quelle fonction de suivi d’événements qui accepte un handle de session. Dans les fonctions qui acceptent un nom de session, utilisez GLOBAL_LOGGER_NAME.

Le contrôleur Global Logger n’appelle pas la fonction EnableTrace pour activer les fournisseurs. Le fournisseur est chargé de déterminer si la session Global Logger est démarrée, puis de s’activer.

Pour déterminer si la session Global Logger est démarrée, vous pouvez appeler la fonction ControlTrace , en définissant SessionHandle sur WMI_GLOBAL_LOGGER_ID et ControlCode sur EVENT_TRACE_CONTROL_QUERY. Si l’appel ControlTrace réussit, la session Global Logger existe et le fournisseur peut s’activer et consigner les événements dans la session Global Logger (la fonction ControlTrace retourne ERROR_WMI_INSTANCE_NOT_FOUND si global Logger n’est pas actif).

En règle générale, le contrôleur est chargé de transmettre les indicateurs d’activation et le niveau au fournisseur lorsqu’il active le fournisseur, mais comme le contrôleur Global Logger n’active pas le fournisseur, il incombe au fournisseur de se transmettre ces informations, si nécessaire.

La session Global Logger est une ressource limitée qui doit être utilisée avec parcimonie. Les services qui souhaitent capturer des informations pendant le processus de démarrage doivent envisager d’ajouter une logique de contrôleur à lui-même au lieu d’utiliser la session Global Logger.

Pour plus d’informations sur le démarrage d’une session de suivi d’événements, consultez Configuration et démarrage d’une session de suivi d’événements.

Pour plus d’informations sur le démarrage d’une session d’enregistreur d’événements privés, consultez Configuration et démarrage d’une session d’enregistreur d’événements privés.

Pour plus d’informations sur le démarrage d’une session d’enregistreur d’événements de noyau NT, consultez Configuration et démarrage de la session d’enregistreur d’événements du noyau NT.