次の方法で共有


FwpsCalloutRegister2 関数 (fwpsk.h)

FwpsCalloutRegister2 関数は、吹き出しをフィルター エンジンに登録します。

FwpsCalloutRegister2 は、Windows 8 以降で使用される FwpsCalloutRegister の特定のバージョンです。 詳細については、「 WFP Version-Independent 名と特定のバージョンの Windows を対象 とする」を参照してください。 Windows 7 の場合、 FwpsCalloutRegister1 を使用できます。 Windows Vista の場合、 FwpsCalloutRegister0 を使用できます。

 

構文

NTSTATUS FwpsCalloutRegister2(
  [in, out]       void                *deviceObject,
  [in]            const FWPS_CALLOUT2 *callout,
  [out, optional] UINT32              *calloutId
);

パラメーター

[in, out] deviceObject

吹き出しドライバーによって以前に作成されたデバイス オブジェクトへのポインター。 コールアウト ドライバーがデバイス オブジェクトを作成する方法の詳細については、「 デバイス オブジェクトの作成」を参照してください。

[in] callout

吹き出しをフィルター エンジンに登録するために必要なデータを含む定数 FWPS_CALLOUT2 構造体へのポインター。

[out, optional] calloutId

フィルター エンジンの吹き出しを識別するランタイム識別子を受け取る UINT32 型の変数へのポインター。 吹き出しドライバーは、フィルター エンジンから吹き出しの登録を解除するときに 、FwpsCalloutUnregisterById0 関数にこの識別子を渡します。 コールアウト ドライバーがデータ フローをフィルター処理している場合は、この識別子も FwpsFlowAssociateContext0 関数と FwpsFlowRemoveContext0 関数に渡されます。 コールアウト ドライバーがデータ ストリームにデータを挿入する場合、この識別子も FwpsStreamInjectAsync0 関数に渡されます。 フィルター エンジンは、コールアウト ドライバーの flowDeleteFn 吹き出し関数にもこの識別子を渡します。 このパラメーターは省略可能であり、NULL にすることができます。

戻り値

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

リターン コード 説明
STATUS_SUCCESS
吹き出しがフィルター エンジンに正常に登録されました。
STATUS_FWP_ALREADY_EXISTS
吹き出しをフィルター エンジンに登録できませんでした。 吹き出しは、き出しパラメーターが指すFWPS_CALLOUT2構造体の calloutKey メンバーで指定された GUID と同じ識別子を使用して、フィルター エンジンに既に登録されています。
その他の状態コード
エラーが発生しました。

解説

吹き出しドライバーは 、FwpsCalloutRegister2 関数を呼び出して、フィルター エンジンに吹き出しを登録します。 吹き出しドライバーは、フィルター エンジンが現在実行されていない場合でも、いつでもフィルター エンジンに吹き出しを登録できます。

吹き出しドライバーが吹き出しをフィルター エンジンに登録する前に、フィルターのアクションの吹き出しを指定する吹き出しとフィルターをフィルター エンジンに追加できます。 この状況では、アクションの種類 がFWP_ACTION_CALLOUT_TERMINATING または FWP_ACTION_CALLOUT_UNKNOWN のフィルターは FWP_ACTION_BLOCKとして扱われ、 FWP_ACTION_CALLOUT_INSPECTIONのアクション の種類を持つフィルターは、吹き出しがフィルター エンジンに登録されるまで無視されます。

コールアウト ドライバーは、 を呼び出すことによって、フィルター エンジンから吹き出しの登録を解除します。 FwpsCalloutUnregisterById0 関数または FwpsCalloutUnregisterByKey0 関数。 以前にフィルター エンジンに登録されていたすべての吹き出しが正常に登録解除されるまで、引き出しドライバーをアンロードすることはできません。

この関数は、基本的に以前のバージョン の FwpsCalloutRegister1 と同じです。 唯一の違いは、吹き出しパラメーターによって指FWPS_CALLOUT2更新された構造体です。

要件

要件
サポートされている最小のクライアント Windows 8 以降で使用できます。
対象プラットフォーム ユニバーサル
Header fwpsk.h (Fwpsk.h を含む)
Library Fwpkclnt.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

デバイス オブジェクトの作成

FWPS_CALLOUT2

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsCalloutUnregisterById0

FwpsCalloutUnregisterByKey0

FwpsFlowAssociateContext0

FwpsFlowRemoveContext0

FwpsStreamInjectAsync0

IoCreateDevice

コールアウトの種類

flowDeleteFn