Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Th32HeapID: DWORD;// Идентификатор кучи в нем





end;

■ Поле dwSize определяет размер записи и поэтому должно быть инициализировано значением SizeOf (THeapEntry32) до использования этой записи.

§ В поле hHandle содержится дескриптор блока кучи.

§ Поле dwAddress представляет собой линейный адрес начала блока кучи.

§ В поле dwBlockSize содержится размер в байтах этого блока кучи.

§ В поле dwFlags хранится признак, который определяет тип блока кучи. Это поле может иметь одно из значений:

LF32_FIXED – блок памяти имеет фиксированное местонахождение

LF32_FREE – блок памяти не используется

LF32 MOVEABLE – блок памяти можно перемещать

  • Поле dwLockCount представляет собой счетчик блокировок блока памяти. Это значение увеличивается на единицу при каждом вызове процессом функции GlobalLock() или LосаlLоск().

§ Поле dwResvd зарезервировано в данный момент и не должно использоваться.

§ В поле th32ProcessID содержится идентификатор процесса-владельца.

§ Поле th32HeapID является идентификатором кучи, которой принадлежит блок.

Поскольку до составления списка блоков кучи вам придется сначала составить список куч, код опроса блоков кучи немного сложнее. В приведеннм ниже методе TDetailForra.WalkHeaps() вложены Heap32First()/Heap32Next() внутрь цикла Heap32ListFirst()/Heap32ListNext(). В этом методе вводится дополнительный уровень сложности путем добавления указателя на объекты типа записи PHeapEntry32 в ту часть массива DetailLists, которая относится к списку куч

procedure WalkHeaps;

{ Использует функции ToolHelp32 для составления списка куч }

var

HL: THeapList32;

НЕ: THeapEntry32;

РНЕ: PHeapEntry32;

begin

DetailLists[ltHeap].Clear;

HL.dwSize:= SizeOf(HL);

HE.dwSize:=SizeOf(HE);

If Heap32ListFirst(FCurSnap, HL) then

repeat

if Heap32First(HE, HL.th32ProcessID, HL.th32HeapID) then

repeat

Date: 2015-11-14; view: 243; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию