Блог по программированию в среде Delphi

Поиск по блогу

Есть идея по созданию интересной программы?

Опиши тут и я по возможности постараюсь это реализовать специально для тебя! Без $ ))

воскресенье, 17 октября 2010 г.

MEMORY_BASIC_INFORMATION структура

Содержит сведения о диапазоне страниц в виртуальном адресном пространстве процесса. Функции VirtualQuery и VirtualQueryEx использовать эту структуру.

Синтаксис Delphi
type
  PMemoryBasicInformation = ^TMemoryBasicInformation;
  _MEMORY_BASIC_INFORMATION = record
    BaseAddress : Pointer;
    AllocationBase : Pointer;
    AllocationProtect : DWORD;
    RegionSize : DWORD;
    State : DWORD;
    Protect : DWORD;
    Type_9 : DWORD;
  end;
  {$EXTERNALSYM _MEMORY_BASIC_INFORMATION}
  TMemoryBasicInformation = _MEMORY_BASIC_INFORMATION;
  MEMORY_BASIC_INFORMATION = _MEMORY_BASIC_INFORMATION;
  {$EXTERNALSYM MEMORY_BASIC_INFORMATION}

Члены
BaseAddress
Указатель на базовый адрес региона страниц.
AllocationBase
Указатель на базовый адрес диапазона страниц ассигнован функцией VirtualAlloc. Страница, на которую указывает член BaseAddress, содержится в пределах этого диапазона распределения.
AllocationProtect
Выбор защиты памяти, когда область была первоначально ассигнована. Этот участник может быть одной из констант защиты памяти или 0, если у гостя нет доступа.
RegionSize
Размер в регионе, начиная с базового адреса, в которой все страницы имеют идентичные атрибуты, в байтах. 
State
Состояние страницы в регионе. Этот член может быть одним из следующих значений.
Состояние Смысл

MEM_COMMIT
0x1000
Указывает на фиксированные страницы, для которых физическое хранение было выделено, или в памяти или в страничном файле на диске.

MEM_FREE
0x10000
Указывает свободных страниц, не доступных для вызывающего процесса и которые будут выделены. Для свободных страниц информация в AllocationBase, AllocationProtect, Protect, тип и элементы не определены.

MEM_RESERVE
0x2000
Указывает на зарезервированные страницы, где диапазон виртуального адресного пространства процесса зарезервирован без любого физического выделяемого хранения. Для зарезервированных страниц информация в элементе защита не определена.
Protect
Защита доступа страницы в регионе. Этот член является одним из значений, перечисленных для элемента AllocationProtect.
Type
Тип страниц в регионе. Определены следующие типы.
Тип Смысл

MEM_IMAGE
0x1000000
Указывает, что страницы памяти в пределах региона сопоставляются в представление изображения раздела.

MEM_MAPPED
0x40000
Указывает, что страницы памяти в пределах региона сопоставляются в представление раздела.

MEM_PRIVATE
0x20000
Указывает на страницах памяти в пределах частного региона (что не разделяется другими процессами).
Замечания
Чтобы позволить отладчику отладить цель, которая используется на различной архитектуре (32-битовый против 64-битового), используйте одну из явных форм этой структуры.

Копия
typedef struct _MEMORY_BASIC_INFORMATION32 {
    DWORD BaseAddress;
    DWORD AllocationBase;
    DWORD AllocationProtect;
    DWORD RegionSize;
    DWORD State;
    DWORD Protect;
    DWORD Type;
} MEMORY_BASIC_INFORMATION32, *PMEMORY_BASIC_INFORMATION32;

typedef struct DECLSPEC_ALIGN(16) _MEMORY_BASIC_INFORMATION64 {
    ULONGLONG BaseAddress;
    ULONGLONG AllocationBase;
    DWORD     AllocationProtect;
    DWORD     __alignment1;
    ULONGLONG RegionSize;
    DWORD     State;
    DWORD     Protect;
    DWORD     Type;
    DWORD     __alignment2;
} MEMORY_BASIC_INFORMATION64, *PMEMORY_BASIC_INFORMATION64;

Требования

Минимальная поддерживаемая клиента
Windows 2000 Professional
Минимальный поддерживаемый сервер
Windows 2000 Server
Заголовок
Windows.pas

Комментариев нет:

Отправить комментарий