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_CURRENT_MDL_OFFSET注意 C 和 C++ 编译器对这些宏使用不同的定义。 切换编译器时,无法使用宏可能会导致问题。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
标头 | ndis/nbl.h (包括 ndis.h) |