Функция 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. Возможные возвращаемые значения:
Возвращаемый код | Описание |
---|---|
|
Подпрограмма успешно изменила тип защиты для диапазона адресов памяти. |
|
Значение, указанное для NewProtect, не является допустимым для этой подпрограммы. |
|
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 |