NET_BUFFER_LIST_POOL_PARAMETERS 结构 (ndis/nblapi.h)
NET_BUFFER_LIST_POOL_PARAMETERS 结构定义NET_BUFFER_LIST结构池的参数。
语法
typedef struct _NET_BUFFER_LIST_POOL_PARAMETERS {
NDIS_OBJECT_HEADER Header;
UCHAR ProtocolId;
BOOLEAN fAllocateNetBuffer;
USHORT ContextSize;
ULONG PoolTag;
ULONG DataSize;
ULONG Flags;
} NET_BUFFER_LIST_POOL_PARAMETERS, *PNET_BUFFER_LIST_POOL_PARAMETERS;
成员
Header
NET_BUFFER_LIST_POOL_PARAMETERS 结构的类型、修订和大小。 此成员的格式设置为 NDIS_OBJECT_HEADER 结构。
微型端口驱动程序必须将 Header 的 Type 成员设置为 NDIS_OBJECT_TYPE_DEFAULT。 若要指定 NET_BUFFER_LIST_POOL_PARAMETERS 结构的版本,驱动程序必须将 Header 的 Revision 成员设置为以下值:
NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1
NDIS 6.0 的原始版本。
将 Size 成员设置为 NDIS_SIZEOF_NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1。
ProtocolId
调用方的类型。 微型端口、筛选器和中间驱动程序将此字段设置为零 (NDIS_PROTOCOL_ID_DEFAULT) 。 协议驱动程序使用以下值之一:
NDIS_PROTOCOL_ID_DEFAULT
指定默认协议驱动程序标识符。
NDIS_PROTOCOL_ID_TCP_IP
指定 TCP/IP 协议。
NDIS_PROTOCOL_ID_IPX
指定 IPX 协议。
NDIS_PROTOCOL_ID_NBF
指定 NetBEUI 协议。
fAllocateNetBuffer
如果此成员设置为 TRUE,则 NDIS 会分配 NET_BUFFER_LIST 结构的池。 每个分配 NET_BUFFER_LIST 结构都使用一个 NET_BUFFER 结构进行初始化。
如果此成员设置为 FALSE,则 NDIS 会分配 NET_BUFFER_LIST 结构的池。 每个分配 NET_BUFFER_LIST 结构未初始化为包含任何 NET_BUFFER 结构。
有关详细信息,请参见“备注”部分。
ContextSize
NDIS 应为此池中的NET_BUFFER_LIST结构提供预分配 NET_BUFFER_LIST_CONTEXT 结构数据的大小(以字节为单位)。 ContextSize 必须是MEMORY_ALLOCATION_ALIGNMENT定义的值的倍数。
PoolTag
调用方从此池分配NET_BUFFER_LIST结构时使用的内核池标记。 标记是一个字符串,由单引号分隔,最多包含四个字符,通常按反向顺序指定。 内核池标记可帮助 NDIS 识别从此池中分配 的NET_BUFFER_LIST 结构的所有者。
DataSize
与此 NET_BUFFER_LIST 池关联的数据缓冲区的默认数据大小(以字节为单位)。 NDIS 使用此值来设置它为任何关联的 NET_BUFFER 结构分配的任何数据缓冲区的大小。
有关详细信息,请参见“备注”部分。
Flags
定义了以下标志:
NET_BUFFER_LIST_POOL_FLAG_VERIFY 0x00000001
如果设置了此标志,NDIS 不会立即重复使用此池中的NET_BUFFER_LISTs。 相反,分配在释放时将标记为“无访问”,以便驱动程序可以检测释放后使用 bug。
注解
如果 fAllocateNetBuffer 设置为 FALSE,则 NDIS 不会分配 NET_BUFFER 结构, 并且 DataSize 应设置为零。
如果 DataSize 不为零,则必须将 fAllocateNetBuffer 设置为 TRUE。 这会导致 NDIS 使用指定大小的数据缓冲区分配 NET_BUFFER 结构。
如果 DataSize 为零且 fAllocateNetBuffer 为 TRUE,则 NDIS 将分配 NET_BUFFER 结构,但不会分配数据缓冲区。
NdisAllocateNetBufferListPool 函数的 Parameters 参数包含指向 NET_BUFFER_LIST_POOL_PARAMETERS 结构的指针。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
标头 | ndis/nblapi.h (包括 ndis.h) |