PEVENT_CALLBACK回调函数 (evntrace.h)
ETW 事件使用者实现此回调以接收来自跟踪处理会话的事件。 不应在新代码中使用此回调。 而是实现 EventRecordCallback。
PEVENT_CALLBACK类型是指向此回调函数的指针。 EventCallback 是应用程序定义的函数名称的占位符。
语法
PEVENT_CALLBACK PeventCallback;
void PeventCallback(
[in] PEVENT_TRACE pEvent
)
{...}
参数
[in] pEvent
指向包含事件信息的 EVENT_TRACE 结构的指针。
返回值
无
备注
注意
此回调已过时,因为它接收有关事件的不完整信息,并且与事件解码帮助程序 API(如 TdhGetEventInformation)不兼容。 实现 EventRecordCallback,而不是实现 EventCallback。
若要指定 ETW 调用传递事件的函数,请设置传递给 OpenTrace 函数的 EVENT_TRACE_LOGFILE 结构的 EventCallback 成员。
注意
如果 EventCallback 函数从 ProcessTrace 接收乱码数据,请双检查提供给 OpenTrace 的结构字段中EVENT_TRACE_LOGFILE
指定的ProcessTraceMode
标志。 EVENT_TRACE_LOGFILE
的 EventCallback 和 EventRecordCallback 字段是联合的重叠成员。 ProcessTraceMode
如果字段包含 PROCESS_TRACE_MODE_EVENT_RECORD
标志,ProcessTrace 将使用 EventRecordCallback 函数签名调用回调。 否则, ProcessTrace 将使用 EventCallback 函数签名调用回调。
使用 OpenTrace 创建跟踪处理会话后,调用 ProcessTrace 函数以开始接收事件。
当 ProcessTrace 开始处理跟踪中的事件时,它可能会使用一个或多个综合事件调用回调,这些事件包含有关跟踪 (元数据) 的数据,而不是来自记录的事件的数据。 这些综合事件将 Header.Guid 设置为 EventTraceGuid
,并且基于合成事件的内容设置了 Header.Class.Type 。 例如,每个跟踪文件中的第一个事件将是类型为 0 的合成事件 ,其中包含TRACE_LOGFILE_HEADER 信息。
收到的所有其他事件都包含特定于提供程序的事件数据。 使用 EVENT_TRACE 的 Header.Guid 和 Header.Class.Type 成员来确定收到的事件类型。 可以硬编码已知事件类型的解码逻辑,但大多数事件将使用命名空间中 \\root\wmi
系统中注册的 MOF 架构信息进行解码。 有关使用事件的 MOF 架构解释事件的信息,请参阅 使用事件。
示例
有关 EventCallback 函数的示例实现,请参阅 使用 MOF 检索事件数据。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | evntrace.h |