为什么 TH32CS_SNAPMODULE32 不能单独工作?

2023-12-13

我正在尝试 WinAPI 中的一些东西。我的操作系统是Win7 x64 P1 Ultimate。当我尝试列出进程的所有模块时,我发现我想要的模块是 32 位模块,所以我替换了

TH32CS_SNAPMODULE

With

TH32CS_SNAPMODULE32

此后没有显示任何模块。所以我决定尝试使用按位运算符,看起来如果我发送这样的参数

TH32CS_SNAPMODULE32 | TH32CS_SNAPMODULE

它工作得很好,列出了所有 64 位和 32 位模块。所以我的问题是为什么它不能单独工作?甚至文档也这么说can与一起使用TH32CS_SNAPMODULE.

引用自MSDN

TH32CS_SNAPMODULE32

从 64 位进程调用时,包括快照中 th32ProcessID 中指定的进程的所有 32 位模块。该标志可以与 TH32CS_SNAPMODULE 或 TH32CS_SNAPALL 结合使用。如果函数因 ERROR_BAD_LENGTH 失败,请重试该函数,直到成功。


无可否认,该文档令人困惑。它的意思是说TH32CS_SNAPMODULE32 flag must与另一个标志组合,但是can only与 结合TH32CS_SNAPMODULE or TH32CS_SNAPALL.

这个官方答案的措辞稍微好一点TH32CS_SNAPMODULE 与 TH32CS_SNAPMODULE32- 请注意“extra":

根据开发团队的反馈,TH32CS_SNAPMODULE 将 为您提供本机模块。您可以使用 OR TH32CS_SNAPMODULE32 TH32CS_SNAPMODULE 在 64 位机器上也能获取 32 位模块。它 存在表明您想要extra32 位模块状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 TH32CS_SNAPMODULE32 不能单独工作? 的相关文章

随机推荐