Функция MmAllocateMappingAddress (wdm.h)
MmAllocateMappingAddress зарезервирует диапазон системного виртуального адресного пространства указанного размера.
Синтаксис
PVOID MmAllocateMappingAddress(
[in] SIZE_T NumberOfBytes,
[in] ULONG PoolTag
);
Параметры
[in] NumberOfBytes
Указывает количество байтов для резервирования.
[in] PoolTag
Указывает четырехзначный тег, используемый для идентификации буфера. Используйте отдельный тег PoolTag для каждого пути кода выделения. Описание тегов пула см. в разделе ExAllocatePoolWithTag.
Возвращаемое значение
MmAllocateMappingAddress возвращает указатель на начало зарезервированного буфера памяти.
Замечания
MmAllocateMappingAddress резервирует диапазон виртуальных адресов системы для используемого вызывающего объекта. Физическая память не выделяется для диапазона виртуальных адресов, а виртуальная память не может быть сопоставлена с подпрограммой MmMapLockedPagesWithReservedMapping. Вызывающий объект распакует зарезервированный диапазон памяти, вызвав подпрограмму MmUnmapReservedMapping. Наконец, вызывающий объект может освободить зарезервированный диапазон, вызвав MmFreeMappingAddress.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows XP и более поздних версиях Windows. |
целевая платформа | Всеобщий |
заголовка | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |