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


Директива INF AddEventProvider

Директива AddEventProvider используется в inf DDInstall. Раздел "События". Он определяет характеристики поставщиков трассировки событий Windows (ETW), связанных с драйверами. Эта директива поддерживается для Windows 10 версии 1809 и более поздних версий.

[DDInstall.Events] 

AddEventProvider={ProviderGUID},event-provider-install-section
...

Записи

ProviderGUID
Указывает значение GUID, идентифицирующее поставщика. Это может быть выражено в виде явного значения GUID в форме {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} или в виде токена %strkey%, определенного {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} для в разделе Strings INF-файла.

event-provider-install-section
Ссылается на раздел, определенный inf-writer, который содержит сведения о регистрации поставщика для этого устройства (или устройств). Дополнительные сведения см. в следующем разделе Примечания .

Комментарии

Определяемые системой расширения и расширения без учета регистра можно вставить в DDInstall. Раздел Events , содержащий директиву AddEventProvider в файлах INF для разных операционных систем и (или) кроссплатформенных INF-файлов для указания установок конкретной платформы или ОС.

Каждое имя раздела, созданного inf-writer, должно быть уникальным в ПРЕДЕЛАХ INF-файла и соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в разделе Общие правила синтаксиса для ФАЙЛОВ INF.

Директива AddEventProvider должна ссылаться на именованный раздел event-provider-install-section в другом месте INF-файла . Каждый такой раздел имеет следующую форму:

[event-provider-install-section]
 
ProviderName=name
ResourceFile=path-to-file
[MessageFile=path-to-file]
[ParameterFile=path-to-file]
(ImportChannel=channel-name) |
(AddChannel=channel-name,channel-type[,channel-install-section])
...

Каждый раздел event-provider-install-section должен содержать ProviderName и ResourceFile. При необходимости укажите список каналов для поставщика, используя любое сочетание ImportChannel(s) и AddChannel(s) в отдельной строке. Дополнительные сведения о списках каналов в INF-файле см. в разделе Указание списка каналов ниже. Дополнительные сведения о каналах журнала событий Windows см. в разделе Определение каналов.

Записи и значения раздела Event-Provider-Install

Providername=Имя
Указывает имя поставщика. Имя не может содержать более 255 символов и не может содержать символы: "", "><&", "", "|", "", ":", "", "?", "*" или символы со значениями ASCII меньше 31. Кроме того, имя должно соответствовать общим ограничениям на имена файлов и разделов реестра. Эти ограничения можно найти в разделе Именование файлов и размеров элементов реестра.

ResourceFile=путь к файлу
Указывает путь к exe-файлу или библиотеке DLL, содержащей ресурсы метаданных поставщика, выраженному как %dirid%\filename.

Число dirid является пользовательским идентификатором каталога или одним из системных идентификаторов каталога, описанных в разделе Использование dirids.

MessageFile=путь к файлу
При необходимости указывает путь к исполняемым файлам или библиотекам DLL, содержащим локализованные ресурсы сообщений поставщика, выраженный как %dirid%\filename.

ParameterFile=путь к файлу
При необходимости указывает путь к exe-файлу или библиотеке DLL, содержащей ресурсы строки параметров поставщика, выраженный как %dirid%\filename.

ImportChannel=channel-name
При необходимости указывает канал, определенный другим поставщиком. Дополнительные сведения см. в следующем разделе Указание списка каналов .

AddChannel=channel-name,channel-type[,channel-install-section]
При необходимости указывает канал с под-директивой, которая при необходимости ссылается на раздел channel-install-defined, определяемый INF-writer, в другом месте INF-файла. Дополнительные сведения см. в следующем разделе Указание списка каналов .

Указание списка каналов

Список каналов для поставщика можно указать в разделе event-provider-install-section. Вы можете импортировать канал или добавить канал в список, чтобы сохранить порядок этих каналов. Дополнительные сведения см. в разделе Определение каналов.

Имя канала должно быть уникальным в списке каналов, которые использует поставщик. Имя канала должно содержать менее 255 символов и не может содержать следующие символы: "", "><&", "", "|", "", "", ":", "", "?", "*" или символы со значениями ASCII меньше 31.

Тип канала можно указать как одно из следующих числовых значений, выраженных в десятичном формате или, как показано в следующем списке, в шестнадцатеричной нотации.

0x1 (Администратор)
каналы типа Администратор поддерживают события, предназначенные для конечных пользователей, администраторов и сотрудников службы поддержки. События, записанные в каналы Администратор, должны иметь четко определенное решение, с которым администратор может действовать.

0x2 (операционный)
Каналы рабочего типа поддерживают события, используемые для анализа и диагностики проблемы или возникновения. Они могут использоваться для запуска инструментальных средств или задач, исходя из проблемы или происхождения события.

0x3 (аналитика)
Каналы аналитического типа поддерживают события, публикуемые в большом объеме. Они описывают функционирование программы и указывают проблемы, которые не могут быть устранены вмешательством пользователя.

0x4 (отладка)
Каналы типа отладки поддерживают события, которые используются исключительно разработчиками для диагностики проблемы отладки.

Подраздел AddChannel также может ссылаться на раздел channel-install-section в другом месте INF-файла . Каждый такой раздел имеет следующую форму:

[channel-install-section]

[Isolation=isolation-type]
[Access=access-string]
[Enabled=0|1]
[Value=value]
[LoggingMaxSize=max-size]
[LoggingRetention=retention-type]
[LoggingAutoBackup=0|1]

Дополнительные сведения об атрибутах канала см. в разделе ChannelType , определенный в схеме EventManifest.

Записи и значения раздела Channel-Install

Изоляции=тип изоляции
При необходимости задает разрешения доступа по умолчанию для канала в виде одного из следующих числовых значений, выраженных в десятичном формате или, как показано в следующем списке, в шестнадцатеричной нотации. Если этот параметр опущен, по умолчанию используется 0x1 (приложение).

0x1 (приложение)

0x2 (система)

0x3 (настраиваемая)

Доступа=строка доступа
При необходимости задает дескриптор доступа на языке определения дескриптора безопасности (SDDL), который управляет доступом к файлу журнала, который поддерживает канал.

Эта строка управляет доступом на чтение файла (разрешения на запись игнорируются), если для параметра Изоляция задано значение 0x1 (приложение) или 0x2 (система), в то время как она управляет доступом на запись в канал и доступом на чтение к файлу, если атрибут изоляции имеет значение 0x3 (Пользовательский).

Включен=0|1
При необходимости указывает, включен ли канал. Если этот параметр опущен, по умолчанию используется значение 0 (отключено).

Так как каналы 0x3 (аналитика) и 0x4 (отладка ) являются каналами большого объема, для параметра Включено следует задать значение 1 только при исследовании проблемы с компонентом, который выполняет запись в этот канал. При каждом включении канала 0x3 (аналитика) и 0x4 (отладка) служба очищает события из канала.

Значение=Значение
При необходимости задает числовой идентификатор, который однозначно идентифицирует канал в списке каналов, определяемых поставщиком.

LoggingMaxSize=max-size
При необходимости задает максимальный размер файла журнала в байтах. Значение по умолчанию (и минимальное значение) — 1 МБ.

LoggingRetention=тип хранения
При необходимости указывает, является ли файл журнала 0x1 (циклический) или 0x2 (последовательный). По умолчанию используется 0x1 (циклический) для 0x1 (Администратор) и 0x2 (операционный) тип канала и 0x2 (последовательный) для 0x3 (аналитика) и 0x4 (отладка).

LoggingAutoBackup=0|1
При необходимости указывает, следует ли создавать новый файл журнала, когда текущий файл журнала достигает максимального размера. Задайте значение 1, чтобы запросить у службы создание нового файла по достижении максимального размера файла журнала; в противном случае — 0. Параметру LoggingAutoBackup можно задать значение 1, только если параметр LoggingRetention имеет значение 0x2 (последовательно) и только для 0x1 (Администратор) и 0x2 (операционный) тип канала.

Примеры

В этом примере показаны разделы event-provider-install, на которые ссылаются директивы AddEventProvider , как показано выше в примере для DDInstall. События.

[foo_Event_Provider_Inst]
ProviderName  = FooCollector
ResourceFile  = %13%\FooResource.dll
MessageFile   = %13%\FooMessage.exe

[bar_Event_Provider_Inst]
ProviderName  = BarCollector
ResourceFile  = %13%\BarResource.exe
MessageFile   = %13%\BarMessage.dll
ParameterFile = %13%\BarParameter.dll
ImportChannel = Microsoft-Windows-BaseProvider/Admin
AddChannel    = Bar-Provider/Admin,0x1,bar_Channel2_Inst    ; Admin type
ImportChannel = Microsoft-Windows-BaseProvider/Operational
ImportChannel = Microsoft-Windows-SampleProvider/Admin
AddChannel    = Bar-Provider/Debug,0x4                      ; Debug type

[bar_Channel2_Inst]
Isolation         = 2                                       ; System isolation
Enabled           = 1
Value             = 17
LoggingMaxSize    = 20971520
LoggingRetention  = 2                                       ; Sequential
LoggingAutoBackup = 1

См. также раздел

DDInstall. События