次の方法で共有


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 が含まれている場合、コールバックはイベント レコードが見つからないときに通知を受け取ります。 この場合、 Event の値はERROR_EVT_QUERY_RESULT_STALEされます。

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

コールバック関数EVT_SUBSCRIBE_CALLBACK実装する例については、「イベントのサブスクライブ」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winevt.h

こちらもご覧ください

EvtSubscribe