0

ちょっとした確認の直後:

XP SP3 は、Vista に見られる User Interface Privilege Isolation (UIPI) メカニズムを実装していますか?

人間の興味のための裏話 :) 私は最近、かなり大きなアプリケーションに C++ ソースを渡されました。悲しいことに、このアプリケーションの唯一の開発者は、90 年代半ばに開始されて以来、最近亡くなったため、新しい開発者を雇うことができるまで、かなり厳しい状況に置かれています。

最近、ユーザーは、アプリケーションがランダムに動作を停止した、および/または以前は動作していた特定の機能がまったく起動していないように見えると報告しています。「何も変わっていない」はSP3であることが判明しました:)

これを知っていて、私は C/C++ の専門家ではありませんが、ソースを調べて何かを見つけられるかどうかを確認しようと思いました (ファイアウォール、ウイルス スキャナーなどを調べるのにかなりの時間を費やしたので)。外部要因)。

私は、Api 関数 SendMessage への呼び出しに 1 つのエラーを追跡し、MSDN ドキュメントにアクセスして確認しました。「Microsoft Windows Vista 以降。メッセージ送信は、ユーザー インターフェイス特権の分離 (UIPI) の対象となります。プロセスのスレッドは、整合性レベルが低いか等しいプロセスのスレッドのメッセージ キューにのみメッセージを送信できます。」100% 確実ではありませんが、これが原因である可能性が高いようです。

乾杯!

レニー。

4

2 に答える 2

4

いいえ、XP SP3 は Vista のセキュリティの変更を一切実装していません。少なくともウィンドウ マネージャに関連する変更はありません。参考になる背景をあまり説明していませんが、SendMessage() に関連するエラーはどのようなものでしょうか?

SendMessage() は、Windows メッセージをウィンドウに単純にディスパッチする非常に広く使用されているルーチンであるため、SendMessage() 自体ではなく、受信者ウィンドウが着信メッセージを処理する方法 (または処理しない) にエラーが関連付けられていると予想されます。SendMessage() を単なる Windows 関数と考えるのではなく、メッセージを送信したウィンドウを所有するアプリケーション (特に、 SendMessage() からの戻りコードは、ウィンドウのアプリケーションがメッセージを処理しようとした方法を示しています。

于 2008-11-07T14:09:52.847 に答える
0

UIPI は SendMessage でエラーを報告しません。エラーが返された場合、それは別のものです。そして、他のコメンターは正しいです.UIPIはVistaのみにあり、たとえば、サービスにメッセージを送信しようとしている場合を除き、とにかくこれに悩まされることはありません.

于 2008-11-07T15:38:51.187 に答える