次の方法で共有


NET_BUFFER_DATA 構造体 (ndis/nbl.h)

NET_BUFFER_DATA構造体には、NET_BUFFER構造体にアタッチされているデータ バッファーを管理するための情報が含まれており、NET_BUFFER構造体の一覧で次の NET_BUFFER 構造体が識別されます。

構文

typedef struct _NET_BUFFER_DATA {
  NET_BUFFER             *Next;
  MDL                    *CurrentMdl;
  ULONG                  CurrentMdlOffset;
  NET_BUFFER_DATA_LENGTH NbDataLength;
  MDL                    *MdlChain;
  ULONG                  DataOffset;
} NET_BUFFER_DATA, *PNET_BUFFER_DATA;

メンバー

Next

NET_BUFFER構造体のリンクされたリスト内の次のNET_BUFFER構造体へのポインター。 この構造体がリスト内の最後のNET_BUFFER構造体である場合、このメンバーは NULL です

CurrentMdl

現在のドライバーが使用している最初の MDL へのポインター。 このメンバーは、現在のドライバーが使用していないすべての MDL をスキップすることでパフォーマンスを向上させる最適化を提供します。

CurrentMdlOffset

CurrentMdl メンバーによって指定された MDL 内の使用されるデータ空間の先頭までのオフセット (バイト単位)。

NbDataLength

MDL チェーンで使用されるデータ空間の長さ (バイト単位)。 最大長は0xFFFFFFFFバイトです。

MdlChain

データ バッファーをマップする MDL のリンクされたリストへのポインター。 データ バッファーには、ネットワーク データが格納されます。

DataOffset

MDL チェーンの先頭から MDL チェーン内のネットワーク データの先頭までのオフセット (バイト単位)。 このオフセットは、 未使用のデータ空間のサイズ (バイト単位) でもあります。

注釈

NET_BUFFER_HEADER構造体には、NET_BUFFER構造体のデータを定義するNET_BUFFER_DATA構造体がまれています。 NET_BUFFER_DATAのメンバーにアクセスするには、 NdisRetreatNetBufferDataStart NdisAdvanceNetBufferDataStart 関数と次のマクロ:

NET_BUFFER_NEXT_NB

NET_BUFFER_FIRST_MDL

NET_BUFFER_DATA_OFFSET

NET_BUFFER_DATA_LENGTH

NET_BUFFER_CURRENT_MDL

NET_BUFFER_CURRENT_MDL_OFFSET
メモ C および C++ コンパイラでは、これらのマクロに異なる定義が使用されます。 マクロを使用しないと、コンパイラの切り替え時に問題が発生する可能性があります。
 

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
Header ndis/nbl.h (ndis.h を含む)

こちらもご覧ください

NET_BUFFER

NET_BUFFER_CURRENT_MDL

NET_BUFFER_CURRENT_MDL_OFFSET

NET_BUFFER_DATA_LENGTH

NET_BUFFER_DATA_OFFSET

NET_BUFFER_FIRST_MDL

NET_BUFFER_HEADER

NET_BUFFER_NEXT_NB

NdisAdvanceNetBufferDataStart NdisRetreatNetBufferDataStart