Ticket #19355

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

Eröffnet am: 2009-10-27 13:40 Letztes Update: 2009-10-28 22:54

Auswertung:
Verantwortlicher:
Typ:
Status:
Offen [Owner assigned]
Komponente:
(Keine)
Meilenstein:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
Keine

Details

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

Ticket-Verlauf (2/2 Historien)

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

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

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

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

Dateianhangliste

Keine Anhänge

Bearbeiten

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