NdisAllocateNetBufferList 函数 (ndis/nblapi.h)

调用 NdisAllocateNetBufferList 函数以从 NET_BUFFER_LIST 结构池中分配和初始化NET_BUFFER_LIST结构。

语法

NDIS_EXPORTED_ROUTINE NET_BUFFER_LIST * NdisAllocateNetBufferList(
  [in] NDIS_HANDLE PoolHandle,
  [in] USHORT      ContextSize,
  [in] USHORT      ContextBackFill
);

参数

[in] PoolHandle

以前从调用返回的NET_BUFFER_LIST结构池句柄 NdisAllocateNetBufferListPool

[in] ContextSize

要为调用方保留的NET_BUFFER_LIST_CONTEXT结构中已用数据空间量。 ContextSize 必须是MEMORY_ALLOCATION_ALIGNMENT定义的值的倍数。

[in] ContextBackFill

调用方所需的) (回填空间 (未使用的数据 空间量。 NDIS 将此值添加到 ContextSize 并分配额外的空间。 ContextBackFill 必须是MEMORY_ALLOCATION_ALIGNMENT定义的值的倍数。

返回值

NdisAllocateNetBufferList 返回指向已分配NET_BUFFER_LIST结构的指针。 如果分配失败,则此指针为 NULL

注解

可以调用 NdisAllocateNetBufferList NdisAllocateNetBufferAndNetBufferList 函数,用于从池中分配 NET_BUFFER_LIST 结构。

注意必须 从 NDIS 缓冲池分配NET_BUFFER和 NET_BUFFER_LIST 结构。 驱动程序不得从其专用内存池或堆栈分配和初始化NET_BUFFER_LIST或NET_BUFFER结构。
 
如果调用 NdisAllocateNetBufferList ,并且NET_BUFFER_LIST结构池是通过调用 分配的NET_BUFFER_LIST_POOL_PARAMETERS 结构的fAllocateNetBuffer 成员设置为 TRUE 的 NdisAllocateNetBufferListPool 函数,NDIS 分配NET_BUFFER_LIST、NET_BUFFER、MDL 和数据。

调用 NdisFreeNetBufferList 函数以释放NET_BUFFER_LIST结构。

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 通用
标头 ndis/nblapi.h (包括 ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 Irql_NetBuffer_Function (ndis) 、NdisAllocateNetBufferList2 (ndis) 、NdisAllocateNetBufferList2_InitFail (ndis)

另请参阅

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferAndNetBufferList NdisAllocateNetBufferListPool

NdisFreeNetBufferList