Функция VirtualQuery возвращает информацию о диапазоне страниц виртуального адресного пространства вызывающего процесса. Для того, чтобы получить информацию о диапазоне страниц произвольного процесса, следует воспользоватьс функцией VirtualQueryEx.
function VirtualQuery( lpAddress: Pointer; //адрес начала региона памяти var lpBuffer: TMemoryBasicInformation; //буфер для получения информации dwLength: DWORD //размер буфера ): DWORD; stdcall;
Параметры
lpAddress [in]
Указывает на начальный базовый адрес региона, информация о котором
запрашивается. Это значение округляется вниз до границы страницы. Для того,
чтобы определить значения размера страницы на данном компьютере, необходимо
произвести вызов функции GetSystemInfo.
lpBuffer [in]
Ссылка на структуру TMemoryBasicInformation, в которую запиштся информация об
указанном диапазоне памяти.
dwLength [in]
Размер в байтах структуры данных, ссылка на которую передается в параметре
lpBuffer.
Возвращаемое значение
Количество байт, которые были записаны в буфер.
Описание
Функция VirtualQuery возвращает информацию о блоке, состоящем из смежных страниц, начинающемся по указанному начальному адресу, при этом вы можете получить информацию о следующих атрибутах страницы:
Данная функция определяет атрибуты первой страницы из указанного диапазона, а затем последовательно сканирует страницы в памяти до тех пор, пока не найдет страницу в памяти с отличными атрибутами. Возвращаемым значением функции является количество байт памяти, дкоторые имеют те же атрибуты, что и первая рассматриваемая страница. Пусть, например, в памяти расположен свободный фрагмент размером 40 Мб, и функция VirtualQuery была вызвана для ареса со смещением в 10 Мб от начала описанного фрагмента. Тогда функция определит состояние страниц как MEM_FREE, и вернет размер 30 Мб.
Данная функция возвращает информацию об виртуальном адресном пространстве вызывающего процесса. Для того, чтобы получить информацию о виртальном адресном пространстве произвольного процесса, необходимо использовать функцию VirtualQueryEx.
Требования
Windows NT/2000: Требуется Windows NT 3.1 или более поздняя версия
Windows 95/98: Требуется Windows 95 или более поздняя версия
Бибиотека: Kernel32.dll
Подключаемый модуль: Windows
Смотри также:
VirtualProtectEx |
VirtualQueryEx![]() |
© Mystic, 2002