INF AddEventProvider 指令

AddEventProvider 指令在 INF DDInstall 中使用。“事件”部分。 它指定与驱动程序关联的 Windows (ETW) 提供程序 的事件跟踪 的特征。 Windows 10版本 1809 及更高版本支持此指令。

[DDInstall.Events] 

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

ProviderGUID
指定标识提供程序的 GUID 值。 这可以表示为格式{nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}的显式 GUID 值,也可以表示为 INF 文件的 Strings 节中定义的 {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} %strkey% 标记。

event-provider-install-section
引用 INF 编写器定义的部分,其中包含用于为此设备注册提供程序 (或设备) 的信息。 有关详细信息,请参阅以下 “备注” 部分。

注解

可以将系统定义的不区分大小写的扩展插入 到 DDInstall 中。事件 部分包含跨操作系统和/或跨平台 INF 文件中的 AddEventProvider 指令,用于指定特定于平台或特定于 OS 的安装。

INF 编写器创建的每个节名称在 INF 文件中必须是唯一的,并且必须遵循定义节名称的一般规则。 有关这些规则的详细信息,请参阅 INF 文件的一般语法规则

AddEventProvider 指令必须引用 INF 文件中其他位置的命名 event-provider-install-section。 每个此类部分具有以下形式:

[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 都必须提供 ProviderNameResourceFile。 (可选)使用 ImportChannel () 和 AddChannel () 的任意组合为提供程序指定通道列表,每个组合在一个单独的行上。 有关 INF 文件中的通道列表的详细信息,请参阅下面的 指定通道列表 。 有关 Windows 事件日志 通道的详细信息,请参阅 定义通道

Event-Provider-Install 节条目和值

ProviderName=名字
指定提供程序的名称。 名称不能超过 255 个字符,并且不能包含字符:“”、“><”、“&”、“”、|“、”“、”:“、”“、”?“、”*“或 ASCII 值小于 31 的字符。 此外,该名称必须遵循对文件和注册表项名称的一般约束。 可以在命名文件和注册表元素大小限制中找到这些约束。

ResourceFile=path-to-file
指定包含提供程序元数据资源的 exe 或 dll 的路径,表示为 %dirid%\filename。

dirid 编号是自定义目录标识符或使用 Dirids 中所述的系统定义的目录标识符之一。

MessageFile=path-to-file
(可选)指定 exe 或 dll 的路径,其中包含提供程序的本地化消息资源,表示为 %dirid%\filename。

ParameterFile=path-to-file
(可选)指定包含提供程序的参数字符串资源的 exe 或 dll 的路径,表示为 %dirid%\filename。

ImportChannel=channel-name
(可选)指定已由另一个提供程序定义的通道。 有关详细信息,请参阅下面的 指定通道列表 部分。

AddChannel=channel-name,channel-type[,channel-install-section]
(可选)指定具有子指令的通道,该子指令可以选择性地引用 INF 文件中其他位置的 INF 编写器定义的 channel-install-section。 有关详细信息,请参阅下面的 指定通道列表 部分。

指定通道列表

可以在 其 event-provider-install-节中指定提供程序的通道列表。 可以导入通道或向列表添加通道,并保留这些通道的顺序。 有关详细信息,请参阅 定义通道

通道名称在提供程序使用的通道列表中必须是唯一的。 通道名称必须少于 255 个字符,<并且不能包含以下字符:“”、“>”、“&”、“”、“|”、“|”、“”、“:”、“”、“'”、“?”、“*”或 ASCII 值小于 31 的字符。

通道 类型 可以指定为以下数值之一,以十进制或十六进制表示法表示,如以下列表所示。

0x1 (管理员)
管理员类型通道支持面向最终用户、管理员和支持人员的事件。 写入管理员通道的事件应具有定义完善的解决方案,管理员可以根据该解决方案进行操作。

0x2 (操作)
操作类型通道支持用于分析和诊断问题或事件的事件。 它们可用于根据问题或发生的事件触发工具或任务。

0x3 (Analytic)
分析类型通道支持大量发布的事件。 它们描述程序操作并指示用户无法处理的问题。

0x4 (调试)
调试类型通道支持仅由开发人员用来诊断调试问题的事件。

AddChannel 子指令还可以引用 INF 文件中的其他位置的 channel-install-section。 每个此类部分具有以下形式:

[channel-install-section]

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

有关通道属性的详细信息,请参阅 EventManifest 架构中定义的 ChannelType

Channel-Install 节条目和值

分离=isolation-type
(可选)将通道的默认访问权限指定为以下数值之一,以十进制或十六进制表示法表示,如以下列表所示。 如果省略,则默认为 0x1 (Application) 。

0x1 (应用程序)

0x2 (系统)

0x3 (自定义)

访问=access-string
(可选)指定 安全描述符定义语言 (SDDL) 访问描述符,用于控制对支持通道的日志文件的访问。

如果隔离设置为 0x1 (Application) ) 或0x2 (System) ,则忽略对文件的读取访问权限 (写入权限,同时如果隔离属性设置为 0x3 ( 自定义) ,则控制对通道的写入访问权限和对文件的读取访问权限。

启用=0|1
(可选)指定是否启用通道。 如果省略,则默认为 0 (禁用) 。

由于 0x3 (Analytic) 和 0x4 (Debug) 通道类型 是大容量通道,因此仅当调查写入到该通道的组件的问题时,才应将 Enabled 设置为 1。 每次启用 0x3 (Analytic) 并 0x4 (调试) 通道时,服务都会从通道中清除事件。

价值=价值
(可选)指定一个数字标识符,用于唯一标识提供程序定义的通道列表中的通道。

LoggingMaxSize=max-size
(可选)指定日志文件的最大大小(以字节为单位)。 默认 (,最小) 值为 1 MB。

LoggingRetention=retention-type
(可选)指定日志文件是 0x1 (循环) 还是 0x2 (顺序) 。 对于0x1 (管理员) 默认值为0x1 (循环 ) ,0x2 (操作) 通道类型,0x2 (0x3 (分析) 和0x4 (调试) 通道类型的 (顺序) 。

LoggingAutoBackup=0|1
(可选)指定在当前日志文件达到其最大大小时是否创建新的日志文件。 设置为 1 以请求服务在日志文件达到其最大大小时创建新文件;否则为 0。 仅当 LoggingRetention 设置为 0x2 ( 顺序) ,并且仅针对 0x1 (管理员) 和 0x2 (操作) 通道类型时,才能将 LoggingAutoBackup 设置为 1。

示例

此示例显示了 AddEventProvider 指令引用的 event-provider-install 部分,如前面 在 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。事件