IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Карта виртуального адресного пространства, VC++ 2008 EE
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Доброго времени суток=)
Требуется составить карту виртуальной памяти для любого процесса..
Соответственно, буду использовать функцию VirtualQuery()..
Ну а перед этим хочу прояснить для себя то, что не ясно..

Итак..
   
DWORD VirtualQuery(
LPCVOID lpAddress,
PMEMORY_BASIC_INFORMATION lpBuffer,
DWORD dwLength
);


Объясните пожалуйста, откуда взять 1-й параметр(указатель на адрес)...и как учесть, что карта составляется для какого-то процесса (ведь в задании говорится о составлении карты виртуальной памяти для любого процесса)?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
могу предположить, что не осуществляется переход к очередной странице в области...
Естественно... В той программе, ссылка на которую есть в предыдущем посте, ты из всего, что нужно, реализовала только функциональность VMQueryHelp (частично), а нужно еще и вызывать эту самую VMQuery, и из нее - VMQueryHelp...
  while (fOk) {

VMQUERY vmq;
fOk = VMQuery(hProcess, pvAddress, &vmq);

if (fOk) {
// Construct the line to be displayed, and add it to the list box.
TCHAR szLine[1024];
ConstructRgnInfoLine(hProcess, &vmq, szLine, sizeof(szLine));
ListBox_AddString(hwndLB, szLine);

if (fExpandRegions) {
for (DWORD dwBlock = 0; fOk && (dwBlock < vmq.dwRgnBlocks);
dwBlock++) {

ConstructBlkInfoLine(&vmq, szLine, sizeof(szLine));
ListBox_AddString(hwndLB, szLine);

// Get the address of the next region to test.
pvAddress = ((PBYTE) pvAddress + vmq.BlkSize);
if (dwBlock < vmq.dwRgnBlocks - 1) {
// Don't query the memory info after the last block.
fOk = VMQuery(hProcess, pvAddress, &vmq);
}
}
}

// Get the address of the next region to test.
pvAddress = ((PBYTE) vmq.pvRgnBaseAddress + vmq.RgnSize);
}
}
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 15.05.2024 3:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name