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