2011-02-16 28 views
2

我正在使用VirtualQuery来通过我的应用程序的虚拟空间。但我想识别应用程序分配的所有内容,而不仅仅是我的exe文件 - 像SysInternals的VMmap应用程序 - 我需要知道哪些页面属于哪个文件(我需要识别为我的应用程序和dll分配的页面)。如何实现这一目标?使用VirtualQuery来找出哪个“文件”使用内存中的某个页面

回答

2

您可以使用带有TH32CS_SNAPMODULE的CreateToolhelp32Snapshot检索模块基址和大小。对于堆,您可以使用GetProcessHeaps()和HeapWalk()来获得不同的堆区(提交和保留)。

其他东西(线程堆栈,映射内存)似乎很难检索。

相关问题