就在确认一下之后,真的:
XP SP3是否实现了在Vista中找到的用户界面特权隔离(UIPI)机制?
我最近收到了一个相当大的应用程序的C++源代码。遗憾的是,这个应用程序的唯一开发人员,自90年代中期开始使用以来,最近去世了,这使我们处于相当紧张的境地,直到我们能够聘请到一个新的开发人员。
最近,用户报告说,该应用程序已经随机停止工作和/或某些以前工作的特性似乎根本没有启动“,尽管没有什么改变我的结局!”“什么都没变”原来是SP3 :)
知道这一点,尽管我不是一个C/C++的家伙,我想我应该看看源代码,看看我是否能找到任何东西(花了大量时间观察防火墙、病毒扫描器和其他外部因素)。
我将一个错误跟踪到对Api函数SendMessage的调用,然后转到MSDN查看。它清楚地说明了"Microsoft及更高版本。消息发送受制于用户界面特权隔离(UIPI)。进程的线程只能在较低或同等完整性级别的进程中向线程的消息队列发送消息。“虽然我不能百分之百肯定,但这似乎确实是一个可能的原因。
干杯!
兰尼。
发布于 2008-11-07 14:09:52
不,XP SP3没有实现任何Vista安全更改,至少与窗口管理器无关。您并没有给出太多的背景信息来帮助您,但是您得到了哪些与SendMessage()相关的错误呢?
SendMessage()是一个非常广泛使用的例程,它只是将一条SendMessage消息发送到一个窗口,因此我希望该错误与收件人窗口如何处理传入消息(或不处理)相关,而不是与SendMessage()本身相关联。与其把SendMessage()看作仅仅是一个Windows函数,还不如把它看作是一个函数,它最终将在任何拥有发送消息的窗口的应用程序中调用进一步的应用程序代码--特别是,来自SendMessage()的返回代码告诉您窗口的应用程序是如何尝试处理消息的。
发布于 2008-11-07 15:38:51
UIPI不会在SendMessage上报告错误--如果您要返回一个错误,那么这是另一种情况。其他评论是对的,UIPI只是在Vista上,除非你试图向某个服务发送消息,否则无论如何你都不会被它咬到。
https://stackoverflow.com/questions/272112
复制相似问题