NDIS 6.0 でデータ パッケージが再設計されました。 NDIS_PACKET 構造に基づく送受信アーキテクチャは、NET_BUFFER および NET_BUFFER_LIST 構造体に基づくアーキテクチャに置き換えられました。 NET_BUFFER構造体は、NDIS_PACKET構造体と同等の機能です。 NET_BUFFER構造体は、ネットワーク データのバッファー (MDL チェーン) と NDIS、プロトコル ドライバー、ミニポート ドライバーの予約領域を指定します。 NET_BUFFER構造体は、NET_BUFFER_LIST構造体によって記述されたリスト内でリンクできます。 NET_BUFFER_LIST構造体は、リスト内のすべてのNET_BUFFER構造に適用される帯域外 (OOB) データのストレージも提供します。
TCP/IP トランスポートや Winsock を含む、Microsoft 次世代ネットワーク ドライバー スタックのすべてのコンポーネントは、NET_BUFFERデータ パッケージを使用します。 ドライバー スタック全体で均一なデータ パッケージ化を行うと、データを再パッケージ化する必要がなくなり、データ処理が簡略化され、関数呼び出しの数が減ります。
NDIS_PACKET構造体を使用する古いドライバーに対応するために、NDIS 6.0 はNDIS_PACKET構造体をNET_BUFFER構造体に変換します。その逆も同様です。 この変換は NDIS ドライバーに対して透過的です。
NDIS は、ドライバーのデータ バックフィル要件を上位レベルのドライバーに伝達します。 送信データにNET_BUFFERおよびNET_BUFFER_LIST構造体を割り当てるときに、上位レベルのドライバーは、スタック内のすべての下位レベルのドライバーを収容するのに十分なデータ領域を割り当てます。 その結果、下位レベルのドライバーは、レイヤー固有のヘッダーに対応するために追加のバッファー領域を割り当てる必要はありません。 代わりに、事前に割り当てられたバックフィル領域をこの目的に使用できます。
NET_BUFFER アーキテクチャの詳細については、「NET_BUFFER アーキテクチャの」を参照してください。