控制 GUID

每个 跟踪提供程序 定义唯一标识提供程序的 控件 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 来包含多个跟踪提供程序。