NdisAllocateNetBufferMdlAndData 函数 (ndis/nblapi.h)

NDIS 驱动程序调用 NdisAllocateNetBufferMdlAndData 函数,以分配NET_BUFFER结构以及关联的 MDL 和数据。

语法

NDIS_EXPORTED_ROUTINE NET_BUFFER * NdisAllocateNetBufferMdlAndData(
  [in] NDIS_HANDLE PoolHandle
);

参数

[in] PoolHandle

先前从调用 NdisAllocateNetBufferPool 函数返回的NET_BUFFER结构池句柄。

返回值

NdisAllocateNetBufferMdlAndData 返回指向 NDIS 分配的NET_BUFFER结构的指针。 如果分配失败,则此指针为 NULL

注解

调用方必须调用 NdisAllocateNetBufferPool 函数并指定数据缓冲区的最大大小。 给定此值后,NDIS 可以为调用方预分配缓冲区。

此函数在单个内存缓冲区中分配 NET_BUFFER 结构、MDL 和数据。 这对于在频繁分配和释放NET_BUFFER结构时实现高性能非常有用。 调用方不应调用 NdisAllocateNetBuffer 来分配包含数据的NET_BUFFER池中的NET_BUFFERs。

NDIS 使用 PoolHandle 参数获取内存块,然后创建NET_BUFFER、MDL 和数据缓冲区。

若要释放NET_BUFFER和相关信息,请调用 NdisFreeNetBuffer 函数。

要求

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

另请参阅

NET_BUFFER

NdisAllocateNetBuffer

NdisFreeNetBuffer