次の方法で共有


ネットワーク データ構造

ネットワーク データは、ネットワーク経由で送受信されるデータのパケットで構成されます。 NDIS は、このようなデータを記述および整理するためのデータ構造を提供します。 NDIS 6.0 以降のプライマリ ネットワーク データ構造は次のとおりです。

次の図は、これらの構造体間の関係を示しています。

NDIS 6.0 ネットワーク データ構造 (NET_BUFFER、NET_BUFFER_LIST、NET_BUFFER_LIST_CONTEXTなど) を示す図。

NDIS 6.0 以降では、 NET_BUFFER はネットワーク データをパッケージ化するための基本的な構成要素です。 各NET_BUFFER構造体には MDL チェーンがあります。 MDL は、データ バッファーのアドレスを、NET_BUFFER構造体が指定するデータ空間にマップします。 このデータ マッピングは、NDIS_PACKET 構造体で使用される NDIS 5.x およびそれ以前のドライバーによって使用される MDL チェーンと同じです。 NDIS には、MDL チェーンを操作する関数が用意されています。

NET_BUFFER_LIST構造体には、複数のNET_BUFFER構造体をアタッチできます。 NET_BUFFER構造体は、NULL で終わる 1 つのリンク リストとして編成されます。 NET_BUFFER_LIST構造体 (NDIS) を生成するドライバーのみが、リンク リストを直接変更して、NET_BUFFER構造体を挿入および削除する必要があります。

NET_BUFFER LIST 構造体には、リストに関連付けられているすべての NET_BUFFER 構造体を記述する情報が含まれています。 ドライバーがコンテキスト情報の追加の領域を必要とする場合、ドライバーは、このような情報をNET_BUFFER_LIST_CONTEXT構造体に格納できます。 NDIS は、割り当て、解放し、NET_BUFFER_LIST_CONTEXT構造体内のデータにアクセスする関数を提供します。

複数のNET_BUFFER_LIST構造体をアタッチして、NET_BUFFER_LIST構造体の一覧を形成できます。 NET_BUFFER_LIST構造体は、NULL で終わる 1 つのリンク リストとして編成されます。 ドライバーは、リンク リストを直接変更して、NET_BUFFER_LIST構造を挿入および削除できます。

NET_BUFFER

NET_BUFFER構造体

NET_BUFFER LIST

NET_BUFFER_LIST 構造体の

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_CONTEXT構造体