mmFreeContiguousMemory 函数 (wdm.h)
MmFreeContiguousMemory 例程释放由 MmAllocateContiguousMemoryXxx 例程分配的一系列物理连续内存。
语法
void MmFreeContiguousMemory(
[in] PVOID BaseAddress
);
参数
[in] BaseAddress
指向要释放的内存的虚拟地址的指针。
返回值
无
备注
MmFreeContiguousMemory 例程释放以前调用 MmAllocateContiguousMemory、MmAllocateContiguousMemorySpecifyCache 或 MmAllocateContiguousMemorySpecifyCacheNode 例程分配的物理连续内存块。 BaseAddress 参数必须是从上一次调用 MmAllocateContiguousMemoryXxx 例程中获得的基址。
必须使用连续内存的设备驱动程序应仅在驱动程序初始化期间分配所需的内存,因为物理内存在系统运行时可能会碎片化。 当驱动程序使用完内存时,此类驱动程序必须解除分配内存。
MmFreeContiguousMemory 的调用方必须在 IRQL = APC_LEVEL 运行。 对于 Windows Server 2008 及更高版本的 Windows 操作系统,还可以使用 IRQL <= DISPATCH_LEVEL 调用 MmFreeContiguousMemory。 但是,可以通过在 APC_LEVEL 或以下位置调用 来提高驱动程序性能。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 通用 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 请参见“备注”部分。 |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) , IrqlMmDispatch (wdm) |