Поделиться через


Функция MmFreeContiguousMemory (wdm.h)

Подпрограмма MmFreeContiguousMemory выпускает диапазон физически непрерывной памяти, выделенный подпрограммой MmAllocateContiguousMemoryXxx .

Синтаксис

void MmFreeContiguousMemory(
  [in] PVOID BaseAddress
);

Параметры

[in] BaseAddress

Указатель на виртуальный адрес освобождаемой памяти.

Возвращаемое значение

None

Remarks

Подпрограмма MmFreeContiguousMemory освобождает блок физической непрерывной памяти, выделенный предыдущим вызовом подпрограммы MmAllocateContiguousMemory, MmAllocateContiguousMemorySpecifyCache или MmAllocateContiguousMemorySpecifyCacheNode . Параметр BaseAddress должен быть базовым адресом, полученным из предыдущего вызова подпрограммы MmAllocateContiguousMemoryXxx .

Драйвер устройства, который должен использовать непрерывную память, должен выделять только то, что ему нужно во время инициализации драйвера, так как физическая память, скорее всего, будет фрагментирована при запуске системы. Такой драйвер должен освободить память, когда драйвер использует память.

Вызывающие объект MmFreeContiguousMemory должны выполняться по адресу IRQL = APC_LEVEL. Для Windows Server 2008 и более поздних версий операционной системы Windows можно также вызвать MmFreeContiguousMemory с IRQL <= DISPATCH_LEVEL. Тем не менее вы можете повысить производительность драйвера, вызвав APC_LEVEL или ниже.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL См. раздел "Примечания".
Правила соответствия DDI HwStorPortProhibitedDIs(storport), IrqlMmDispatch(wdm)

См. также раздел

MmAllocateContiguousMemory

MmAllocateContiguousMemorySpecifyCache

MmAllocateContiguousMemorySpecifyCacheNode