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 及更高版本中受支持。
标头 ndis/nbl.h (include 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