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 つの追加された吹き出しに関連付けます。

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

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

要件

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

こちらもご覧ください

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

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsCalloutRegister2

FwpsFlowRemoveContext0

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

classifyFn

flowDeleteFn