获取正在运行进程的已分配内存区域

时间:2010-10-27 16:14:22

标签: windows winapi memory process

有谁能告诉我如何使用WinAPI函数内存分配某些进程的内存区域?我想知道每个地区,起始地址,大小和其他一些东西,如保护类型等。

我找不到任何WinAPI功能; - (

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:7)

有些代码可以使用VirtualQueryEx here来强制执行此操作:

MEMORY_BASIC_INFORMATION    mbi;
/* Get maximum address range from system info */
GetSystemInfo(&si);
/* walk process addresses */
lpMem = 0;
while (lpMem < si.lpMaximumApplicationAddress) {
        VirtualQueryEx(...)
        /* increment lpMem to next region of memory */
        lpMem = (LPVOID)((DWORD)lpList->mbi.BaseAddress +
        (DWORD)lpList->mbi.RegionSize);
}