FwpsReassembleForwardFragmentGroup0 関数 (fwpsk.h)

FwpsReassembleForwardFragmentGroup0 関数は、転送データ パス内の IP フラグメントの一覧を 1 つのパケットにアセンブルします。

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

構文

NTSTATUS FwpsReassembleForwardFragmentGroup0(
  [in]           ADDRESS_FAMILY  addressFamily,
  [in, out]      NET_BUFFER_LIST *fragmentGroupNblChain,
  [in, optional] NDIS_HANDLE     netBufferAndNetBufferListPoolHandle,
  [in]           ULONG           dataBackFill,
  [in]           ULONG           flags,
  [out]          NET_BUFFER_LIST **reassembledNbl
);

パラメーター

[in] addressFamily

次のいずれかのアドレス ファミリ:

AF_INET

IPv4 アドレス ファミリ。

AF_INET6

IPv6 アドレス ファミリ。

[in, out] fragmentGroupNblChain

1 つのパケットに再アセンブルする IP フラグメントの NET_BUFFER_LIST チェーンへのポインター。 このパラメーターの使用方法の詳細については、「解説」を参照してください。

[in, optional] netBufferAndNetBufferListPoolHandle

から以前 返された省略可能なNET_BUFFER_LIST構造体プール ハンドル NdisAllocateNetBufferListPool 関数。 呼び出し元が NdisAllocateNetBufferListPool に渡した NET_BUFFER_LIST_POOL_PARAMETERS 構造体の fAllocateNetBuffer メンバーは TRUE に設定され、 DataSize メンバーは 0 に設定されている必要があります。 このパラメーターが NULL の場合、NDIS は内部プールを使用します。

[in] dataBackFill

未使用のデータ領域 (バックフィル領域) の割り当てが必要な場合、このパラメーターは割り当てる未使用のデータ領域のバイト数を指定します。

[in] flags

予約済み。 コールアウト ドライバーでは、このパラメーターを 0 に設定する必要があります。

[out] reassembledNbl

再構築された単一ネットワーク バッファー リストのアドレスを受け取る NET_BUFFER_LIST ポインターへの ポインター。

戻り値

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

リターン コード 説明
STATUS_SUCCESS
IP フラグメントの一覧は、1 つの NET_BUFFER_LIST 構造に正常に再構築されました。
STATUS_FWP_TCPIP_NOT_READY
TCP/IP ネットワーク スタックは、パケット再構築を実行する準備ができていません。 このエラーは、Tcpip.sys が読み込まれる前、または Tcpip.sys がアンロードされた後にこの関数が呼び出された場合に発生する可能性があります。
その他の状態コード
エラーが発生しました。

解説

FwpsReassembleForwardFragmentGroup0 関数は、NET_BUFFER_LIST チェーンによって記述された転送データ パス内の IP フラグメントの一覧を 1 つのパケットにアセンブルします。 再構成されたパケットは、1 つのネット バッファーを含み、入力フラグメント チェーンを参照する単一のネット バッファー リストです。 この関数は通常、ネットワーク パケットを検査するためにエッジ ファイアウォールによって使用されます。

IP フラグメントの入力チェーン fragmentGroupNblChain は、FWP_CONDITION_FLAG_IS_FRAGMENT_GROUP フラグが設定されている場合に、FWPS_LAYER_IPFORWARD_V4または FWPS_LAYER_IPFORWARD_V6 レイヤーへの classifyFn 吹き出し関数によって示されるチェーンである必要があります。 そうでない場合、 FwpsReassembleForwardFragmentGroup0 の動作は未定義です。

FwpsFreeNetBufferList0 関数を呼び出して、reassembledNbl NET_BUFFER_LIST 構造体と、関連付けられているすべてのNET_BUFFER構造体と MDL チェーンを解放します。 FwpsFreeNetBufferList0 は、元の入力フラグメント チェーンを逆参照します。

次のコマンドを使用して、システムの現在の "グループ転送フラグメント" 設定を表示できます。 netsh インターフェイス {ipv4|ipv6} show global

FwpsReassembleForwardFragmentGroup0 は入力フラグメント チェーンを参照するため、この関数を呼び出す前に、吹き出しでチェーンを参照または複製する必要はありません。

要件

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

こちらもご覧ください

FwpsFreeNetBufferList0

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferListPool

classifyFn