Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows


           

С первого взгляда заметно, что


// информация о блоке
PVOID pvBlkBaseAddress;
DWORD dwBlkProtection;

// PAGE_*
SIZE_T BlkSize;

DWORD dwBlkStorage;

// MEM_* Free, Reserve, Image, Mapped, Private

} VMQUERY, *PVMQUERY;

С первого взгляда заметно, что моя структура VMQUERY содержит куда больше информации, чем MEMORY_BASIC_INFORMATION Она разбита (условно, конечно) на две части: в одной — информация и регионе, в другой — информация о блоке (адрес которого указан в параметре pvAddress). Элементы этой структуры описываются в следующейтаблице.











































































Элемент



Описание



pvRgnBaseAddress



Идентифицирует базовый адрес региона виртуального адресного про странства, включающего адрес, указанный в параметре pvAddress



dwRgnProtection



Сообщает атрибут защиты, присвоенный региону при его резервиро вании.



RgnSize



Указывает размер (в байтах) зарезернириванного о региона.



dwRgnStorage



Идентифицирует тип физической памяти, используемой группой бло ков данного peгиона: MEM_FREE, MEM_IMAGE, MEM_MAPPED или MEM PRIVATE. Поскольку Windows 98 не различает типы памяти, в этой операционной системе данный элемент содержит либо MEM_FREE, либо MEM_PRIVATE



dwRgnBlocks



Содержит значение — число блоков в указанном регионе



dwRgnGuardBlks



Указывает число блоков с установленным флагом атрибутов защиты PAGE GUARD. Обычно это значение либо 0, либо 1. Если оно равно 1, то регион скорее всего зарезервирован под стек потока В Windows 98 этот элемент всегда равен 0



fRgnIsAStack



Сообщает, есть ли в данном регионе стек потока Результат определя ется на основе взвешенной оценки, так как невозможно дать стопро центной гарантии тому, что в регионе содержится стек.



pvBlkBaseAddress



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



dwBlkProtection



Идентифицирует атрибут защиты блока, включающего адрес, указан ный в параметре pvAddress.



BlkSize



Содержит значение — размер блока (в байтах), включающего адрес, указанный в параметре pvAddress.



dwBlkStorage



Идентифицирует содержимое блока, включающего адрес, указанный в параметре pvAddress. Принимает одно из значений: MEM FREE, MEM_RESERVE, MEM_IMAGE, MEM_MAPPED или MEM_PRIVATE. В Windows 98 этот элемент никогда не содержит значения MEM IMAGE и MEM MAPPED

<

Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий