FwpmBfeStateSubscribeChanges0 関数 (fwpmk.h)

FwpmBfeStateSubscribeChanges0 関数は、フィルター エンジンの状態が変更されるたびに呼び出されるコールバック関数を登録します。

メモFwpmBfeStateSubscribeChanges0 は、 FwpmBfeStateSubscribeChanges の特定のバージョンです。 詳細については、「 WFP Version-Independent 名と特定のバージョンの Windows を対象 とする」を参照してください。
 

警告

コールバック パラメーターで渡したコールバック関数から FwpmBfeStateUnsubscribeChanges0 を呼び出さないでください。 これを行うと、デッドロックが発生する可能性があります。

構文

NTSTATUS FwpmBfeStateSubscribeChanges0(
  [in, out]      void                                *deviceObject,
  [in]           FWPM_SERVICE_STATE_CHANGE_CALLBACK0 callback,
  [in, optional] void                                *context,
  [out]          HANDLE                              *changeHandle
);

パラメーター

[in, out] deviceObject

吹き出しドライバーによって以前に作成されたデバイス オブジェクトへのポインター。 吹き出しドライバーがデバイス オブジェクトを作成する方法の詳細については、「 デバイス オブジェクトの作成」を参照してください。

[in] callback

コールアウト ドライバーによって提供されるサービス状態変更コールバック関数へのポインター。 フィルター エンジンは、フィルター エンジンの状態が変化するたびに、この関数を呼び出します。

サービス状態変更コールバック関数は、次のように宣言されます。

VOID NTAPI
callback(
    IN OUT void  *context,
    IN FWPM_SERVICE_STATE  newState
    );

Context

引き出しドライバーが FwpmBfeStateSubscribeChanges0 関数を呼び出したときに Context パラメーターで渡されたポインター。

newState

フィルター エンジンの新しい状態。 このパラメーターには、次のいずれかの値が含まれています。

FWPM_SERVICE_STOPPED

フィルター エンジンが実行されていません。

FWPM_SERVICE_START_PENDING

フィルター エンジンが起動しています。

FWPM_SERVICE_STOP_PENDING

フィルター エンジンが停止しています。

FWPM_SERVICE_RUNNING

フィルター エンジンが実行されています。

[in, optional] context

Callback パラメーターで指定されたコールバック関数に渡される、引き出しドライバーによって提供されるコンテキストへのポインター。

[out] changeHandle

コールバック関数の登録に関連付けられているハンドルを受け取る変数へのポインター。 コールアウト ドライバーは、このハンドルを FwpmBfeStateUnsubscribeChanges0 関数に渡して、コールバック関数を登録解除します。

戻り値

FwpmBfeStateSubscribeChanges0 関数は、次のいずれかの NTSTATUS コードを返します。

リターン コード 説明
STATUS_SUCCESS
コールバック関数が正常に登録されました。
その他の状態コード
エラーが発生しました。

解説

コールアウト ドライバーは 、FwpmBfeStateSubscribeChanges0 関数を呼び出して、フィルター エンジンの状態が変更されるたびに呼び出されるコールバック関数を登録します。

たとえば、吹き出しドライバーは、フィルター エンジンが現在実行されていない限り 、FwpmEngineOpen0 関数を呼び出してフィルター エンジンへのセッションを開くことができません。 コールアウト ドライバーでは、 FWPM_SERVICE_RUNNING 通知を使用してフィルター エンジンへのセッションを開き、他の Windows フィルター プラットフォーム管理機能を呼び出すことができます。 同様に、吹き出しドライバーは 、フィルター エンジンが停止する前に、FWPM_SERVICE_STOP_PENDING通知を使用してクリーンアップを実行できます。

コールアウト ドライバーは 、FwpmBfeStateGet0 関数を呼び出してフィルター エンジンの現在の状態を取得する前に 、FwpmBfeStateSubscribeChanges0 を呼び出す必要があります。 FwpmBfeStateSubscribeChanges0 の呼び出しが戻った後、引き出し線ドライバーは FwpmBfeStateGet0 をいつでも呼び出すことができます。

コールアウト ドライバーは、 を呼び出してコールバック関数の登録を解除する必要があります。引き出しドライバーをアンロードする前の FwpmBfeStateUnsubscribeChanges0 関数。

要件

要件
サポートされている最小のクライアント Windows Vista 以降で使用できます。
対象プラットフォーム ユニバーサル
Header fwpmk.h (Fwpmk.h を含む)
Library Fwpkclnt.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

FwpmBfeStateGet0

FwpmBfeStateUnsubscribeChanges0

FwpmEngineOpen0