フィルター エンジンは、吹き出しの notifyFn0 吹き出し関数を呼び出して、引き出し線に関連付けられているイベントについて吹き出しドライバーに通知します。
注意
notifyFn0 は、Windows Vista 以降で使用される notifyFn の特定のバージョンです。 詳細については、「 WFP のバージョンに依存しない名前」および「特定のバージョンの Windows を対象とする」を参照してください。 Windows 8 の場合、 notifyFn2 を使用できます。 Windows 7 の場合、 notifyFn1 を使用できます。
構文
FWPS_CALLOUT_NOTIFY_FN0 FwpsCalloutNotifyFn0;
NTSTATUS FwpsCalloutNotifyFn0(
FWPS_CALLOUT_NOTIFY_TYPE notifyType,
const GUID *filterKey,
FWPS_FILTER0 *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_FILTER0構造体へのポインター。 この構造体は、フィルター エンジンに追加または削除されるフィルターを表します。
吹き出しの notifyFn0 吹き出し関数は、フィルターがフィルター エンジンに追加されたときに、この構造体の コンテキスト メンバーを、引き出しドライバーが指定したコンテキスト構造を指すよう設定できます。 このコンテキスト構造はフィルター エンジンに対して不透明であり、引き出し線ドライバーの classifyFn0 吹き出し関数で使用して、フィルター エンジンによる呼び出し間のドライバー固有のデータまたは状態情報を引き出しドライバーの classifyFn0 吹き出し関数に保持できます。
吹き出しの notifyFn0 吹き出し関数は、フィルター エンジンからフィルターが削除されたときに、フィルターに関連付けられている任意のコンテキストをクリーンアップできます。
戻り値
吹き出しの notifyFn0 関数は、次の NTSTATUS コードのいずれかを返します。
リターン コード | 説明 |
---|---|
STATUS_SUCCESS | 吹き出しドライバーは、フィルター エンジンからの通知を受け入れます。 |
その他の状態コード | エラーが発生しました。 notifyType パラメーターがFWPS_CALLOUT_NOTIFY_ADD_FILTER場合、フィルターはフィルター エンジンに追加されません。 notifyType パラメーターがFWPS_CALLOUT_NOTIFY_DELETE_FILTER場合でも、フィルター はフィルター エンジンから削除されます。 |
注釈
吹き出しドライバーは、 FwpsCalloutRegister0 関数を呼び出すことによって、吹き出しの吹き出し関数をフィルター エンジンに登録します。
フィルター エンジンは、吹き出しの notifyFn0 吹き出し関数を呼び出して、引き出し線に関連付けられているイベントについて吹き出しドライバーに通知します。 吹き出しドライバーの notifyFn0 吹き出し関数が notifyType パラメーターで渡される通知の種類を認識しない場合、通知は無視され、 STATUS_SUCCESSが返されます。
フィルターのアクションの吹き出しを指定するフィルターが既にフィルター エンジンに追加された後に、引き出し線ドライバーがフィルター エンジンに引き出し線を登録した場合、フィルター エンジンは引き出しドライバーの notifyFn0 吹き出し関数を呼び出して、既存のフィルターについて吹き出しを通知しません。 フィルター エンジンは、吹き出しドライバーの notifyFn0 吹き出し関数を呼び出して、フィルターのアクションの引き出し線を指定する新しいフィルターがフィルター エンジンに追加されたときに吹き出しを通知します。 このような場合、吹き出しの notifyFn0 吹き出し関数は、フィルターのアクションの吹き出しを指定するフィルター エンジン内のすべてのフィルターに対して呼び出されない場合があります。 吹き出しドライバーがフィルター エンジンの起動後に吹き出しを登録し、フィルターのアクションの吹き出しを指定するフィルター エンジン内のすべてのフィルターについて引き出し線を認識する必要がある場合、吹き出しドライバーは、フィルター エンジン内のすべてのフィルターを列挙し、フィルターのアクションの吹き出しを指定するフィルターの結果の一覧を並べ替えるために、適切な管理機能を呼び出す必要があります。 これらの 関数の呼び出しの詳細については、「他の Windows フィルター プラットフォーム関数 の呼び出し」を参照してください。
フィルターのアクションの吹き出しを指定するフィルターがフィルター エンジンから削除されると、フィルター エンジンは引き出しドライバーの notifyFn0 吹き出し関数を呼び出し、notifyType パラメーターにFWP_CALLOUT_NOTIFY_DELETE_FILTERを渡し、filterKey パラメーターに NULL を 渡します。 詳細については、「 通知コールアウトの処理」を参照してください。
要件
要件 | 値 |
---|---|
Header | fwpsu.h |