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 通知を使用してクリーンアップを実行できます。
コールアウト ドライバーは、
コールアウト ドライバーをアンロードする前に、FwpmBfeStateUnsubscribeChanges0 関数を呼び出すことによって、コールアウト ドライバーでコールバック関数の登録を解除する必要があります。
FwpmBfeStateSubscribeChanges0 は、FwpmBfeStateSubscribeChangesの特定のバージョンです。 詳細については、「WFP Version-Independent 名の と Windows の特定のバージョンを対象とする」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降で使用できます。 |
ターゲット プラットフォーム の |
万国 |
ヘッダー | fwpmk.h (Fwpmk.h を含む) |
ライブラリ | Fwpkclnt.lib |
IRQL | PASSIVE_LEVEL |