Динамическое распределение памяти в MS Windows. Габрельян Б.В. - 15 стр.

UptoLike

Составители: 

вызывает исключение STATUS_GUARD_PAGE а
затем сбрасывает GUARD флаг. Не может
использоваться вместе с флагом PAGE_NOACCESS.
PAGE_NOACCESS
Запрещает доступ к распределенным страницам
памяти. Любое обращение вызывает генерацию
исключения "запрет доступа".
PAGE_NOCACHE
Позволяет не использовать кэширование
распределенных страниц. Обычно не используется.
Может быть полезен для драйверов устройств.
Используется только вместе с другими флагами
ограничения доступа (кроме PAGE_NOACCESS).
Возвращаемые
значения:
В случае успеха - стартовый адрес блока, в противном случае NULL.
11. VirtualFree
Функция VirtualFree освобождает зарезервированный или распределенный блок
памяти в адресном пространстве текущего процесса.
BOOL VirtualFree(
LPVOID lpAddress, // адрес блока
DWORD dwSize, // размер блока
DWORD dwFreeType // тип операции
);
Параметры:
lpAddress - указатель на блок. Если параметр dwFreeType содержит флаг
MEM_RELEASE, это должен быть стартовый адрес блока, возвращенный
VirtualAlloc() при его резервировании.
dwSize - размер
освобождаемого блока в байтах. Если параметр dwFreeType
содержит флаг MEM_RELEASE, dwSize должен быть равен нулю. Иначе,
освобождаются все страницы, содержащие адреса от lpAddress до
(lpAddress+dwSize).
dwFreeType - тип операции. Может быть одно из следующих значений (но не оба
сразу):
Флаг Значение
MEM_DECOMMIT
Освободить захваченный прежде блок. Попытка
освободить не захваченную страницу
не приводит к
ошибке.
MEM_RELEASE
Освобождает зарезервированный прежде блок. Параметр
dwSize должен быть равен нулю, иначе функция
возвращает признак ошибки.
Возвращаемые значения:
В случае успеха возвращает не нулевое значение, иначе ноль.
12. GetProcessHeap
                                вызывает исключение STATUS_GUARD_PAGE а
                                затем сбрасывает GUARD флаг. Не может
                                использоваться вместе с флагом PAGE_NOACCESS.
                                Запрещает доступ к распределенным страницам
PAGE_NOACCESS                   памяти. Любое обращение вызывает генерацию
                                исключения "запрет доступа".
                                Позволяет     не     использовать   кэширование
                                распределенных страниц. Обычно не используется.
PAGE_NOCACHE                    Может быть полезен для драйверов устройств.
                                Используется только вместе с другими флагами
                                ограничения доступа (кроме PAGE_NOACCESS).
Возвращаемые значения:
В случае успеха - стартовый адрес блока, в противном случае NULL.

11. VirtualFree
Функция VirtualFree освобождает зарезервированный или распределенный блок
памяти в адресном пространстве текущего процесса.
BOOL VirtualFree(
 LPVOID lpAddress, // адрес блока
 DWORD dwSize, // размер блока
 DWORD dwFreeType // тип операции
);

Параметры:
lpAddress - указатель на блок. Если параметр dwFreeType содержит флаг
MEM_RELEASE, это должен быть стартовый адрес блока, возвращенный
VirtualAlloc() при его резервировании.
dwSize - размер освобождаемого блока в байтах. Если параметр dwFreeType
содержит флаг MEM_RELEASE, dwSize должен быть равен нулю. Иначе,
освобождаются все страницы, содержащие адреса от lpAddress до
(lpAddress+dwSize).
dwFreeType - тип операции. Может быть одно из следующих значений (но не оба
сразу):
             Флаг                                   Значение
                               Освободить захваченный прежде блок. Попытка
MEM_DECOMMIT                   освободить не захваченную страницу не приводит к
                               ошибке.
                               Освобождает зарезервированный прежде блок. Параметр
MEM_RELEASE                    dwSize должен быть равен нулю, иначе функция
                               возвращает признак ошибки.
Возвращаемые значения:
В случае успеха возвращает не нулевое значение, иначе ноль.

12. GetProcessHeap