关于驱动程序的事件跟踪
已定义事件跟踪
Windows (ETW) 事件跟踪是一种高效且有效的机制,用于跟踪和记录用户模式应用程序和内核模式驱动程序引发的事件。 ETW 由三个组件组成:
术语 | 说明 |
---|---|
提供程序 |
引发事件跟踪检测的应用程序或组件。 |
Controllers |
启动、停止和配置事件跟踪会话的应用程序。 |
使用者 |
接收事件跟踪会话的应用程序) 或文件中实时 (。 |
The ETW Kernel-Mode API
ETW 应用程序编程接口 (API) 提供了一组可用于内核模式组件和驱动程序的函数。 WMI 事件跟踪 和 WPP 软件跟踪 都使用 ETW。 驱动程序开发人员可以使用这些函数将驱动程序注册为 ETW 提供程序。 ETW 提供程序可以引发事件并将它们发布到 Windows 事件日志,也可以将其事件写入 ETW 会话,该会话将写入跟踪文件或传送到实时使用者。 事件是描述系统中相关事件的实体,由 ETW 提供程序确定的一组属性定义。
ETW 在 Windows 操作系统中实现,为开发人员提供了一组快速、可靠且用途广泛的事件跟踪功能,对性能的影响很小。 可以在不重启计算机或重新加载应用程序或驱动程序的情况下动态启用或禁用跟踪。 与在开发期间添加到代码中的调试语句不同,你可以在生产代码中使用 ETW。
何时使用事件跟踪
如果要发布可由对管理、操作和分析事件感兴趣的应用程序使用的事件,以及开发期间可能需要的详细跟踪,请使用 ETW 内核模式 API。 如果有兴趣主要收集跟踪数据以进行开发和调试,请使用 WPP 软件跟踪。