(winevt.h) EVT_SUBSCRIBE_CALLBACK 回调函数

如果调用 EvtSubscribe 函数以接收与查询匹配的事件,则实现此回调。 当引发与查询条件匹配的事件时,服务会调用回调。

语法

EVT_SUBSCRIBE_CALLBACK EvtSubscribeCallback;

DWORD EvtSubscribeCallback(
  EVT_SUBSCRIBE_NOTIFY_ACTION Action,
  PVOID UserContext,
  EVT_HANDLE Event
)
{...}

参数

Action

确定 Event 参数是包含事件还是错误代码。 有关可能的通知操作值,请参阅 EVT_SUBSCRIBE_NOTIFY_ACTION 枚举。

UserContext

订阅服务器传递给 EvtSubscribe 函数的上下文。

Event

事件的句柄。 事件句柄仅在回调函数的持续时间内有效。 可以将此句柄与采用事件句柄 (的任何事件日志函数一起使用,例如 EvtRenderEvtFormatMessage) 。

不要调用 EvtClose 来关闭此句柄;当回调返回时,服务将关闭句柄。

如果 Action 参数为 EvtSubscribeActionError,请将 Event 强制转换为 DWORD 以访问 Win32 错误代码。

返回值

服务将忽略你返回的返回代码。

注解

此回调将阻止将其他事件传递到回调,因此请尽量缩短实现。

如果服务在设置订阅时遇到错误,则回调不会收到发生错误的任何通知。

如果 EvtSubscribeFlags 参数包含 EvtSubscribeStrict,则当缺少事件记录时,回调将收到通知。 在这种情况下, Event 的值将ERROR_EVT_QUERY_RESULT_STALE。

若要取消订阅,必须关闭 EvtSubscribe 函数返回的订阅句柄。

示例

有关实现 EVT_SUBSCRIBE_CALLBACK 回调函数的示例,请参阅 订阅事件

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 winevt.h

另请参阅

EvtSubscribe