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


Функция 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 можно использовать только для многомерных выражений, которые уже сопоставлены.

Замечания

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows XP и более поздних версиях Windows.
целевая платформа Всеобщий
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

См. также

MmMapLockedPagesSpecifyCache