次の方法で共有


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

吹き出しフィルターが一致したときに分類中に呼び出される関数のバージョン 3。 違いは、このコールバックが FWPS_FILTER3 構造体を返す点です。

構文

FWPS_CALLOUT_NOTIFY_FN3 FwpsCalloutNotifyFn3;

NTSTATUS FwpsCalloutNotifyFn3(
  FWPS_CALLOUT_NOTIFY_TYPE notifyType,
  const GUID *filterKey,
  FWPS_FILTER3 *filter
)
{...}

パラメーター

notifyType

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

  • FWPS_CALLOUT_NOTIFY_ADD_FILTER: フィルターのアクションの吹き出しを指定するフィルター エンジンにフィルターが追加されています。
  • FWPS_CALLOUT_NOTIFY_DELETE_FILTER: フィルターのアクションの吹き出しを指定するフィルター エンジンからフィルターが削除されています。
  • FWPS_CALLOUT_NOTIFY_TYPE_MAX: テスト目的の最大値。

filterKey

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

filter

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

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

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

戻り値

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

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

備考

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

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

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降で使用できます。
ヘッダー fwpsk.h
IRQL <= DISPATCH_LEVEL

関連項目