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