Win32 API 日本語リファレンス
ホーム › System.EventLog › EVT_SUBSCRIBE_CALLBACK

EVT_SUBSCRIBE_CALLBACK

コールバック

シグネチャ

DWORD EVT_SUBSCRIBE_CALLBACK(
    EVT_SUBSCRIBE_NOTIFY_ACTION Action,
    void* UserContext,
    EVT_HANDLE Event
);

パラメーター

フィールド型説明
ActionEVT_SUBSCRIBE_NOTIFY_ACTIONEvent パラメーターにイベントとエラーコードのどちらが格納されているかを示します。指定できる通知アクションの値については、EVT_SUBSCRIBE_NOTIFY_ACTION 列挙型を参照してください。
UserContextvoid*サブスクライバーが EvtSubscribe 関数に渡したコンテキストです。
EventEVT_HANDLE

イベントのハンドルです。このイベントハンドルは、コールバック関数の実行中のみ有効です。このハンドルは、イベントハンドルを受け取る任意のイベントログ関数(たとえば EvtRender や EvtFormatMessage)で使用できます。

このハンドルを閉じるために EvtClose を呼び出さないでください。コールバックから戻るときに、サービスがハンドルを閉じます。

Action パラメーターが EvtSubscribeActionError の場合は、Event を DWORD にキャストして Win32 エラーコードを取得します。

公式ドキュメント

クエリに一致するイベントを受け取るために EvtSubscribe 関数を呼び出す場合は、このコールバックを実装します。サービスは、クエリの条件に一致するイベントが発生したときにコールバックを呼び出します。

戻り値

サービスは、この関数が返す戻り値を無視します。

解説(Remarks)

このコールバックは、他のイベントがコールバックへ配信されるのを妨げます。そのため、実装はできるだけ短くしてください。

サブスクリプションの設定中にサービスがエラーを検出した場合、エラーが発生したことを示す通知はコールバックに届きません。

EvtSubscribe の Flags パラメーターに EvtSubscribeStrict が含まれている場合、イベントレコードが欠落したときにコールバックへ通知が届きます。この場合、Event の値は ERROR_EVT_QUERY_RESULT_STALE になります。

サブスクリプションを取り消すには、EvtSubscribe 関数が返すサブスクリプションハンドルを閉じる必要があります。

例

EVT_SUBSCRIBE_CALLBACK コールバック関数を実装する例については、Subscribing to Events を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)