枚举已加载特定 DLL 的进程

Enumerate processes that have loaded a specific DLL

本文关键字:DLL 进程 加载 枚举      更新时间:2023-10-16

我需要获取具有特定DLL(d3d9)的进程列表。我目前正在通过在每个进程上调用 CreateToolhelp32Snapshot 来获取其模块列表并将模块名称与 "d3d9.dll" 进行比较。但是,这不适用于 64 位进程,因为CreateToolhelp32Snapshot失败(我的应用程序是 32 位)。有没有办法在不运行单独的 64 位进程来列出模块的情况下实现这一点?

有没有办法在不运行单独的 64 位进程来列出模块的情况下实现这一点?

不,没有,至少不使用Win32。您无法使用 Win32 函数从 WOW64 模拟器内部获取所需的信息。我相信有未记录的本机 API 函数可以满足您的要求,但我永远不会推荐这样的解决方案。您应该使用 64 位进程解决此问题。