NdisFreeMemory 函数 (ndis.h)
NdisFreeMemory 函数释放以前使用 NdisAllocateMemoryWithTagPriority 函数分配的内存块。
语法
void NdisFreeMemory(
[in] PVOID VirtualAddress,
[in] UINT Length,
[in] UINT MemoryFlags
);
参数
[in] VirtualAddress
指向已分配内存的基虚拟地址的指针。 此地址由 NdisAllocateMemoryWithTagPriority 函数返回。
[in] Length
要释放的内存块的大小(以字节为单位)。 如果使用 NdisAllocateMemoryWithTagPriority 分配内存或 MemoryFlags 参数为零,则忽略此参数。
[in] MemoryFlags
指定要释放的内存类型的一组标志。 如果使用 NdisAllocateMemoryWithTagPriority 分配内存,则此值必须为零。 对于 NDIS 6.0 及更高版本, NdisAllocateMemoryWithTagPriority 始终用于分配内存。
返回值
无
备注
由于在分配微型端口驱动程序卸载之前很少释放非缓存内存和连续内存,因此对于这些类型的解除分配, NdisFreeMemory 的调用方通常以 IRQL = PASSIVE_LEVEL 运行。 在任何情况下:
- 释放连续内存时, NdisFreeMemory 的调用方必须在 IRQL = PASSIVE_LEVEL 运行。
- 释放非缓存内存时, NdisFreeMemory 的调用方必须在 IRQL < DISPATCH_LEVEL 上运行。
- 释放既不连续也不缓存的内存时, NdisFreeMemory 的调用方必须在 IRQL <= DISPATCH_LEVEL 运行。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 支持 NDIS 6.0 和 NDIS 5.1 驱动程序 (请参阅 Windows Vista 中的 NdisFreeMemory (NDIS 5.1) ) 。 NDIS 5.1 驱动程序支持 (请参阅 Windows XP 中的 NdisFreeMemory (NDIS 5.1) ) 。 |
目标平台 | 通用 |
标头 | ndis.h (包括 Ndis.h) |
Library | Ndis.lib |
IRQL | 请参阅“备注”部分 |
DDI 符合性规则 | Irql_Miscellaneous_Function (ndis) 、NdisAllocateMemoryWithTagPriority_Cleanup (ndis) 、NdisAllocateMemoryWithTagPriority_InitFail (ndis) 、 NdisQueryBindInstanceName (ndis) |