为什么TH32CS_SNAPMODULE32不';你不能一个人工作吗?

为什么TH32CS_SNAPMODULE32不';你不能一个人工作吗?,c,winapi,C,Winapi,我在试验WinAPI中的一些东西。我的操作系统是Win7 x64 P1 Ultimate。当我试图列出一个进程的所有模块时,我发现我想要的模块是一个32位模块,所以我更换了它 TH32CS_SNAPMODULE 与 在此之后,没有显示任何模块。所以我决定尝试使用位运算符,看起来如果我像这样发送参数 TH32CS_SNAPMODULE32 | TH32CS_SNAPMODULE 它工作得非常好,列出了所有64位和32位模块。所以我的问题是为什么它不能单独工作?甚至文档也说它可以与TH32CS\

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

TH32CS_SNAPMODULE

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

TH32CS_SNAPMODULE32 | TH32CS_SNAPMODULE
它工作得非常好,列出了所有64位和32位模块。所以我的问题是为什么它不能单独工作?甚至文档也说它可以与TH32CS\U SNAPMODULE一起使用

引用自MSDN

TH32CS_SNAPMODULE32

从64位进程调用时,包括快照中th32ProcessID中指定的进程的所有32位模块。此标志可与TH32CS_SNAPMODULE或TH32CS_SNAPALL结合使用。如果函数失败并出现错误\u BAD\u LENGTH,请重试该函数,直到成功


无可否认,这些文件令人困惑。它的意思是
TH32CS\u SNAPMODULE32
标志必须与另一个标志组合,但只能与
TH32CS\u SNAPMODULE
TH32CS\u SNAPALL
组合

这个官方答案的措辞稍微好一点——注意“额外的””:

根据开发团队的反馈,TH32CS_SNAPMODULE将 为您提供本机模块。您可以使用 TH32CS_SNAPMODULE在64位机箱上也可获得32位模块。信息技术 存在以指示您需要额外的32位模块状态


听起来文档是错误的(或者至少措辞很糟糕)。
TH32CS_SNAPMODULE32 | TH32CS_SNAPMODULE