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针对这些类型的解除分配运行。 在任何情况下:

  • 释放连续内存时,必须在 IRQL = PASSIVE_LEVEL上运行 NdisFreeMemory 的调用方。
  • 释放非缓存内存时,必须在 IRQL < DISPATCH_LEVEL 运行 NdisFreeMemory 的调用方。
  • 释放既不连续也不是非缓存的内存时,必须在 IRQL <= DISPATCH_LEVEL 上运行 NdisFreeMemory 的调用方。

要求

要求 价值
最低支持的客户端 Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 NdisFreeMemory (NDIS 5.1)。 Windows XP 中支持 NDIS 5.1 驱动程序(请参阅 NdisFreeMemory (NDIS 5.1)。
目标平台 普遍
标头 ndis.h (包括 Ndis.h)
Ndis.lib
IRQL 请参阅“备注”部分
DDI 符合性规则 Irql_Miscellaneous_Function(ndis)、NdisAllocateMemoryWithTagPriority_Cleanup(ndis)、NdisAllocateMemoryWithTagPriority_InitFail(ndis)、NdisQueryBindInstanceName(ndis)

另请参阅

MiniportHaltEx

NdisAllocateMemoryWithTagPriority