(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
事件的句柄。 事件句柄仅在回调函数的持续时间内有效。 可以将此句柄与采用事件句柄 (的任何事件日志函数一起使用,例如 EvtRender 或 EvtFormatMessage) 。
不要调用 EvtClose 来关闭此句柄;当回调返回时,服务将关闭句柄。
如果 Action 参数为 EvtSubscribeActionError,请将 Event 强制转换为 DWORD 以访问 Win32 错误代码。
返回值
服务将忽略你返回的返回代码。
注解
此回调将阻止将其他事件传递到回调,因此请尽量缩短实现。
如果服务在设置订阅时遇到错误,则回调不会收到发生错误的任何通知。
如果 EvtSubscribe 的 Flags 参数包含 EvtSubscribeStrict,则当缺少事件记录时,回调将收到通知。 在这种情况下, Event 的值将ERROR_EVT_QUERY_RESULT_STALE。
若要取消订阅,必须关闭 EvtSubscribe 函数返回的订阅句柄。
示例
有关实现 EVT_SUBSCRIBE_CALLBACK 回调函数的示例,请参阅 订阅事件。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | winevt.h |