FwpsFlowAssociateContext0 関数 (fwpsk.h)
FwpsFlowAssociateContext0 関数は、コールアウト ドライバー定義コンテキストをデータ フローに関連付けます。
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
フィルター エンジンの吹き出しの実行時識別子。 この識別子は、FwpsCalloutRegister0、FwpsCalloutRegister1、または FwpsCalloutRegister2 関数を呼び出してフィルター エンジンにコールアウトを登録する 呼び出し線ドライバーが返されました。
[in] flowContext
データ フローに関連付ける引き出しドライバー定義コンテキスト。 このパラメーターは 0 にすることはできません。 このコンテキストは、フィルター エンジンに対して不透明です。
FwpsFlowAssociateContext0 関数は、次のいずれかの NTSTATUS コードを返します。
リターン コード | 形容 |
---|---|
|
コンテキストがデータ フローに正常に関連付けられました。 |
|
flowContext パラメーターが NULL されているか、calloutID パラメーターで指定された吹き出しに、flowDeleteFn が登録されていません。 |
|
コンテキストは既にデータ フローに関連付けられています。 この場合、コールアウト ドライバーは、最初に 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 |
コンテキストとデータ フロー の関連付けを する
flowDeleteFn の