派生 NET_BUFFER_LIST 構造

NDIS は、ドライバーが他の NET_BUFFER_LIST 構造体から派生した NET_BUFFER_LIST 構造体を管理するために使用できる関数を提供します。 通常、これらの関数は中間ドライバーで使用されます。

次の NDIS 関数は、既存の NET_BUFFER_LIST 構造体から派生 NET_BUFFER_LIST 構造体を作成できます。

NdisAllocateCloneNetBufferList

NdisAllocateFragmentNetBufferList

NdisAllocateReassembledNetBufferList

NDIS は、ネットワーク データをコピーせずに派生構造体を作成するため、これらの関数は、システムのパフォーマンスを向上させます。 既存の NET_BUFFER_LIST 構造体から派生できる NET_BUFFER_LIST 構造体には、次の 3 種類があります。

複製
クローン化された NET_BUFFER_LIST 構造体は、元のデータを参照する複製です。 ドライバーは、この種類の構造を使用して、同じデータを複数のパスに効率的に転送できます。

Fragment
フラグメント NET_BUFFER_LIST 構造体には、元のデータを参照する一連の NET_BUFFER 構造体が含まれていますが、データは最大サイズを超えない単位に分割されます。 ドライバーは、この種類の構造体を使用して、大きなバッファーをより小さなバッファーに効率的に分割できます。

再構築済み
再構築された NET_BUFFER_LIST 構造体には、複数のソース NET_BUFFER 構造体から元のデータを参照する NET_BUFFER 構造体が含まれています。 ドライバーは、この種類の構造体を使用して、多数の小さなバッファーを 1 つの大きなバッファーに効率的に結合できます。

次のトピックでは、派生 NET_BUFFER_LIST 構造体の詳細について説明します。