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或事件日志记录来发布和使用事件。