2016-01-03 99 views
1

我在WinAPI中做了一些嘗試。我的操作系統是Win7 x64 P1 Ultimate。當我試圖在這之後沒有模塊被證明列表的過程,我發現所有的模塊,我想要的模塊是32位模塊,所以我代替爲什麼TH32CS_SNAPMODULE32不能單獨工作?

TH32CS_SNAPMODULE 

隨着

TH32CS_SNAPMODULE32 

。所以我決定使用位運算符來嘗試,看起來像如果我送參數這樣

TH32CS_SNAPMODULE32 | TH32CS_SNAPMODULE 

這工作完全正常,列出所有64位和32位模塊。所以我的問題是爲什麼它不能單獨工作?即使是文檔說它可以TH32CS_SNAPMODULE一起使用。從MSDN

TH32CS_SNAPMODULE32

引用包括在所述快照中th32ProcessID指定的進程的所有32位模塊從一個64位的過程調用時。該標誌可以與TH32CS_SNAPMODULE或TH32CS_SNAPALL組合使用。如果函數失敗並返回ERROR_BAD_LENGTH,則重試該函數直至成功。

+1

聽起來像文件是錯誤的(或至少措辭不佳)。 – immibis

回答

1

該文件無可否認令人困惑。這意味着TH32CS_SNAPMODULE32標記必須與另一個標記組合,但只能將TH32CS_SNAPMODULETH32CS_SNAPALL組合。

這只是稍微好一點的措辭在這個官方的回答TH32CS_SNAPMODULE vs TH32CS_SNAPMODULE32 - 注意「額外」:

基於來自開發團隊的反饋,TH32CS_SNAPMODULE將 您提供本機模塊。您也可以使用TH32CS_SNAPMODULE32和 TH32CS_SNAPMODULE以在64位框中獲取32位模塊。它存在以表示您希望額外的 32位模塊狀態。