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 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | fwpsk.h (Fwpsk.h を含む) |
ライブラリ | Fwpkclnt.lib |
IRQL | PASSIVE_LEVEL |
関連項目
FwpsCalloutUnregisterByKey0 を する
IoCreateDevice の
吹き出し の の種類
flowDeleteFn の