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

MDL 中由 CurrentMdl 成员指定的已用数据空间开头的偏移量(以字节为单位)。

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 (包括 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