FwpsCalloutRegister0 関数 (fwpsk.h)

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

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

構文

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

パラメーター

[in, out] deviceObject

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

[in] callout

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

[out, optional] calloutId

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

戻り値

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

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

解説

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

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

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

要件

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

こちらもご覧ください

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

FWPS_CALLOUT0

FwpsCalloutRegister1

FwpsCalloutRegister2

FwpsCalloutUnregisterById0

FwpsCalloutUnregisterByKey0

FwpsFlowAssociateContext0

FwpsFlowRemoveContext0

FwpsStreamInjectAsync0

IoCreateDevice

コールアウトの種類

flowDeleteFn