Управление памятью. Глобальная память, страница 3

Функция

Назначение

GlobalMemoryStatusEx

Выбирает расширенную информацию о доступной физической и виртуальной памяти

GlobalReAlloc

Изменяет размер и/или атрибуты глобального блока памяти

GlobalSize

Определяет размер блока памяти, распределенного в глобальном блоке

GlobalUnlock

Разблокирует загруженный блок памяти в глобальной куче

MapUserPhysicalPages

Отображает распределенные ранее физические страницы в указанный адрес

MapUserPhysicalPagesScatter

Отображает и отменяет отображение нескольких областей ранее распределенных физических страниц

НеарАНос

Распределяет блок памяти из кучи

HeapCompact

Предпринимает попытку уплотнить кучу

HeapCreate

Создает приватный объект кучи для вызывающего процесса

HeapDestroy

Уничтожает объект кучи

HeapFree

Освобождает блок памяти, распределенный из кучи

HeapReAlloc

Перераспределяет блок памяти из кучи

HeapSize

Возвращает размер в байтах блока памяти, распределенного из кучи

IsBadCodePtr

Проверяет, имеет ли вызывающий процесс доступ для чтения к адресу памяти

IsBadReadPtr

Проверяет, имеет ли вызывающий процесс доступ для чтения к диапазону адресов памяти

IsBadStringPtr

Проверяет, имеет ли вызывающий процесс доступ для чтения к диапазону адресов памяти, обозначенному указателем строки

IsBadWritePtr

Проверяет, имеет ли вызывающий процесс доступ для записи к адресу памяти

MoveMemory

Перемещает блок памяти из одного места в другое

MulDiv

Вычисляет выражение (а * Ь) / с, где а, Ь и с — короткие целые числа

VirtualAlloc

Распределяет ряд страниц в виртуальном адресном пространстве

VirtualAllocEx

Распределяет ряд страниц в виртуальном адресном пространстве указанного процесса

VirtualFree

Освобождает ряд страниц в виртуальном адресном пространстве

VirtualFreeEx

Освобождает ряд страниц в виртуальном адресном пространстве указанного процесса

VirtualLock

Блокирует область виртуального адресного пространства в памяти

VirtualProtect

Изменяет установки защиты доступа к области выделенных страниц в виртуальном адресном пространстве

VirtualProtectEx

Изменяет установки защиты доступа к области выделенных страниц в виртуальном адресном пространстве указанного процесса

VirtualQuery

Предоставляет информацию о ряде страниц в виртуальном адресном пространстве

VirtualQueryEx

Предоставляет информацию о ряде страниц в виртуальном адресном пространстве указанного процесса

VirtualUnlock

Разблокирует ряд страниц в виртуальном адресном пространстве

ZeroMemory

Заполняет блок памяти нулями

AllocateUserPhysicalPages              • Windows 98   • Windows 2000

Описание

Функция   AllocateUserPhysicalPages распределяет физическую память страниц, для которых должно выполняться отображение и отмена отображения в любом виртуальном адресном пространстве адресного расширения работы с окнами (AWE — Address Windowing Exte/nsion) указанного процесса.

Синтаксис

BOOL AllocateUserPhysicalPages( HANDLE hProcess, PULONG_PTR pNumberOfPages, PULONG_PTR pUserPfnArray )

Параметры

hProcess

HANDLE. Дескриптор процесса, в котором должна быть распределена память. Чтобы эта функция могла работать, пользователь вызывающего приложения должен иметь привилегированный доступ типа Lock Pages in Memory (блокировка страниц в памяти) к этому процессу.

pNumberOfPages

PULONG_PTR Указывает размер в страницах физической памяти, которая должна быть распределена. Этот параметр также возвращает число фактически распределенных страниц, которое может быть меньше затребованного числа.

pUserP/kArray

PULONG_PTR. Указывает виртуальный адрес, по которому должны храниться номера страничных блоков распределенной памяти. Размер распределенной памяти должен превышать по меньшей мере в pNumberOfPages раз размер типа данных ULONG_PTR Модификация этого буфера может вызвать повреждение системы.

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

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winbase.h

См. также

FreeUserPhysicalPages, MapUserPhysicalPages, MapUserPhysicalPagesScatter

CopyMemory                            • Windows 98   • Windows 2000

Описание

Функция CopyMemory копирует блок памяти из одного места в другое.

Синтаксис

VOID CopyMemory( PVOID pDestination, CONST VOID* pSource, SIZEJT Length )

Параметры

р Destination

PVOID. Указатель на начальный адрес назначения копируемого блока.

pSource

CONST VOID*. Указатель на начальный адрес блока памяти, который должен быть скопирован.

Length

SIZEJT. Указывает размер в байтах блока памяти, который должен быть скопирован.

Включаемый файл

winbase.h

См. также

FillMemory, MoveMemory, ZeroMemory

FillMemory                              • Windows 98   • Windows 2000

Описание

Функция FillMemory заполняет блок памяти указанным значением.

Синтаксис

VOID FillMemory( PVOID pBuffer, SIZEJT Length, BYTE byFill )

Параметры

pBuffer

PVOID. Указатель на начальный адрес блока памяти, который должен быть заполнен.

Length

SIZE_T. Указывает размер в байтах блока памяти, который должен быть заполнен.

byFill

BYTE. Указывает значение байта, которым должен быть заполнен блок памяти.

Включаемый файл

winbase.h

См. также

CopyMemory, MoveMemory, ZeroMemory

FreeUserPhysicalPages                  • Windows 98   • Windows 2000

Описание

Функция FreeUserPhysicalPages освобождает страницы физической памяти, которые были ранее распределены с помощью функции AllocateUserPhysicalPages. Если какие-либо из этих страниц в настоящее время отображены в адресном пространстве AWE, при вызове этой функции происходит автоматическая отмена отображения страниц.

Синтаксис

BOOL FreeUserPhysicalPages( HANDLE hProcess, PULONG_PTR pNumberOfPages, PULONG_PTR pUserPfnArray )

Параметры

hProcess

HANDLE. Дескриптор процесса, содержащего виртуальное адресное пространство, в котором должна быть освобождена память.

pNumberOfPeges

PULONG_PTR Указывает размер в страницах физической памяти, которая должна быть освобождена. Если функция потерпела неудачу, этот параметр возвращает число фактически освобожденных страниц.

pUserPfnArray

PULONG_PTR. Указывает виртуальный адрес, по которому должны быть получены номера страничных блоков, подлежащих освобождению.

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

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winbase.h

См. также

AllocateUserPhysicalPages, MapUserPhysicalPages, MapUserPhysicalPagesScatter

GlobalAlloc                              • Windows 98   • Windows 2000

Описание

Функция GlobalAlloc распределяет блок памяти из кучи. В линейной памяти среды Win32 не существует разницы между локальной кучей и глобальной кучей.

Синтаксис

HGLOBAL GlobalAlloc( UINT uFlags, DWORD dwBytes )

Параметры и Flags

UINT. Определяет, как распределить память. Если указан 0, значение по умолчанию — GMEM_FIXED. В качестве этого параметра можно использовать любую комбинацию флажков, перечисленных в табл. 11.2, кроме несовместимых комбинаций, которые отмечены особо.

Таблица 11.2. Флажки GlobalAlloc