Составители:
BYTE cbOverhead;
BYTE iRegionIndex;
WORD wFlags;
union {
struct {
HANDLE hMem;
DWORD dwReserved[ 3 ];
} Block;
struct {
DWORD dwCommittedSize;
DWORD dwUnCommittedSize;
LPVOID lpFirstBlock;
LPVOID lpLastBlock;
} Region;
};
} PROCESS_HEAP_ENTRY;
Поля:
lpData - указатель на блок в куче.
cbData - размер блока в байтах.
cbOverhead - размер данных, в байтах, используемых системой для управления
информацией об элементе кучи. Эти байты добавляются к cbData байтам данных
блока.
iRegionIndex - дескриптор секции кучи, содержащей блок. Куча состоит из одной
или большего числа секций виртуальной
памяти, каждая из которых имеет свой
уникальный индекс. Функция HeapAlloc время от времени использует функцию
VirtualAlloc для распределения дополнительной памяти при возрастании размера
кучи. Менеджер куч воспринимает эти дополнительные области как отдельные
секции.
wFlags - множество битовых флагов, специфицирующих свойства блока кучи:
PROCESS_HEAP_REGION, PROCESS_HEAP_UNCOMMITTED_RANGE,
PROCESS_HEAP_ENTRY_BUSY, PROCESS_HEAP_ENTRY_MOVEABLE,
PROCESS_HEAP_ENTRY_DDESHARE. См. MSDN.
Block - эта структура имеет смысл, только если установлены оба флага
PROCESS_HEAP_ENTRY_BUSY и PROCESS_HEAP_ENTRY_MOVEABLE в поле
wFlags.
Поля структуры Block:
Поле Описание
hMem Дескриптор распределенного, перемещаемого блока.
dwReserved Зарезервировано; не используется.
Region - эта структура имеет смысл, только если установлен флаг
PROCESS_HEAP_REGION в поле wFlags.
Поля структуры Region:
Поле Описание
dwCommittedSize
задает число байт в свободных блоках, занятых блоки или
управляющих структурах кучи.
dwUnCommittedSize задает число байт, освобожденных на данный момент
в куче.
BYTE cbOverhead; BYTE iRegionIndex; WORD wFlags; union { struct { HANDLE hMem; DWORD dwReserved[ 3 ]; } Block; struct { DWORD dwCommittedSize; DWORD dwUnCommittedSize; LPVOID lpFirstBlock; LPVOID lpLastBlock; } Region; }; } PROCESS_HEAP_ENTRY; Поля: lpData - указатель на блок в куче. cbData - размер блока в байтах. cbOverhead - размер данных, в байтах, используемых системой для управления информацией об элементе кучи. Эти байты добавляются к cbData байтам данных блока. iRegionIndex - дескриптор секции кучи, содержащей блок. Куча состоит из одной или большего числа секций виртуальной памяти, каждая из которых имеет свой уникальный индекс. Функция HeapAlloc время от времени использует функцию VirtualAlloc для распределения дополнительной памяти при возрастании размера кучи. Менеджер куч воспринимает эти дополнительные области как отдельные секции. wFlags - множество битовых флагов, специфицирующих свойства блока кучи: PROCESS_HEAP_REGION, PROCESS_HEAP_UNCOMMITTED_RANGE, PROCESS_HEAP_ENTRY_BUSY, PROCESS_HEAP_ENTRY_MOVEABLE, PROCESS_HEAP_ENTRY_DDESHARE. См. MSDN. Block - эта структура имеет смысл, только если установлены оба флага PROCESS_HEAP_ENTRY_BUSY и PROCESS_HEAP_ENTRY_MOVEABLE в поле wFlags. Поля структуры Block: Поле Описание hMem Дескриптор распределенного, перемещаемого блока. dwReserved Зарезервировано; не используется. Region - эта структура имеет смысл, только если установлен флаг PROCESS_HEAP_REGION в поле wFlags. Поля структуры Region: Поле Описание задает число байт в свободных блоках, занятых блоки или dwCommittedSize управляющих структурах кучи. dwUnCommittedSize задает число байт, освобожденных на данный момент в куче.