NET_BUFFER_LIST_CONTEXT 结构 (ndis/nbl.h)
NET_BUFFER_LIST_CONTEXT 结构存储 NET_BUFFER_LIST 结构的上下文信息。
语法
typedef struct _NET_BUFFER_LIST_CONTEXT {
NET_BUFFER_LIST_CONTEXT *Next;
USHORT Size;
USHORT Offset;
UCHAR ContextData[];
} NET_BUFFER_LIST_CONTEXT, *PNET_BUFFER_LIST_CONTEXT;
成员
Next
指向NET_BUFFER_LIST_CONTEXT结构链接列表中的下一个NET_BUFFER_LIST_CONTEXT结构的指针。
Size
NET_BUFFER_LIST_CONTEXT结构中整个上下文空间(包括已用和未使用的上下文空间)的大小(以字节为单位)。
Offset
从上下文数据缓冲区的开头到NET_BUFFER_LIST_CONTEXT结构中上下文数据开始的偏移量(以字节为单位)。 Offset 成员还指定NET_BUFFER_LIST_CONTEXT结构中未使用的上下文空间的大小(以字节为单位)。
ContextData
上下文数据缓冲区。 上下文数据可以包含驱动程序所需的任何信息。
注解
每个 NET_BUFFER_LIST 结构都可以包括预分配NET_BUFFER_LIST_CONTEXT结构。 当NET_BUFFER_LIST结构在驱动程序堆栈中移动时,可以扩展NET_BUFFER_LIST_CONTEXT结构的链接列表,以适应每个驱动程序的额外数据空间。
驱动程序应使用以下 NDIS 宏和函数来访问和操作NET_BUFFER_LIST_CONTEXT结构中的成员:
- NdisAllocateNetBufferListContext
- NdisFreeNetBufferListContext
- NET_BUFFER_LIST_CONTEXT_DATA_START
- NET_BUFFER_LIST_CONTEXT_DATA_SIZE
NDIS 驱动程序调用 NdisAllocateNetBufferListContext 函数,用于在NET_BUFFER_LIST_CONTEXT结构中分配连续缓冲区空间。 如有必要,NDIS 会分配具有额外空间的新NET_BUFFER_LIST_CONTEXT结构以执行请求。 NDIS 驱动程序调用用于释放缓冲区空间的 NdisFreeNetBufferListContext 函数。
使用 NET_BUFFER_LIST_CONTEXT_DATA_SIZE 宏以获取已用上下文空间的大小。 使用 NET_BUFFER_LIST_CONTEXT_DATA_START 宏获取已用上下文空间的起始地址。
有关如何使用 net 缓冲区的详细信息,请参阅 NET_BUFFER 体系结构。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
标头 | ndis/nbl.h (包括 ndis.h) |