Директивы INF AddAutoLogger и UpdateAutoLogger
Директивы AddAutoLogger и UpdateAutoLogger используются в inf DDInstall. Раздел "События". Они определяют характеристики для сеансов автозаписи трассировки событий Windows (ETW), которые записывают события, происходящие на ранних этапах процесса загрузки операционной системы. Эти директивы поддерживаются, начиная с Windows 11.
[DDInstall.Events]
AddAutoLogger=session-name,{SessionGUID},add-autologger-install-section
UpdateAutoLogger=session-name,update-autologger-install-section
...
Записи
имя сеанса
Указывает имя добавляемого сеанса AutoLogger. Это имя должно быть уникальным среди набора сеансов AutoLogger на компьютере. Рекомендуется, чтобы имя сеанса включало название вашей компании или сокращение названия вашей компании, чтобы оно не конфликтовалось с именем сеанса из другой компании.
SessionGUID
Указывает значение GUID, идентифицирующее сеанс autoLogger. Это может быть выражено в виде явного значения GUID в форме {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}
или в виде токена %strkey%, определенного {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}
для в разделе Strings INF-файла.
add-autologger-install-section
Ссылается на раздел, определенный inf-writer, который содержит сведения для регистрации autoLogger. Дополнительные сведения см. в следующем разделе Примечания .
update-autologger-install-section
Ссылается на раздел, определенный inf-writer, который содержит сведения о добавлении поставщиков в существующий autologger. Дополнительные сведения см. в следующем разделе Примечания .
Комментарии
Дополнительные сведения о autoLoggers см. в разделе Настройка и запуск сеанса автозалога.
Каждое имя раздела, созданного inf-writer, должно быть уникальным в ПРЕДЕЛАХ INF-файла и соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в разделе Общие правила синтаксиса для ФАЙЛОВ INF.
Директива AddAutoLogger должна ссылаться на имя add-autologger-install-section в другом месте INF-файла . Каждый раздел имеет следующую форму:
[add-autologger-install-section]
Start=<0 | 1>
[BufferSize=buffer-size]
[ClockType=clock-type]
[DisableRealtimePersistence= <0 | 1>]
[FileName=path-to-file]
[FileMax=file-max]
[FlushTimer=flush-timer]
[LogFileMode=log-file-mode]
[MaxFileSize=max-file-size]
[MaximumBuffers=max-buffers]
[MinimumBuffers=min-buffers]
(AddAutoLoggerProvider={ProviderGUID},autologger-provider-install-section)
…
Каждый раздел add-autologger-install-section должен содержать начальную версию. При необходимости укажите один или несколько поставщиков AutoLogger для autoLogger с помощью AddAutoLoggerProvider, каждый из которых размещен в отдельной строке. Дополнительные сведения о поставщиках AutoLogger в INF-файле см. в разделе Добавление поставщиков autoLogger ниже.
Директива UpdateAutoLogger должна ссылаться на именованный раздел update-autologger-install-section в другом месте INF-файла . Каждый такой раздел имеет следующую форму:
[update-autologger-install-section]
(AddAutoLoggerProvider={ProviderGUID},autologger-provider-install-section)
…
Каждый раздел update-autologger-install-section может указать один или несколько поставщиков AutoLogger с помощью AddAutoLoggerProvider, каждый из которых размещен в отдельной строке. Дополнительные сведения о поставщиках AutoLogger в INF-файле см. в разделе Добавление поставщиков autoLogger ниже.
Add-AutoLogger-Install-Section Entries and Values
Начать=0 | 1
Указывает, будет ли автоматический журнал запускаться при следующей перезагрузке компьютера. Чтобы запустить autoLogger, задайте для этого значения значение 1, в противном случае задайте для этого значения значение 0.
BufferSize=размер буфера
При необходимости задает размер каждого буфера в килобайтах.
Размер bufferSize должен быть меньше одного мегабайта. Трассировка событий Windows использует размер физической памяти для вычисления этого значения, если оно не задано.
ClockType=clock-type
При необходимости указывает таймер, используемый при регистрации метки времени для каждого события, используя следующие числовые значения, выраженные в десятичном формате или, как показано в следующем списке, в шестнадцатеричной нотации. Если этот параметр опущен, по умолчанию используется значение 0x1 (значение счетчика производительности).
0x1 (значение счетчика производительности)
0x2 (системный таймер)
0x3 (счетчик циклов ЦП)
Описание каждого типа часов см. в элементе ClientContext WNODE_HEADER.
DisableRealtimePersistence=0 | 1
При необходимости можно отключить сохраняемость в режиме реального времени, задав значение 1. Значение по умолчанию — 0 (включено). Если включена сохраняемость в режиме реального времени, будут сохраняться события реального времени, которые не были доставлены к моменту завершения работы компьютера. Затем события будут доставлены потребителю при следующем подключении потребителя к сеансу.
Имени файла=file-name
При необходимости указывает полный путь к файлу журнала. Если путь не существует, при первом запуске autoLogger будет предпринята попытка создать его. Длина fileName ограничена 1024 символами. Файл является последовательным файлом журнала. Путь к файлу по умолчанию — %DriverData%\<SessionName.etl>.
FileMax=file-max
При необходимости указывает максимальное количество экземпляров файла журнала, создаваемого трассировой событий Windows. После создания максимального количества файлов трассировка событий Windows перезаписывает первый файл, если он существует. Максимальное число поддерживаемых экземпляров файла журнала — 16. Не используйте эту функцию с EVENT_TRACE_FILE_MODE_NEWLINE LogFileMode.
FlushTimer=flush-timer
При необходимости указывает частоту принудительной очистки буферов трассировки в секундах. Минимальное время очистки составляет 1 секунду. Значение по умолчанию — 0. По умолчанию буферы очищаются только при заполнении.
LogFileMode=log-file-mode
При необходимости задает один или несколько режимов ведения журнала. Возможные значения см. в разделе Константы режима ведения журнала. Значение по умолчанию — 0x1 (EVENT_TRACE_FILE_MODE_SEQUENTIAL).
Maxfilesize=max-file-size
При необходимости указывает максимальный размер файла журнала в мегабайтах. Сеанс закрывается при достижении максимального размера, если EVENT_TRACE_FILE_MODE_CIRCULAR не указан в LogFileMode. Чтобы не указать ограничение, присвойте значение 0. Значение по умолчанию — 100 МБ. Поведение, которое происходит при достижении максимального размера файла, зависит от значения LogFileMode.
MaximumBuffers=максимальные буферы
При необходимости задает максимальное количество выделенных буферов, обычно это минимальное число буферов плюс двадцать. Это значение должно быть больше или равно значению MinimumBuffers.
MinimumBuffers=минимальные буферы
При необходимости задает минимальное количество буферов, выделяемых при запуске. Минимальное количество буферов, которые можно указать, составляет два буфера на процессор.
AddAutoLoggerProvider={ProviderGUID},autologger-provider-install-section
При необходимости указывает поставщик с под-директивой, которая ссылается на определяемый inf-writer autologger-provider-install-section в другом месте INF-файла. Дополнительные сведения см. в следующем разделе Добавление поставщиков autoLogger .
Добавление поставщиков autoLogger
В разделах add-autologger-install-section и update-autologger-install-section можно указать поставщиков, которые необходимо включить в сеансе, с помощью директивы AddAutoLoggerProvider .
ProviderGUID должен быть значением GUID, определяющим поставщика AutoLogger. Это можно выразить как явное значение GUID в формате {nnnnnn-nnnn-nnnn-nnnn} или в виде токена %strkey% , определенного для {nnnnnnnn-nnnn-nnnn-nnnnnnnnnnnn} в разделе Strings INF-файла.
Подраздел AddAutoLoggerProvider также должен ссылаться на раздел autologger-provider-install-section в другом месте файла. Каждый такой раздел имеет следующую форму:
[autologger-provider-install-section]
[Enabled=<0 | 1>]
[EnableFlags=enable-flags]
[EnableLevel=enable-level]
[EnablePropety=enable-property]
[MatchAnyKeyword=match-any-keyword]
[MatchAllKeyword=match-all-keyword]
Записи и значения AutoLogger-Provider-Install-Section
Включен=0 | 1
При необходимости указывает, включен ли поставщик. Чтобы включить поставщик, присвойте этому параметру значение 1. Чтобы отключить, задайте для параметра значение 0. Значение по умолчанию — 0.
EnableFlags=enable-flags
При необходимости указывает класс событий, для которых поставщик создает события. Дополнительные сведения см. в параметре EnableFlags функции EnableTraceEx . Укажите это имя значения, если поставщик не поддерживает MatchAnyKeyword или MatchAllKeyword.
EnableLevel=уровень включения
При необходимости предоставляет уровень детализации, включенный в событие . Список предопределенных уровней см. в параметре Level функции EnableTraceEx .
EnableProperty=enable-property
При необходимости предоставляет включение одного или нескольких из следующих элементов в файл журнала:
0x00000001 (EVENT_ENABLE_PROPERTY_SID) = включить в расширенные данные идентификатор безопасности (SID) пользователя.
0x00000002 (EVENT_ENABLE_PROPERTY_TS_ID) = включить в расширенные данные идентификатор сеанса терминала.
0x00000004 (EVENT_ENABLE_PROPERTY_STACK_TRACE) = включить в расширенные данные трассировку стека вызовов для событий, написанных с помощью EventWrite.
0x00000010 (EVENT_ENABLE_PROPERTY_IGNORE_KEYWORD_0) = фильтрует все события, для которых не задано ненулевое ключевое слово.
0x00000020 (EVENT_ENABLE_PROPERTY_PROVIDER_GROUP) = Указывает, что этот вызов EnableTraceEx2 должен включать группу поставщиков , а не отдельный поставщик событий.
0x00000080 (EVENT_ENABLE_PROPERTY_PROCESS_START_KEY) = включить ключ запуска процесса в расширенные данные.
0x00000100 (EVENT_ENABLE_PROPERTY_EVENT_KEY) = включить ключ события в расширенные данные.
0x00000200 (EVENT_ENABLE_PROPERTY_EXCLUDE_INPRIVATE) = фильтрует все события, помеченные как событие InPrivate или полученные из процесса, помеченного как InPrivate.
MatchAnyKeyword=match-any-ключевое слово
При необходимости предоставляет битовую маску ключевых слов, определяющих категорию событий, которые требуется записать поставщику. Поставщик записывает событие, если любой из битов ключевое слово события соответствует любому из битов, заданных в этой маске. Чтобы указать, что поставщик записывает все события, присвойте этому значению нулевое значение. Пример см. в разделе Примечания функции EnableTraceEx .
MatchAllKeyword=сопоставление всех ключевое слово
При необходимости ограничивает категорию событий, которые требуется записать поставщику. Если ключевое слово события соответствует условию MatchAnyKeyword, поставщик записывает событие только в том случае, если все биты в этой маске существуют в ключевое слово события. Эта маска не используется, если параметр MatchAnyKeyword равен нулю. Пример см. в разделе Примечания функции EnableTraceEx .
Примеры
[Contoso_Add_AutoLogger_Inst]
Start = 1
FileName = %%DriverData%%\Contoso\AutoLoggerLogFile.etl
AddAutoLoggerProvider = {4b8b1947-ae4d-54e2-826a-1aee78ef05b2}, Contoso_Provider_1_Inst
[Contoso_Update_AutoLogger_Inst]
AddAutoLoggerProvider= {a55d5a23-1a5b-580a-2be5-d7188f43fae1}, Contoso_Provider_2_Inst
[Contoso_Provider_1_Inst]
Enabled = 1
EnableProperty = 0x00000001
[Contoso_Provider_2_Inst]
Enabled = 1
Совместимость прежних версий
Директивы AddAutoLogger и UpdateAutoLogger поддерживаются начиная с Windows 11. Чтобы настроить autoLogger в ос нижнего уровня, используйте директиву AddReg .
[Contoso_AutoLogger_AddReg]
HKLM,SYSTEM\CurrentControlSet\Control\WMI\Autologger\<autologger-session-name>,Start,0x00010001,1
HKLM,SYSTEM\CurrentControlSet\Control\WMI\Autologger\<autologger-session-name>,GUID,,{autologger-guid}
HKLM,SYSTEM\CurrentControlSet\Control\WMI\Autologger\<autologger-session-name>\{autologger-provider-guid},Enabled,0x00010001,1