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

Пример

В следующем примере, показанном на рис. II. 5, происходит выделение блока виртуальной памяти объемом 70 Кбайт. Функция VirtualQuery возвращает размер фактически занятой области памяти. Обратите внимание, что размер области является кратным 4096 (4 Кбайтам), т.е. кратным размеру страницы в компьютерах х86.

VirtualQuervEx                          • Windows 98   • Windows 2000

Описание

Функция VirtualQueryEx аналогична функции VirtualQuery, за исключением того, что может предоставить информацию о ряде страниц в виртуальном адресном пространстве указанного процесса.

Синтаксис

DWORD VirtualQueryEx( HANDLE hProcess, LPCVOID IpvAddress, PMEMORY_BASIC_INFORMATION/7/wWJBii^r, DWORD dwLength )

Параметры

hProcess

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

IpvAddress

LPCVOID. Указатель на базовый адрес области страниц, для которого должен быть выполнен запрос.

pmbiBuffer

PMEMORY_BASIC_INFORMATION. Указатель на структуру MEMORY_BASIC_INFORMATION, в которой возвращается информация

dw Length

об указанном диапазоне страниц. См. определение структуры MEMORY_BASIC_INFORMATION в описании функции VirtualQuery. DWORD. Размер в байтах буфера, указанного параметром pmbiBuffer.

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

DWORD. Фактическое число байтов, возвращенных в информационном буфере.

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

winbase.h

См. также

VirtualQuery, VirtualProtectEx

VirtualUnlock                            • Windows 98   • Windows 2000

Описание

Функция VirtualUnlock дает возможность разблокировать указанный ряд страниц в виртуальном адресном пространстве процесса, позволяя системе выгружать эти страницы в файл подкачки по мере необходимости. Страницы, заблокированные с помощью функции VirtualLock, должны быть разблокированы как можно быстрее для предотвращения снижения производительности системы. Функцию VirtualUnlock можно не вызывать для каждого вызова функции VirtualLock, как в случае функций GlobalLock и GlobalUnlock.

Синтаксис

BOOL VirtualUnlock( LPVOID IpvAddress, DWORD dwSize )

Параметры IpvAddress

LPVOID. Указатель на базовый адрес области страниц, которые должны быть разблокированы.

dwSize

DWORD. Размер разблокированной области в байтах.

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

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

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

winbase.h

См. также

VirtualLock

Пример

См. пример для функции VirtualAlloc.

ZeroMemory                             • Windows 98   • Windows 2000

Описание

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

Синтаксис

VOID ZeroMemory( PVOID pBuffer, SIZE_T Length )

Параметры

pBuffer

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

Length

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

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

winbase.h

См. также

CopyMemory, MoveMemory, FillMemory