共用方式為


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

事件的句柄。 事件句柄只有在回呼函式的持續時間才有效。 您可以使用此句柄搭配任何採用事件句柄的事件記錄函式 (例如 EvtRenderEvtFormatMessage) 。

請勿呼叫 EvtClose 關閉此句柄;當回呼傳回時,服務會關閉句柄。

如果 Action 參數是 EvtSubscribeActionError,請將 Event 轉換為 DWORD 以存取 Win32 錯誤碼。

傳回值

服務會忽略您傳回的傳回碼。

備註

此回呼會封鎖其他事件傳遞至回呼,因此請儘可能縮短實作。

如果服務在設定訂用帳戶時發生錯誤,您的回呼將不會收到發生錯誤的任何通知。

如果 EvtSubscribeFlags 參數包含 EvtSubscribeStrict,您的回呼會在事件記錄遺失時收到通知。 在此情況下, 事件 的值將會ERROR_EVT_QUERY_RESULT_STALE。

若要取消訂閱,您必須關閉 EvtSubscribe 函式傳回的訂用帳戶句柄。

範例

如需實作 EVT_SUBSCRIBE_CALLBACK 回呼函式的範例,請參閱 訂閱事件

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 winevt.h

另請參閱

EvtSubscribe