На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

MEMORY_BASIC_INFORMATION



The MEMORY_BASIC_INFORMATION structure contains information about a range of pages in the virtual address space of a process. The VirtualQuery and VirtualQueryEx functions use this structure.

typedef struct _MEMORY_BASIC_INFORMATION { // mbi
PVOID BaseAddress; // base address of region
PVOID AllocationBase; // allocation base address
DWORD AllocationProtect; // initial access protection
DWORD RegionSize; // size, in bytes, of region
DWORD State; // committed, reserved, free
DWORD Protect; // current access protection
DWORD Type; // type of pages

} MEMORY_BASIC_INFORMATION;
typedef MEMORY_BASIC_INFORMATION *PMEMORY_BASIC_INFORMATION;


Members

BaseAddress

Points to the base address of the region of pages.

AllocationBase

Points to the base address of a range of pages allocated by the VirtualAlloc function. The page pointed to by the BaseAddress member is contained within this allocation range.

AllocationProtect

Specifies the access protection given when the region was initially allocated. One of the following flags can be present, along with the PAGE_GUARD and PAGE_NOCACHE protection modifier flags:

Flag Meaning
PAGE_READONLY Enables read access to the committed region of pages. An attempt to write to the committed region results in an access violation. If the system differentiates between read-only access and execute access, an attempt to execute code in the committed region results in an access violation.
PAGE_READWRITE Enables both read and write access to the committed region of pages.
PAGE_WRITECOPY Gives copy-on-write access to the committed region of pages.
PAGE_EXECUTE Enables execute access to the committed region of pages. An attempt to read or write to the committed region results in an access violation.
PAGE_EXECUTE_READ Enables execute and read access to the committed region of pages. An attempt to write to the committed region results in an access violation.
PAGE_EXECUTE_READWRITE Enables execute, read, and write access to the committed region of pages.
PAGE_EXECUTE_WRITECOPY Enables execute, read, and write access to the committed region of pages. The pages are shared read-on-write and copy-on-write.
PAGE_GUARD Protects the page with the underlying page protection. However, access to the region causes a "guard page entered" condition to be raised in the subject process. This flag is a page protection modifier, only valid when used with one of the page protections other than PAGE_NOACCESS.
PAGE_NOACCESS Disables all access to the committed region of pages. An attempt to read from, write to, or execute in the committed region results in an access violation exception, called a general protection (GP) fault.
PAGE_NOCACHE Allows no caching of the committed regions of pages. The hardware attributes for the physical memory should be set to no cache. This is not recommended for general usage. It is useful for device drivers; for example, mapping a video frame buffer with no caching. This flag is a page protection modifier, only valid when used with one of the page protections other than PAGE_NOACCESS.


RegionSize

Specifies the size, in bytes, of the region beginning at the base address in which all pages have identical attributes.

State

Specifies the state of the pages in the region. One of the following states is indicated:

State Meaning
MEM_COMMIT Indicates committed pages for which physical storage has been allocated, either in memory or in the paging file on disk.
MEM_FREE Indicates free pages not accessible to the calling process and available to be allocated. For free pages, the information in the AllocationBase, AllocationProtect, Protect, and Type members is undefined.
MEM_RESERVE Indicates reserved pages where a range of the process's virtual address space is reserved without allocating any physical storage. For reserved pages, the information in the Protect member is undefined.


Protect

Specifies the access protection of the pages in the region. One of the flags listed for the AllocationProtect member is specified.

Type

Specifies the type of pages in the region. The following types are defined:

Type Meaning
MEM_IMAGE Indicates that the memory pages within the region are mapped into the view of an image section.
MEM_MAPPED Indicates that the memory pages within the region are mapped into the view of a section.
MEM_PRIVATE Indicates that the memory pages within the region are private (not shared by other processes).


See Also

VirtualAlloc, VirtualQuery, VirtualQueryEx


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

MEMORY_BASIC_INFORMATION



Структура MEMORY_BASIC_INFORMATION содержит информацию о дипазоне страниц в виртуальном пространстве адреса процесса. VirtualQuery И использование функций VirtualQueryEx этой структуры.

typedef struct _MEMORY_BASIC_INFORMATION { // mbi PVOID BaseAddress; // базовый адрес области PVOID AllocationBase; // базовый адрес распределения DWORD AllocationProtect; // начальная защита доступа DWORD RegionSize; // размер, в байтах, Состояния области DWORD; // совершенное, зарезервированное, свободный DWORD Защищается; // текущая защита Типа доступа DWORD; // тип страниц

} MEMORY_BASIC_INFORMATION;
typedef MEMORY_BASIC_INFORMATION *PMEMORY_BASIC_INFORMATION;


Участники

BaseAddress

Точки на базовый адрес области страниц.

AllocationBase

Точки на базовый адрес дипазона страниц распределялись функцией VirtualAlloc. Страница указывалась, чтобы элементом BaseAddress содержался в пределах этого дипазона распределения.

AllocationProtect

Определяет защиту доступа данную когда область первоначально была распределена. Одно из следующего сигнализирует может представлять, вместе с PAGE_GUARD и флагами модификатора защиты PAGE_NOCACHE:

Значение Флага
PAGE_READONLY Приспосабливается прочитанный доступ к совершенной области страниц. Попытка, чтобы записываться в совершенные результаты области в нарушении доступа. Если система различается между только для чтения доступом и выполняет доступ, попытка, чтобы выполнять код в совершенных результатах области в нарушении доступа.
PAGE_READWRITE Приспосабливается как прочитанное так и доступ записи к совершенной области страниц.
PAGE_WRITECOPY Дает копию-в-записывать доступе к совершенной области страниц.
Приспосабливать PAGE_EXECUTE выполняют доступ к совершенной области страниц. Попытка, чтобы читать или записываться в совершенные результаты области в нарушении доступа.
Приспосабливать PAGE_EXECUTE_READ выполняют и читают доступ к совершенной области страниц. Попытка, чтобы записываться в совершенные результаты области в нарушении доступа.
Приспосабливать PAGE_EXECUTE_READWRITE выполняют, прочитанное, и доступ записи к совершенной области страниц.
Приспосабливать PAGE_EXECUTE_WRITECOPY выполняют, прочитанное, и доступ записи к совершенной области страниц. Страницы распространены прочитанное-в-записи и копии-в-записи.
PAGE_GUARD Защищает страницу с основной страничной защитой. Тем не менее, доступ к причинам области условие "страницы охраны вводило", чтобы быть поднят в подчиненном процессе. Этот флаг - страничный модификатор защиты, только правильный когда использовано одной из страничных защит кроме PAGE_NOACCESS.
PAGE_NOACCESS Выводит из строя весь доступ к совершенной области страниц. Попытка, чтобы читать из, запись на или выполняется в совершенных результатах области в исключение нарушение доступ, назвавших общую защиту (GP) дефект.
PAGE_NOCACHE не Допускает никакое кэширование совершенных областей страниц. Аппаратные атрибуты для физической памяти должны быть установлены в никакой кеш. Это не рекомендован для общего использования. Это полезное для драйверов устройства; например, отображая видео фреймовый буфер без кэширования. Этот флаг - страничный модификатор защиты, только правильный когда использовано одной из страничных защит кроме PAGE_NOACCESS.


RegionSize

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

Состояние

Определяет состояние страниц в области. Одно из следующих состояний указаны:

Государственное Значение
MEM_COMMIT Указывает совершенные страницы для которых физическая память распределена, или в памяти или в файле подкачки на диске.
MEM_FREE Указывает свободные страницы не доступный на вызов процесса и доступный быть распределенн. Для свободных страниц, информация в AllocationBase, AllocationProtect, Защищается, и участники Типа неопределенный.
MEM_RESERVE Указывает резервные страницы где дипазон пространства виртуального адреса процесса не зарезервирован распределяя любую физическую память. Для резервных страниц, информация в элементе Protect неопределенная.


Защититесь

Определяет защиту доступа страниц в области. Одного из флагов указанных для элемента AllocationProtect определены.

Тип

Определяет тип страниц в области. Следующие типы определены:

Значение Типа
MEM_IMAGE Указывает, что страницы памяти в пределах области отображены в вид секции образа.
MEM_MAPPED Указывает, что страницы памяти в пределах области отображены в вид секции.
MEM_PRIVATE Указывает, что страницы памяти в пределах области частные (не распространенное другими процессами).


Смотри Также

VirtualAlloc, VirtualQuery, VirtualQueryEx


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz