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) |