Служба предназначена для управления виртуальной памятью.
Сведения о методах службы приведены в таблице ниже.
Метод
|
Назначение и параметры метода
|
Потенциальная опасность метода
|
Allocate
|
Назначение
Выделяет (резервирует и опционально фиксирует) регион виртуальной памяти.
Параметры
- [in]
addr – желаемый базовый адрес региона виртуальной памяти или 0 , чтобы базовый адрес был выбран автоматически. - [in]
size – размер региона виртуальной памяти в байтах. - [in]
flags – флаги, задающие параметры региона виртуальной памяти. - [out]
va – базовый адрес выделенного региона виртуальной памяти. - [out]
rc – код возврата.
|
Позволяет выполнить следующие действия:
- Исчерпать память ядра, создавая в ней множество объектов.
- Исчерпать оперативную память.
|
Commit
|
Назначение
Фиксирует зарезервированный методом Allocate регион виртуальной памяти.
Параметры
- [in]
va – базовый адрес региона виртуальной памяти. - [in]
size – размер региона виртуальной памяти в байтах. - [in]
flags – фиктивный параметр. - [out]
rc – код возврата.
|
Позволяет исчерпать оперативную память.
|
Decommit
|
Назначение
Отменяет фиксацию региона виртуальной памяти.
Параметры
- [in]
va – базовый адрес региона виртуальной памяти. - [in]
size – размер региона виртуальной памяти в байтах. - [out]
rc – код возврата.
|
Нет.
|
Protect
|
Назначение
Изменяет права доступа к региону виртуальной памяти.
Параметры
- [in]
va – базовый адрес региона виртуальной памяти. - [in]
size – размер региона виртуальной памяти в байтах. - [in]
flags – флаги, задающие права доступа к региону виртуальной памяти. - [out]
rc – код возврата.
|
Нет.
|
Free
|
Назначение
Освобождает регион виртуальной памяти.
Параметры
- [in]
va – базовый адрес региона виртуальной памяти. - [in]
size – размер региона виртуальной памяти в байтах. - [out]
rc – код возврата.
|
Нет.
|
Query
|
Назначение
Позволяет получить сведения о странице виртуальной памяти.
Параметры
- [in]
va – адрес, входящий в страницу виртуальной памяти. - [out]
info – последовательность, содержащая сведения о странице виртуальной памяти. - [out]
rc – код возврата.
|
Нет.
|
MdlCreate
|
Назначение
Создает буфер MDL.
Параметры
- [in]
size – размер буфера MDL в байтах. - [in]
prot – флаги, задающие права доступа к буферу MDL. - [out]
handle – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует буфер MDL. - [out]
rc – код возврата.
|
Позволяет выполнить следующие действия:
- Исчерпать память ядра, создавая в ней множество объектов.
- Исчерпать оперативную память.
|
MdlCreateFromVm
|
Назначение
Создает буфер MDL из физической памяти, отображенной на заданный регион виртуальной памяти, и отображает созданный буфер MDL на этот регион.
Параметры
- [in]
va – базовый адрес региона виртуальной памяти. - [in]
size – размер региона виртуальной памяти в байтах. - [in]
flags – флаги, задающие права доступа к буферу MDL. - [out]
handle – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует буфер MDL. - [out]
rc – код возврата.
|
Позволяет выполнить следующие действия:
- Исчерпать память ядра, создавая в ней множество объектов.
- Исчерпать оперативную память.
|
MdlGetSize
|
Назначение
Позволяет получить размер буфера MDL.
Параметры
- [in]
handle – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует буфер MDL. - [out]
size – размер буфера MDL в байтах. - [out]
rc – код возврата.
|
Нет.
|
MdlMap
|
Назначение
Резервирует регион виртуальной памяти и отображает на него буфер MDL.
Параметры
- [in]
handle – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует буфер MDL. - [in]
offset – смещение в буфере MDL, с которого нужно начать отображение, в байтах. - [in]
length – размер части буфера MDL, которую нужно отобразить, в байтах. - [in]
hint – желаемый базовый адрес региона виртуальной памяти или 0 , чтобы базовый адрес был выбран автоматически. - [in]
prot – флаги, задающие параметры региона виртуальной памяти. - [out]
address – базовый адрес региона виртуальной памяти. - [out]
rc – код возврата.
|
Позволяет выполнить следующие действия:
- Создать разделяемую память для межпроцессного взаимодействия, скрытого от модуля безопасности, если дескрипторами одного буфера MDL владеют несколько процессов (маски прав дескрипторов должны разрешать отображение буфера MDL).
- Исчерпать память ядра, создавая в ней множество объектов.
|
MdlClone
|
Назначение
Создает буфер MDL на основе существующего.
Буфер MDL создается из тех же регионов физической памяти, что и оригинальный.
Параметры
- [in]
originHandle – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует оригинальный буфер MDL. - [in]
offset – смещение в оригинальном буфере MDL, с которого нужно начать дублирование, в байтах. - [in]
length – размер части оригинального буфера MDL, которую нужно дублировать, в байтах. - [out]
cloneHandle – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует созданный буфер MDL. - [out]
rc – код возврата.
|
Позволяет исчерпать память ядра, создавая в ней множество объектов.
|