每个 跟踪提供程序 定义唯一标识提供程序的 控件 GUID 。 此 GUID 用于通过 Windows 事件跟踪(ETW)启用或禁用跟踪提供程序。
在探测的跟踪提供程序的源代码文件中,控制 GUID 显示在 WPP_CONTROL_GUIDS 宏中。
#define WPP_CONTROL_GUIDS \
WPP_DEFINE_CONTROL_GUID(GUIDFriendlyName, (ControlGUID), \
WPP_DEFINE_BIT(NameOfTraceFlag1) \
WPP_DEFINE_BIT(NameOfTraceFlag2) \
............................. \
............................. \
WPP_DEFINE_BIT(NameOfTraceFlag32) )
Tracepdb 创建一个 跟踪(MOF)文件 ,其中包含控制 GUID 和 PDB 文件中表示的每个跟踪提供程序的跟踪级别。 MOF 文件的名称是跟踪提供程序的模块名称。 如果使用 -c 选项,Tracepdb 还可以生成 TMC 文件。
由于控件 GUID 标识到 ETW 的跟踪提供程序,因此可以使用控件 GUID 来定义和重新定义 跟踪提供程序的范围。 例如,通过指定相同的控件 GUID,多个驱动程序可以是单个跟踪提供程序的一部分。 或者,单个驱动程序可以通过在每个 WPP_CONTROL_GUIDS 宏实例中指定不同的控件 GUID 来包含多个跟踪提供程序。