FWPS_CALLOUT_NOTIFY_FN0 コールバック関数 (fwpsk.h)
フィルター エンジンは、吹き出しの notifyFn0 吹き出し関数を呼び出して、吹き出しに関連付けられているイベントについてコールアウト ドライバーに通知します。
構文
FWPS_CALLOUT_NOTIFY_FN0 FwpsCalloutNotifyFn0;
NTSTATUS FwpsCalloutNotifyFn0(
[in] FWPS_CALLOUT_NOTIFY_TYPE notifyType,
[in] const GUID *filterKey,
[in] FWPS_FILTER0 *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] filter
FWPS_FILTER0構造体へのポインター。 この構造体は、フィルター エンジンに追加または削除されるフィルターについて説明します。
吹き出しの notifyFn0 吹き出し関数は、フィルターがフィルター エンジンに追加されるときに、この構造体の Context メンバーが引き出しドライバーから提供されるコンテキスト構造を指すよう設定できます。 このコンテキスト構造はフィルター エンジンに対して不透明であり、引き出しドライバーの classifyFn0 吹き出し関数で使用して、フィルター エンジンによる呼び出しと引き出しドライバーの呼び出しの間でドライバー固有のデータまたは状態情報を保持できます。
classifyFn0 吹き出し関数。
吹き出しの notifyFn0 吹き出し関数は、フィルター エンジンからフィルターが削除されたときに、フィルターに関連付けられている任意のコンテキストをクリーンできます。
戻り値
吹き出しの notifyFn0 関数は、次のいずれかの NTSTATUS コードを返します。
リターン コード | 説明 |
---|---|
|
吹き出しドライバーは、フィルター エンジンからの通知を受け入れます。 |
|
エラーが発生しました。 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 を渡します。 詳細については、「 通知コールアウトの処理」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降で使用できます。 |
対象プラットフォーム | Windows |
ヘッダー | fwpsk.h (Fwpsk.h を含む) |
IRQL | <= DISPATCH_LEVEL |