Статья: Работа с процессами в С/С++. Основные приемы
//этот код я привел, чтобы стало ясно
//как получить данные по блокам
//но он жрет много времени
//так что я его закомментирую - если вам интересно
//можетепогонять...
/*bIsokHeap = Heap32First(&HpEntry, PID, HpLst.th32HeapID);
while(bIsokHeap)
{
//Выводимнемногоинформации
printf("%u n", HpEntry.dwBlockSize);
//Шагаемдальше
bIsokHeap = Heap32Next(&HpEntry);
}*/
//выводим инфу о куче в общем
printf("%u n", HpLst.dwSize);
//шагаемдальше
bIsok = Heap32ListNext(pSnapHeaps, &HpLst);
}
CloseHandle(pSnapHeaps);
return 1;
}
Нувот, теперьтокаосталосьнаписатьоструктурах THREADENTRY32, HEAPENTRY32 и HEAPLIST32:
typedef struct tagTHREADENTRY32{
DWORD dwSize; //размерструктуры
DWORD cntUsage; //числоссылок
DWORD th32ThreadID; //идентификатор
DWORD th32OwnerProcessID; //родительский процесс
LONG tpBasePri; //основной приоритет (при инициализации)
LONG tpDeltaPri; //изменение приоритета