Поделиться через


Настройка и запуск сеанса глобального логгера

Сеанс трассировки событий Global Logger записывает события, происходящие на ранних стадиях процесса загрузки операционной системы. Приложения и драйверы устройств могут использовать сеанс Глобального средства ведения журнала для записи трассировок перед входом пользователя. Обратите внимание, что некоторые драйверы устройств, такие как драйверы дискового устройства, не загружаются во время начала сеанса глобального средства ведения журнала.

Заметка

Если вы создаете сеанс глобального ведения журнала в Windows Vista, вместо этого следует создать сеанс автолога.

Вы используете реестр для настройки сеанса глобального средства ведения журнала. Добавьте ключ GlobalLogger в следующий ключ реестра, если он еще не присутствует:

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Control
            \WMI

В следующей таблице описаны значения, которые можно определить для ключа GlobalLogger. Для указания этих значений реестра необходимо иметь права администратора. Значения реестра влияют на всех поставщиков, которые регистрируют события в сеансе Global Logger. Значение Start является единственным значением, необходимым для запуска сеанса Global Logger; все остальные значения имеют параметры по умолчанию, которые используются, если значение отсутствует в реестре. Как правило, следует использовать значения по умолчанию. Если указать значение, которое не поддерживается, ETW переопределит значение.

Ценность Тип Описание
Запуск REG_DWORD Задайте для этого значения значение 1 (включено), чтобы запустить сеанс глобального средства ведения журнала при следующем запуске системы. Чтобы остановить запуск сеанса, задайте для этого значения значение 0 (отключено).
РазмерБуфера REG_DWORD Размер каждого буфера в килобайтах. Это значение должно быть меньше одного мегабайта. ETW использует размер физической памяти для вычисления этого значения.
ClockType REG_DWORD Таймер, используемый при регистрации метки времени для каждого события.
  • 1 = значение счетчика производительности (высокое разрешение)
  • 2 = системный таймер
  • 3 = счетчик цикла ЦП
Описание каждого типа часов см. в поле ClientContext элемента WNODE_HEADER.
Значение по умолчанию — 1 (значение счетчика производительности) в Windows Vista и более поздних версиях. До Windows Vista значение по умолчанию равно 2 (системный таймер).
EnableKernelFlags REG_BINARY Используйте это значение для включения одного или нескольких поставщиков ядра. Если включить поставщики ядра, сеанс Глобального средства ведения журнала будет переименовывать себя в NT Kernel Logger при запуске. Для возможных значений см. EnableFlags член EVENT_TRACE_PROPERTIES.
FileCounter REG_DWORD Количество файлов журнала трассировки событий, созданных сеансами глобального средства ведения журнала. Система увеличивает это значение, пока не достигнет значения FileMax. Затем он устанавливает значение в 0. Этот счетчик запрещает системе перезапись файла журнала трассировки глобального средства ведения журнала.
FileMax REG_DWORD Максимальное количество файлов журнала трассировки событий, разрешенных в системе. Когда число журналов трассировки достигает указанного максимума, система начинает перезаписывать журналы, начиная с самого старого.
Если файл журнала, указанный в FileName существует, etW добавляет значение FileCounter к имени файла. Например, если используется имя файла журнала по умолчанию, форма %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl.NNNN.
Значение по умолчанию равно 0, то есть нет максимального значения.
Имя файла REG_SZ Полный путь к файлу журнала. Путь к этому файлу должен существовать. Файл журнала — это последовательный файл журнала. Обратите внимание, что все поставщики, записывающие события в сеанс Global Logger, записывают события в этот файл журнала. Путь ограничен 1024 символами. Если имя_файла не указано, события записываются в %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl. До Windows Vista: Файл по умолчанию — %SystemRoot%\System32\LogFiles\WMI\Trace.log.

FlushTimer REG_DWORD Как часто буферы трассировки в секундах принудительно очищаются. Минимальное время очистки составляет 1 секунду. Этот принудительный сброс происходит в дополнение к автоматическому сбросу, который происходит, когда буфер заполняется и когда сеанс трассировки останавливается.
В случае средства ведения журнала в режиме реального времени значение нуля (значение по умолчанию) означает, что время очистки будет равно 1 секунде. Средство ведения журнала в режиме реального времени — когда LogFileMode установлен в EVENT_TRACE_REAL_TIME_MODE.
Значение по умолчанию — 0. По умолчанию буферы сбрасываются только в том случае, если они заполнены.
LogFileMode REG_DWORD Задает параметры сеанса журнала. Для получения значений, см. раздел Константы режима ведения журнала. Эти значения поддерживаются в Windows Vista и более поздних версиях.
MaximumBuffers REG_DWORD Максимальное количество выделенных буферов. Как правило, это значение — минимальное количество буферов плюс двадцать. ETW использует размер буфера и размер физической памяти для вычисления этого значения. Это значение должно быть больше или равно значению для minimumBuffers.
MaxFileSize REG_DWORD Максимальный размер файла журнала трассировки событий в мегабайтах. По умолчанию максимальный размер файла отсутствует.
МинимальныеБуферы REG_DWORD Минимальное количество буферов, выделяемых при запуске сеанса Глобального регистратора. Минимальное количество буферов, которые можно указать, — это два буфера на процессор. Например, на одном процессоре минимальное количество буферов составляет два.
Значение по умолчанию в однопроцессорной системе 0x3.
состояния REG_DWORD Состояние запуска глобального логгера. Если глобальное средство ведения журнала не удалось запустить, значение этого ключа — соответствующий код ошибки Win32. Если глобальное средство ведения журнала успешно запущено, значение этого ключа — ERROR_SUCCESS (0).

После изменения реестра и перезагрузки компьютера сеанс глобального ведения журнала запускается автоматически и используется как любой другой сеанс с одним исключением: вы используете дескриптор констант WMI_GLOBAL_LOGGER_ID (определенный в Wmistr.h) для ссылки на сеанс Глобального ведения журнала. Эта константа может использоваться в качестве аргумента для любой функции трассировки событий, которая принимает дескриптор сеанса. В функциях, которые принимают имя сеанса, используйте GLOBAL_LOGGER_NAME.

Контроллер глобального ведения журнала не вызывает функцию EnableTrace для включения провайдеров. Поставщик отвечает за определение, запущен ли сеанс глобального ведения журнала, и затем включает себя.

Чтобы определить, запущен ли сеанс глобального средства ведения журнала, можно вызвать функцию ControlTrace, установив параметру SessionHandle значение WMI_GLOBAL_LOGGER_ID и ControlCode в значение EVENT_TRACE_CONTROL_QUERY. Если вызов ControlTrace выполнен успешно, сеанс Глобального средства ведения журнала существует, и поставщик может включить себя и регистрировать события в сеансе Глобального средства ведения журнала (функция ControlTrace возвращает ERROR_WMI_INSTANCE_NOT_FOUND, если Глобальное средство ведения журнала не активно).

Как правило, контроллер отвечает за передачу флагов включения и уровня поставщику при его включении; однако, поскольку контроллер Глобального Логгера не активирует поставщика, ответственность за передачу этой информации на себя при необходимости лежит на самом поставщике.

Сеанс глобального ведения журнала — это ограниченный ресурс, который следует использовать с разреженным образом. Службы, которые хотят записывать данные во время загрузки, должны рассмотреть возможность добавления логики контроллера в свои системы вместо использования сеанса Global Logger.

Для получения информации о настройке и запуске сеанса трассировки событий смотрите .

Дополнительные сведения о запуске сеанса частного ведения журнала см. в разделе Настройка и запуск сеанса частного ведения журнала.

Дополнительные сведения о запуске сеанса ведения журнала ядра NT см. в настройке и запускесеанса ведения журнала ядра NT.