Настройка и запуск сеанса AutoLogger
В сеансе трассировки событий AutoLogger записываются события, возникающие на ранней стадии загрузки операционной системы. Приложения и драйверы устройств могут использовать сеанс AutoLogger для записи трассировок перед входом пользователя. Обратите внимание, что некоторые драйверы устройств, такие как драйверы дискового устройства, не загружаются во время начала сеанса AutoLogger.
AutoLogger отличается от глобального средства ведения журнала следующими способами:
- Можно указать один или несколько сеансов AutoLogger (глобальный журнал был одним сеансом, в котором регистрировались все события).
- AutoLogger отправляет уведомление о включении поставщикам при запуске сеанса (глобальный средство ведения журнала не отправляло уведомление о включении поставщикам, поэтому поставщики должны были полагаться на другие средства, чтобы узнать, запущен ли сеанс глобального средства ведения журнала, чтобы начать ведение журнала событий).
- AutoLogger не поддерживает ведение журнала событий nt Kernel Logger (см. элемент EnableFlags EVENT_TRACE_PROPERTIES). Чтобы регистрировать события ведения журнала ядра NT, необходимо использовать глобальный средство ведения журнала.
Дополнительные сведения о просмотре глобального средства ведения журнала см. в разделе "Настройка и запуск сеанса глобального средства ведения журнала".
Примечание.
ETW поддерживает autoLogger в Windows Vista и более поздних версиях. Используйте глобальный журнал в более ранних операционных системах.
Вы используете реестр для настройки сеанса AutoLogger. Добавьте следующий раздел реестра, если он еще не присутствует:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\WMI
\Autologger
В разделе "Автологгер" создайте ключ для каждого сеанса AutoLogger, который необходимо настроить, как показано в следующем примере.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\WMI
\Autologger
\Logger Session A
\Logger Session B
\Logger Session C
Для каждого сеанса создайте ключ для каждого поставщика, который требуется включить в сеанс. Используйте GUID поставщика в качестве ключа.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\WMI
\Autologger
\Logger Session A
\{ProviderGuid1}
\{ProviderGuid2}
\Logger Session B
\Logger Session C
В следующей таблице описываются значения, которые можно определить для каждого сеанса AutoLogger. Для указания этих значений реестра необходимо иметь права администратора. Значение Start и Guid — это единственные значения, необходимые для запуска сеанса AutoLogger. Все остальные значения имеют параметры по умолчанию, которые используются, если значение отсутствует в реестре. Как правило, следует использовать значения по умолчанию. Если указать значение, которое не поддерживается, ETW переопределит значение.
Значение | Тип | Описание |
---|---|---|
BufferSize | REG_DWORD | Размер каждого буфера в килобайтах. Должно быть меньше одного мегабайта. ETW использует размер физической памяти для вычисления этого значения. |
ClockType | REG_DWORD | Таймер, используемый при регистрации метки времени для каждого события.
Значение по умолчанию — 1 (значение счетчика производительности) в Windows Vista и более поздних версиях. До Windows Vista значение по умолчанию равно 2 (системный таймер). |
DisableRealtimePersistence | REG_DWORD | Чтобы отключить сохраняемость в режиме реального времени, задайте для этого значения значение 1. Значение по умолчанию — 0 (включено) для сеансов в режиме реального времени. Если включена сохраняемость в режиме реального времени, события реального времени, которые не были доставлены во время завершения работы компьютера, будут сохранены. Затем события будут доставлены потребителю при следующем подключении потребителя к сеансу. |
FileCounter | REG_DWORD | Не устанавливайте или не изменяйте это значение. Это значение является серийным номером, используемым для увеличения имени файла журнала при указании FileMax . Если значение недопустимо, предполагается, что 1. |
FileName | REG_SZ | Полный путь к файлу журнала. Путь к этому файлу должен существовать. Файл журнала — это последовательный файл журнала. Путь ограничен 1024 символами. Если имя файла не указано, события записываются в %SystemRoot%\System32\LogFiles\WMI< sessionname.etl>. |
FileMax | REG_DWORD | Максимальное количество экземпляров файла журнала, который создает ETW. Если файл журнала, указанный в FileName , существует, ETW добавляет значение FileCounter к имени файла. Например, если используется имя файла журнала по умолчанию, форма — %SystemRoot%\System32\LogFiles\WMI< sessionname.etl>. NNNN. При первом запуске компьютера имя файла — <sessionname.etl.0001>, во второй раз имя файла — <sessionname.etl.0002> и т. д. Если Значение FileMax равно 3, на четвертом перезапуске компьютера ETW сбрасывает счетчик до 1 и перезаписывает <имя> сеанса.etl.0001, если он существует. Максимальное количество экземпляров поддерживаемого файла журнала — 16. Не используйте эту функцию с режимом файла журнала EVENT_TRACE_FILE_MODE_NEWFILE . |
FlushTimer | REG_DWORD | Как часто буферы трассировки в секундах принудительно очищаются. Минимальное время очистки составляет 1 секунду. Это принудительное очистка в дополнение к автоматическому сбросу, который возникает при заполнении буфера и при остановке сеанса трассировки. В случае средства ведения журнала в режиме реального времени значение нуля (значение по умолчанию) означает, что время очистки будет равно 1 секунде. Средство ведения журнала в режиме реального времени — если для LogFileMode задано значение EVENT_TRACE_REAL_TIME_MODE. Значение по умолчанию равно 0. По умолчанию буферы сбрасываются только в том случае, если они заполнены. |
Guid | REG_SZ | Строка, содержащая ИДЕНТИФИКАТОР GUID, который однозначно идентифицирует сеанс. Это значение обязательно. |
LogFileMode | REG_DWORD | Укажите один или несколько режимов журнала. Возможные значения см. в разделе "Константы режима ведения журнала". Значение по умолчанию — EVENT_TRACE_FILE_MODE_SEQUENTIAL. Вместо записи в файл журнала можно указать EVENT_TRACE_BUFFERING_MODE или EVENT_TRACE_REAL_TIME_MODE. Указание EVENT_TRACE_BUFFERING_MODE позволяет избежать затрат на очистку содержимого сеанса на диск, когда файловая система становится доступной. Обратите внимание, что при использовании EVENT_TRACE_BUFFERING_MODE система будет игнорировать значение MaximumBuffers, так как размер буфера является продуктом MinimumBuffers и BufferSize. Сеансы AutoLogger не поддерживают режим EVENT_TRACE_FILE_MODE_NEWFILE ведения журнала. Если указана EVENT_TRACE_FILE_MODE_APPEND, буферSize должен быть явно указан и должен быть одинаковым как в средстве ведения журнала, так и в добавляемом файле. |
Maxfilesize | REG_DWORD | Максимальный размер файла журнала в мегабайтах. Сеанс закрывается при достижении максимального размера, если вы не находитесь в режиме циклического файла журнала. Чтобы указать ограничение, задайте значение 0. Значение по умолчанию — 100 МБ, если не задано. Поведение, возникающее при достижении максимального размера файла, зависит от значения LogFileMode. |
MaximumBuffers | REG_DWORD | Максимальное количество выделенных буферов. Как правило, это значение — минимальное количество буферов плюс двадцать. ETW использует размер буфера и размер физической памяти для вычисления этого значения. Это значение должно быть больше или равно значению для MinimumBuffers. |
МинимальныеBuffers | REG_DWORD | Минимальное количество буферов, выделяемых при запуске. Минимальное количество буферов, которые можно указать, — это два буфера на процессор. Например, на одном процессоре минимальное количество буферов составляет два. |
Начало | REG_DWORD | Чтобы сеанс AutoLogger запускался при следующем перезапуске компьютера, задайте для этого значения значение 1; в противном случае задайте для этого значения значение 0. |
Состояние | REG_DWORD | Состояние запуска автолога. Если автолог не удалось запустить, значение этого ключа является соответствующим кодом ошибки Win32. Если автолог успешно запущен, значение этого ключа ERROR_SUCCESS (0). |
Загрузки | REG_DWORD | Эта функция не должна использоваться вне сценариев отладки. Если этот раздел реестра имеет значение 1, автоматический журнал будет запущен раньше, чем обычно во время инициализации ядра, что позволяет ему записывать события во время инициализации многих важных подсистем ядра. Однако включение этого параметра негативно влияет на время загрузки и накладывает дополнительные ограничения для автолога. Если эта функция включена, идентификатор GUID сеанса автолога должен быть заполнен, и многие другие параметры автолога могут не работать. Этот ключ поддерживается в Windows Server 2022 и более поздних версиях. |
В следующей таблице описаны значения, которые можно определить для каждого поставщика, который требуется включить в сеанс. Для указания этих значений реестра необходимо иметь права администратора. Если указать значение, которое не поддерживается, ETW переопределит значение.
Значение | Тип | Описание |
---|---|---|
Включено | REG_DWORD | Определяет, включен ли поставщик. Чтобы включить поставщик, задайте для этого значения значение 1. Чтобы отключить поставщика, задайте для этого значения значение 0. По умолчанию установлено значение 0. |
EnableFlags | REG_DWORD | Определяемое поставщиком значение, указывающее класс событий, для которых поставщик создает события. Дополнительные сведения см. в параметре EnableFlags функции EnableTrace. Укажите это имя значения, если поставщик не поддерживает MatchAnyKeyword или MatchAllKeyword. |
EnableLevel | REG_DWORD | Определяемое поставщиком значение, указывающее уровень детализации, включенный в событие. Например, это значение можно использовать для указания уровня серьезности событий (информационных, предупреждений, ошибок), создаваемых поставщиком. Список предопределенных уровней см. в параметре уровня функции EnableTraceEx. |
EnableProperty | REG_DWORD | Используйте это значение для включения одного или нескольких следующих элементов в файл журнала:
|
MatchAnyKeyword | REG_QWORD | Битовая маска ключевое слово, которая определяет категорию событий, которые требуется записать поставщику. Поставщик записывает событие, если любой из ключевое слово битов события соответствует любому из битов, заданных в этой маске. Чтобы указать, что поставщик записывает все события, задайте для этого значения нулевое значение. Пример см. в разделе "Примечания" функции EnableTraceEx. |
MatchAllKeyword | REG_QWORD | Эта битовая маска является необязательной. Эта маска дополнительно ограничивает категорию событий, которые требуется записать поставщику. Если ключевое слово события соответствует условию MatchAnyKeyword, поставщик будет записывать событие только в том случае, если все биты в этой маске существуют в ключевое слово события. Эта маска не используется, если MatchAnyKeyword равно нулю. Пример см. в разделе "Примечания" функции EnableTraceEx. |
После изменения реестра сеанс Автолога запускается при следующем перезапуске компьютера. Сеанс AutoLogger вызывает функцию EnableTraceEx , чтобы включить поставщиков.
Сеансы AutoLogger увеличивают время загрузки системы и должны использоваться кратно. Службы, которые хотят записывать данные во время загрузки, должны рассмотреть возможность добавления логики контроллера в себя вместо использования сеанса AutoLogger.
Чтобы остановить сеанс AutoLogger, вызовите функцию ControlTrace . Имя сеанса, передаваемое функции, — это имя раздела реестра, который использовался для определения сеанса в реестре.
Дополнительные сведения о запуске сеанса трассировки событий см. в разделе "Настройка и запуск сеанса трассировки событий".
Дополнительные сведения о запуске сеанса частного ведения журнала см. в разделе "Настройка и запуск сеанса частного средства ведения журнала".
Дополнительные сведения о запуске сеанса ведения журнала ядра NT см. в разделе "Настройка и запуск сеанса средства ведения журнала ядра NT".