FwpsCalloutRegister1 関数 (fwpsk.h)
FwpsCalloutRegister1 関数は、吹き出しをフィルター エンジンに登録します。
構文
NTSTATUS FwpsCalloutRegister1(
[in, out] void *deviceObject,
[in] const FWPS_CALLOUT1 *callout,
[out, optional] UINT32 *calloutId
);
パラメーター
[in, out] deviceObject
吹き出しドライバーによって以前に作成されたデバイス オブジェクトへのポインター。 吹き出しドライバーがデバイス オブジェクトを作成する方法の詳細については、「 デバイス オブジェクトの作成」を参照してください。
[in] callout
フィルター エンジンに吹き出しを登録するために必要なデータを含む定数 FWPS_CALLOUT1 構造体へのポインター。
[out, optional] calloutId
フィルター エンジン内の吹き出しを識別する実行時識別子を受け取る UINT32 型の変数へのポインター。 吹き出しドライバーは、フィルター エンジンから吹き出しを登録解除するときに 、FwpsCalloutUnregisterById0 関数にこの識別子を渡します。 吹き出しドライバーがデータ フローをフィルター処理している場合は、この識別子も FwpsFlowAssociateContext0 および FwpsFlowRemoveContext0 関数に渡されます。 吹き出しドライバーは、データ ストリームにデータを挿入する場合も、 FwpsStreamInjectAsync0 関数にこの識別子を渡します。 フィルター エンジンは、吹き出しドライバーの flowDeleteFn 吹き出し関数にもこの識別子を渡します。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
FwpsCalloutRegister1 関数は、次のいずれかの NTSTATUS コードを返します。
リターン コード | 説明 |
---|---|
|
吹き出しがフィルター エンジンに正常に登録されました。 |
|
吹き出しをフィルター エンジンに登録できませんでした。 吹き出しは、吹き出しパラメーターが指すFWPS_CALLOUT1構造体の calloutKey メンバーで指定された GUID と同じ識別子を使用して、フィルター エンジンに既に登録されています。 |
|
エラーが発生しました。 |
解説
吹き出しドライバーは 、FwpsCalloutRegister1 関数を呼び出して、フィルター エンジンに吹き出しを登録します。 吹き出しドライバーは、フィルター エンジンが現在実行されていない場合でも、いつでもフィルター エンジンに吹き出しを登録できます。
吹き出しドライバーが吹き出しをフィルター エンジンに登録する前に、フィルター エンジンにフィルター のアクションの吹き出しを指定する吹き出しとフィルターを追加できます。 このような状況では、アクションの種類 がFWP_ACTION_CALLOUT_TERMINATING または FWP_ACTION_CALLOUT_UNKNOWN のフィルターは FWP_ACTION_BLOCKとして扱われ、吹き出しがフィルター エンジンに登録されるまで、アクションの種類 がFWP_ACTION_CALLOUT_INSPECTION のフィルターは無視されます。
吹き出しドライバーは、 を呼び出すことによって、フィルター エンジンから吹き出しの登録を解除します。 FwpsCalloutUnregisterById0 関数または FwpsCalloutUnregisterByKey0 関数。 以前にフィルター エンジンに登録されていたすべての吹き出しが正常に登録解除されるまで、引き出しドライバーをアンロードできません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | fwpsk.h (Fwpsk.h を含む) |
Library | Fwpkclnt.lib |
IRQL | PASSIVE_LEVEL |