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) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 请参阅“备注”部分。 |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport), IrqlMmDispatch(wdm) |