Функция MmFreeContiguousMemory (ntddk.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.
Целевая платформа Универсальное
Заголовок ntddk.h (include Wdm.h, Ntddk.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL См. раздел "Примечания".
Правила соответствия DDI HwStorPortProhibitedDDIs(storport), IrqlMmDispatch(wdm)

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

MmAllocateContiguousMemory

MmAllocateContiguousMemorySpecifyCache

MmAllocateContiguousMemorySpecifyCacheNode