FwpsReassembleForwardFragmentGroup0 関数 (fwpsk.h)
FwpsReassembleForwardFragmentGroup0 関数は、転送データ パス内の IP フラグメントの一覧を 1 つのパケットにアセンブルします。
構文
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 コードを返します。
リターン コード | 説明 |
---|---|
|
IP フラグメントの一覧は、1 つの NET_BUFFER_LIST 構造に正常に再構築されました。 |
|
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 |
こちらもご覧ください
NET_BUFFER_LIST_POOL_PARAMETERS
NdisAllocateNetBufferListPool