1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
Доброго времени суток=) Требуется составить карту виртуальной памяти для любого процесса.. Соответственно, буду использовать функцию VirtualQuery().. Ну а перед этим хочу прояснить для себя то, что не ясно..
Объясните пожалуйста, откуда взять 1-й параметр(указатель на адрес)...и как учесть, что карта составляется для какого-то процесса (ведь в задании говорится о составлении карты виртуальной памяти для любого процесса)?
могу предположить, что не осуществляется переход к очередной странице в области...
Естественно... В той программе, ссылка на которую есть в предыдущем посте, ты из всего, что нужно, реализовала только функциональность VMQueryHelp (частично), а нужно еще и вызывать эту самую VMQuery, и из нее - VMQueryHelp...
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++) {
// 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); } }