XP SP3中的用户界面权限隔离



经过一点确认后:

XP SP3是否实现Vista中的用户界面权限隔离(UIPI)机制?

人类兴趣的背景故事:)我最近收到了一个相当大的应用程序的C++源代码。不幸的是,这个应用程序的唯一开发者,自90年代中期成立以来,最近去世了,这让我们在聘请新的开发者之前陷入了困境。

最近,用户报告说,该应用程序已随机停止工作,和/或以前工作的某些功能似乎根本没有启动,"尽管没有什么改变我的结局!"。"什么都没变"原来是SP3:)

知道了这一点,尽管我不是一个C/C++的人,但我想我应该看看源代码,看看是否能找到什么(我花了很多时间研究防火墙、病毒扫描仪和其他外部因素)。

我将一个错误追溯到对Api函数SendMessage的调用,然后转到MSDN文档中查看。它明确指出"Microsoft Windows Vista及更高版本。消息发送受用户界面权限隔离(UIPI)约束。进程的线程只能将消息发送到完整性级别较低或相等的进程中的线程的消息队列。"虽然我不能100%确定,但这似乎是一个可能的原因。

干杯!

莱尼。

否,XP SP3没有实现任何Vista安全更改,至少与窗口管理器无关。您实际上并没有提供太多的背景信息来帮助您,但您会得到与SendMessage()相关联的哪种错误?

SendMessage()是一个使用非常广泛的例程,它只是将Windows消息分派到一个窗口,所以我希望错误与接收方窗口处理传入消息的方式(或不处理)有关,而不是与SendMessage(()本身有关。与其把SendMessage()看作只是一个Windows函数,还不如把它看作是一个函数,它最终会在您发送消息的窗口所属的任何应用程序中调用更多的应用程序代码-特别是,SendMessage()的返回代码告诉您窗口的应用程序是如何处理消息的。

UIPI不会在SendMessage上报告错误——如果您返回了错误,那么它就是其他错误。其他评论者是对的,UIPI只在Vista上,除非你试图向服务发送消息,否则你无论如何都不会被这个所困扰

最新更新