Ticket #19355

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

Open Date: 2009-10-27 13:40 Last Update: 2009-10-28 22:54

Reporter:
Owner:
Type:
Status:
Open [Owner assigned]
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None

Details

オリジナルの窓使いの憂鬱からのバグなので申し訳ないのですが、 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
Comment

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

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

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

Attachment File List

No attachments

Edit

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