Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Th32HeapID: DWORD;// Идентификатор кучи в нем ⇐ ПредыдущаяСтр 7 из 7 end; ■ Поле dwSize определяет размер записи и поэтому должно быть инициализировано значением SizeOf (THeapEntry32) до использования этой записи. § В поле hHandle содержится дескриптор блока кучи. § Поле dwAddress представляет собой линейный адрес начала блока кучи. § В поле dwBlockSize содержится размер в байтах этого блока кучи. § В поле dwFlags хранится признак, который определяет тип блока кучи. Это поле может иметь одно из значений: LF32_FIXED – блок памяти имеет фиксированное местонахождение LF32_FREE – блок памяти не используется LF32 MOVEABLE – блок памяти можно перемещать
§ Поле 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
|