Windows 事件
事件通常用于排查应用程序和驱动程序软件问题。
- 在 Windows Vista 之前,可以使用 Windows 事件跟踪 (ETW) 或事件日志记录来记录事件。
- Windows Vista 引入了一个新的事件模型,该模型统一了 Windows (ETW 事件 跟踪) 和 Windows 事件日志 API。
- Windows 10引入了基于 ETW 的 TraceLogging,它为本机、.NET 和 WinRT 开发人员提供了一种简化的检测代码的方法。
新的 TraceLogging 模型允许将结构化数据与事件包含在一起、关联事件,并且不需要单独的检测清单 XML 文件。
Windows Vista 模型使用 XML 清单来定义要发布的事件。 事件可以发布到频道或 ETW 会话。 可以将事件发布到以下类型的通道:管理员、操作、分析和调试。 如果仅使用 ETW 来启用发布者,则无需在清单中指定通道。 有关编写清单的完整详细信息,请参阅 编写检测清单;有关通道的信息,请参阅 定义通道。
若要注册事件发布者并发布事件,请使用 ETW API。 有关详细信息,请参阅 提供事件 和 开发提供程序。 如果启用事件,事件发布者会自动将事件写入清单中指定的通道。
如果要控制事件发布者在更精细的粒度级别发布的事件,请使用 ETW API。 例如,如果清单同时定义写入和读取事件,则只能启用写入事件。 事件还可以指定级别值,例如警告或错误,因此可以将写入的事件限制为指定错误级别的事件。 有关详细信息,请参阅 控制事件跟踪会话。 事件将写入会话的日志文件。
使用事件涉及从事件通道、事件日志文件 (.evtx 或 .evt 文件) 、跟踪文件 (.etl 文件) 或实时 ETW 会话中检索事件。 若要使用 ETW 跟踪文件或实时 ETW 会话中的事件,请使用跟踪数据帮助程序 (ETW 中的 TDH) 函数来使用事件。 还可以使用 TDH 读取事件元数据。 有关详细信息,请参阅 使用事件。 若要使用事件通道或事件日志文件中的事件,请使用 Windows 事件日志函数查询或订阅事件。 有关详细信息,请参阅 查询事件 或 订阅事件。
在 Windows Vista 之前,必须使用 Windows 事件跟踪 或 事件日志记录 来发布和使用事件。