英語で読む

次の方法で共有


FwpsFlowAssociateContext0 関数 (fwpsk.h)

FwpsFlowAssociateContext0 関数は、コールアウト ドライバー定義コンテキストをデータ フローに関連付けます。

FwpsFlowAssociateContext0 は、FwpsFlowAssociateContextの特定のバージョンです。 詳細については、「WFP Version-Independent 名の と Windows の特定のバージョンを対象とする」を参照してください。
 

構文

NTSTATUS FwpsFlowAssociateContext0(
  [in] UINT64 flowId,
  [in] UINT16 layerId,
  [in] UINT32 calloutId,
  [in] UINT64 flowContext
);

パラメーター

[in] flowId

コンテキストを関連付けるデータ フローを指定するランタイム識別子。 データ フローの実行時識別子は、吹き出しドライバーの classifyFn 吹き出し関数に渡されたFWPS_METADATA_FIELD_FLOW_HANDLEメタデータ値を介して、引き出しドライバーに提供されます。

[in] layerId

コンテキストが関連付けられているフィルターレイヤーのランタイム識別子。 コンテキストは、指定されたフィルター レイヤーにのみ関連付けられます。 詳細については、「ランタイム フィルター レイヤー識別子」を参照してください。

[in] calloutId

フィルター エンジンの吹き出しの実行時識別子。 この識別子は、FwpsCalloutRegister0FwpsCalloutRegister1、または FwpsCalloutRegister2 関数を呼び出してフィルター エンジンにコールアウトを登録する 呼び出し線ドライバーが返されました。

[in] flowContext

データ フローに関連付ける引き出しドライバー定義コンテキスト。 このパラメーターは 0 にすることはできません。 このコンテキストは、フィルター エンジンに対して不透明です。

戻り値

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

リターン コード 形容
STATUS_SUCCESS
コンテキストがデータ フローに正常に関連付けられました。
STATUS_INVALID PARAMETER
flowContext パラメーターが NULL されているか、calloutID パラメーターで指定された吹き出しに、flowDeleteFn が登録されていません。
STATUS_OBJECT_NAME_EXISTS
コンテキストは既にデータ フローに関連付けられています。 この場合、コールアウト ドライバーは、最初に FwpsFlowRemoveContext0 関数を呼び出して既存のコンテキストを削除してから、FwpsFlowAssociateContext0 関数をもう一度呼び出して、新しいコンテキストをデータ フローに関連付ける必要があります。
その他の状態コードの
エラーが発生しました。

備考

データ フローをフィルター処理する場合、コールアウト ドライバーは、FwpsFlowAssociateContext0 関数を呼び出して、コンテキストをデータ フローに関連付けることができます。 その後、このコンテキストを使用して、フィルター エンジンによる呼び出し間のドライバー固有のデータまたは状態情報を、そのデータ フローの吹き出しの classifyFn 吹き出し関数に保持できます。

flowDeleteFn 吹き出し関数を登録した、layerId パラメーターによって識別されるレイヤーに、フィルター エンジンに引き出しが必要です。 それ以外の場合、FwpsFlowAssociateContext0 関数の呼び出しはSTATUS_INVALID_PARAMETERを返します。 フィルター エンジンは、フローが終了したときに flowDeleteFn 吹き出し関数を し、吹き出しドライバーがフローに関連付けられているコンテキストをクリーンアップできるようにします。

同じフロー FwpsFlowAssociateContext0 複数回呼び出すことができます。 呼び出しごとに、異なる吹き出しと異なるコンテキスト (追加された吹き出しごとに 1 つのコンテキスト) を指定する必要があります。

FwpsFlowAssociateContext0 関数は、1 つのコンテキストを 1 つの追加された吹き出しに関連付けます。

複数のコンテキストをフローに関連付けることができます。 ただし、各コンテキストは異なる吹き出しに関連付ける必要があります。 新しい吹き出しは、前の吹き出しと同じレイヤーに配置することも、別のレイヤーに配置することもできます。

詳細とサンプル コードについては、「コンテキストとデータ フロー の関連付け」および「Windows フィルタリング プラットフォームのサンプル」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー fwpsk.h (Fwpsk.h を含む)
ライブラリ Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

関連項目

コンテキストとデータ フロー の関連付けを する

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsCalloutRegister2

FwpsFlowRemoveContext0

Windows フィルター プラットフォームのサンプル

classifyFn

flowDeleteFn