待辦事項 #19355

DllMain() 内での SendMessageTimeout() の使用で問題の起こるケース

啟用日期: 2009-10-27 13:40 最後更新: 2009-10-28 22:54

回報者:
負責人:
類型:
狀態:
開啟 [Owner assigned]
元件:
(無)
里程碑:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
檔案:

細節

オリジナルの窓使いの憂鬱からのバグなので申し訳ないのですが、 DllMain() 内での SendMessageTimeout() の使用で問題の起こるケースがあるようです。 詳しくは以下のリンクをご覧ください。

Ticket History (2/2 Histories)

2009-10-27 13:40 Updated by: ganaware
  • New Ticket "DllMain() 内での SendMessageTimeout() の使用で問題の起こるケース" created
2009-10-28 22:54 Updated by: gimy
評語

お知らせありがとうございます。

YAMY はユーザーモードフックに置き換えた際に EXE-DLL 間の notify を原則メールスロット経由に変更しました。例外として(保護モードのIEのような)低整合性レベルのアプリの場合だけは SendMessageTimeout() を使っています。これは低整合性レベルアプリが書き込めるようにメールスロットのアクセス制御を設定しようとしても上手くいかなかったためです。

この問題自体は以前の記事 http://d.hatena.ne.jp/NyaRuRu/20051229/p1 を拝見して知っていたため、低整合性レベルアプリの場合は Notify::Type_threadDetach を投げないようにしています。このため DllMain から SendMessageTimeout() を呼びだすことはなくなっているはずです。ただし、それと引き換えに「低整合性レベルアプリのデタッチが行われない」という問題が生じており、こちらはまだ解決できていません。

Attachment File List

No attachments

編輯

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登入