Функция 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 можно также вызвать MmFreeContiguousMemory с <IRQL = DISPATCH_LEVEL. Однако вы можете повысить производительность драйвера, вызвав APC_LEVEL или ниже.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 2000. |
целевая платформа | Всеобщий |
заголовка | wdm.h (include Wdm.h, Ntddk.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | См. раздел "Примечания". |
правил соответствия DDI | HwStorPortProhibitedDIs(storport), IrqlMmDispatch(wdm) |