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


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

Подпрограмма MmProtectMdlSystemAddress задает тип защиты для диапазона адресов памяти.

Синтаксис

NTSTATUS MmProtectMdlSystemAddress(
  [in] PMDL  MemoryDescriptorList,
  [in] ULONG NewProtect
);

Параметры

[in] MemoryDescriptorList

Указывает диапазон адресов памяти для задания типа защиты.

[in] NewProtect

Задает новый параметр защиты для страниц памяти. Драйверы должны указывать одно из следующих значений:

PAGE_NOACCESS

Базовые страницы памяти не могут быть прочитаны или записаны.

PAGE_READONLY

Базовые страницы памяти можно только читать, а не записывать.

PAGE_READWRITE

Базовые страницы памяти можно читать или записывать.

PAGE_EXECUTE

Базовые страницы памяти можно выполнять, но не читать или записывать.

PAGE_EXECUTE_READ

Базовые страницы памяти можно выполнять или читать, но не записывать.

PAGE_EXECUTE_READWRITE

Базовые страницы памяти можно выполнять, читать или записывать.

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

MmProtectMdlSystemAddress возвращает код NTSTATUS. Возможные возвращаемые значения:

Код возврата Описание
STATUS_SUCCESS
Подпрограмма успешно изменила тип защиты для диапазона адресов памяти.
STATUS_INVALID_PAGE_PROTECTION
Значение, указанное для NewProtect , не является допустимым для этой подпрограммы.
STATUS_NOT_MAPPED_VIEW
MDL еще не сопоставлен. MmProtectMdlSystemAddress можно использовать только в уже сопоставленных mdls.

Комментарии

Подпрограмму MmProtectMdlSystemAddress можно вызывать только для MDL, который уже сопоставлен. Например, подпрограмму можно вызвать для MDL, сопоставленного с помощью MmMapLockedPagesSpecifyCache.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows XP и более поздних версиях Windows.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

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

MmMapLockedPagesSpecifyCache