FwpmBfeStateSubscribeChanges0 関数 (fwpmk.h)

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

警告

コールバック パラメーター 渡したコールバック関数から 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
    );

文脈

コールアウト ドライバーが 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 コールバック関数が正常に登録されました。
その他の NTSTATUS コード エラーが発生しました。

備考

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

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

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

コールアウト ドライバーをアンロードする前に、FwpmBfeStateUnsubscribeChanges0 関数を呼び出すことによって、コールアウト ドライバーでコールバック関数の登録を解除する必要があります。

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降で使用できます。
ターゲット プラットフォーム の 万国
ヘッダー fwpmk.h (Fwpmk.h を含む)
ライブラリ Fwpkclnt.lib
IRQL PASSIVE_LEVEL

関連項目