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 (include ndis.h) |