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 が含まれている場合、コールバックはイベント レコードが見つからないときに通知を受け取ります。 この場合、 Event の値はERROR_EVT_QUERY_RESULT_STALEされます。
サブスクリプションを取り消すには、 EvtSubscribe 関数が返すサブスクリプション ハンドルを閉じる必要があります。
例
コールバック関数EVT_SUBSCRIBE_CALLBACK実装する例については、「イベントのサブスクライブ」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winevt.h |