次の方法で共有


FWPS_CALLOUT_NOTIFY_FN2コールバック関数 (fwpsk.h)

フィルター エンジンは、吹き出しの notifyFn2 吹き出し関数を呼び出し、吹き出しに関連付けられているイベントについて吹き出しドライバーに通知します。

注意notifyFn2 は、Windows 8 以降で使用 notifyFn の特定のバージョンです。 詳細については、「WFP Version-Independent 名の と Windows の特定のバージョンを対象とする」を参照してください。 Windows 7 では、notifyFn1 を使用できます。 Windows Vista では、notifyFn0 を使用できます。

 

構文

FWPS_CALLOUT_NOTIFY_FN2 FwpsCalloutNotifyFn2;

NTSTATUS FwpsCalloutNotifyFn2(
  [in]      FWPS_CALLOUT_NOTIFY_TYPE notifyType,
  [in]      const GUID *filterKey,
  [in, out] FWPS_FILTER2 *filter
)
{...}

パラメーター

[in] notifyType

フィルター エンジンが吹き出しに送信する通知の種類を示す値。 このパラメーターの有効な値は次のとおりです。

FWPS_CALLOUT_NOTIFY_ADD_FILTER

フィルターのアクションの吹き出しを指定するフィルター エンジンにフィルターが追加されています。

FWPS_CALLOUT_NOTIFY_DELETE_FILTER

フィルターのアクションの吹き出しを指定するフィルター エンジンからフィルターが削除されています。

FWPS_CALLOUT_NOTIFY_TYPE_MAX

テスト目的の最大値。

[in] filterKey

フィルターを追加または削除するアプリケーションまたはドライバーによって指定された、フィルターの管理識別子へのポインター。 notifyType パラメーターが FWPS_CALLOUT_NOTIFY_DELETE_FILTER に設定されている場合は NULL にする必要があります。 詳細については、次の「解説」セクションを参照してください。

[in, out] filter

FWPS_FILTER2 構造体へのポインター。 この構造体は、フィルター エンジンに追加またはフィルター エンジンから削除されるフィルターを記述します。

引き出しドライバーの notifyFn2 関数は、フィルター がフィルター エンジンに追加されたときに、この構造体の コンテキスト メンバーを、引き出しドライバーが指定したコンテキスト構造を指すよう設定できます。 このコンテキスト構造はフィルター エンジンに対して不透明であり、引き出しドライバーの呼び出しエンジンによる呼び出し間のドライバー固有のデータまたは状態情報を保持するために、引き出しドライバーの 分類Fn2 吹き出し関数で使用できます。
classifyFn2 吹き出し関数を します。

吹き出しドライバーの notifyFn2 関数は、フィルター エンジンからフィルターが削除されたときに、フィルターに関連付けられている任意のコンテキストをクリーンアップできます。

戻り値

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

リターン コード 形容
STATUS_SUCCESS
吹き出しドライバーは、フィルター エンジンからの通知を受け入れます。
その他の状態コードの
エラーが発生しました。 notifyType パラメーターがFWPS_CALLOUT_NOTIFY_ADD_FILTERされている場合、フィルターはフィルター エンジンに追加されません。 notifyType パラメーターがFWPS_CALLOUT_NOTIFY_DELETE_FILTERされている場合でも、フィルター はフィルター エンジンから削除されます。

備考

コールアウト ドライバーは、FwpsCalloutRegister2 関数を呼び出すことによって、吹き出しの吹き出し関数をフィルター エンジンに登録します。

フィルター エンジンは、コールアウト ドライバーの notifyFn2 関数を呼び出して、コールアウトに関連付けられているイベントについてコールアウト ドライバーに通知します。 引き出しドライバーの notifyFn2 関数が、notifyType パラメーターで渡される通知の種類を認識しない場合は、通知を無視して、STATUS_SUCCESSを返す必要があります。

吹き出しドライバーがフィルター エンジンに追加されているフィルターの吹き出しを指定するフィルターが既にフィルター エンジンに追加された後に、フィルター エンジンに引き出し線を登録する場合、フィルター エンジンは、既存のフィルターについて吹き出しを通知する呼び出しドライバーの notifyFn2 関数を呼び出しません。 フィルター エンジンは、吹き出しドライバーの notifyFn2 関数を呼び出して、フィルターのアクションの吹き出しを指定する新しいフィルターがフィルター エンジンに追加されたときに吹き出しを通知します。 このような状況では、吹き出しの notifyFn2 関数は、フィルターのアクションの吹き出しを指定するフィルター エンジン内のすべてのフィルターに対して呼び出されない場合があります。 吹き出しドライバーがフィルター エンジンの起動後にコールアウトを登録し、引き出しは、フィルターのアクションの吹き出しを指定するフィルター エンジン内のすべてのフィルターを認識する必要がある場合、引き出しドライバーは、フィルター エンジン内のすべてのフィルターを列挙し、フィルターの結果の一覧を並べ替えて、フィルターのアクションの吹き出しを指定するものを検索する適切な管理機能を呼び出す必要があります。 これらの関数の呼び出しの詳細については、「他の Windows フィルタリング プラットフォーム関数の呼び出し」を参照してください。

フィルターのアクションの吹き出しを指定するフィルターがフィルター エンジンから削除されると、フィルター エンジンは引き出しドライバーの notifyFn2 関数を呼び出し、notifyType パラメーターにFWP_CALLOUT_NOTIFY_DELETE_FILTERを渡し、filterKey パラメーターに NULL を渡します。 詳細については、「通知コールアウトの処理」を参照してください。

この関数は、notifyFn1 以前のバージョンと基本的に同じです。 唯一の違いは、フィルター パラメーターによって指される更新された FWPS_FILTER2 構造体です。

必要条件

要件 価値
サポートされる最小クライアント Windows 8 以降で使用できます。
ターゲット プラットフォーム ウィンドウズ
ヘッダー fwpsk.h (Fwpsk.h を含む)
IRQL <= DISPATCH_LEVEL

関連項目

コールアウト ドライバーの吹き出し関数の

FWPS_FILTER2

FwpsCalloutRegister2

notifyFn する

notifyFn0 する

notifyFn1 する