我使用VirtualQuery迭代我的进程内存,我想知道一定的内存范围是由谁拥有的。可执行文件或者其他一些dll,并获取它的名称。
有没有办法可以找到答案?
答案 0 :(得分:5)
是的,Windows中的模块句柄值只是模块VM分配的基址。
因此,您可以将MEMORY_BASIC_INFORMATION.AllocationBase转换为(HMODULE)并将其传递给GetModuleFileName()。当然,请记住,这仅适用于为从可执行文件加载的代码进行的分配。您通常会遇到许多使用VirtualQuery()的VM分配,这些分配是数据或堆栈。他们没有所有者,也没有与模块相关联。