次の方法で共有


派生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 種類があります。

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

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

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

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