EVT_SUBSCRIBE_CALLBACK winevt.h) (回呼函式
如果您呼叫 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,您的回呼會在事件記錄遺失時收到通知。 在此情況下, 事件 的值將會ERROR_EVT_QUERY_RESULT_STALE。
若要取消訂閱,您必須關閉 EvtSubscribe 函式傳回的訂用帳戶句柄。
範例
如需實作 EVT_SUBSCRIBE_CALLBACK 回呼函式的範例,請參閱 訂閱事件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winevt.h |