控制 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) 文件 创建跟踪,该文件包含 PDB 文件中表示的每个跟踪提供程序的控制 GUID 和跟踪级别。 MOF 文件的名称是跟踪提供程序的模块名称。 如果使用 -c 选项,Tracepdb 还可以生成 TMC 文件。

由于控件 GUID 标识 ETW 的跟踪提供程序,因此可以使用控件 GUID 来定义和重新定义 跟踪提供程序的范围。 例如,通过指定相同的控件 GUID,多个驱动程序可以成为单个跟踪提供程序的一部分。 或者,单个驱动程序可以通过在 WPP_CONTROL_GUIDS 宏的每个实例中指定不同的控件 GUID 来包含多个跟踪提供程序。