Using the UIPIEnableStandardMsgs Fix
Published: June 11, 2010
Updated: June 11, 2010
Applies To: Windows 7, Windows Vista
This section includes information about using the UIPIEnableStandardMsgs compatibility fix, including the usage and API-related information.
The User Interface Process Isolation (UIPI) feature blocks Windows® messages from being delivered from less-trusted processes to more-trusted processes. Messages with a value less than WM_USER (0x0400) can pass through this filter, while other messages that are not included in the filter's pre-defined list, or are coming from less-trusted processes, can be removed and never delivered. This compatibility fix allows you to add additional messages to the pre-defined list of Windows messages, allowing the messages to pass through the filter successfully. You might need to use this fix if:
- You are communicating between two processes by using Windows messages.
- You are using Windows hooks to receive notifications from other processes, which are delivered via Windows messages.
Investigating the Issue
Initially, you must determine if the two application processes are running at different integrity levels. You can view this information in the Integrity column of the Process Explorer tool. Next, you must determine that Windows messages are the source of the failure, which you can examine by using the Spy++ utility that is distributed with Microsoft® Visual Studio®. Be sure to note the problematic Windows message because you will need to know the message number in order to configure this compatibility fix properly.
None. The window message filter is configured when the application loads.
UIPIEnableStandardMsgs Command-Line Options
The UIPIEnableStandardMsgs compatibility fix uses the following syntax to specify the matching criteria.
msg1 msg2 msg3...
The messages are added in decimal-format and are space-delimited.
|Many tools, such as Spy++, will show the Windows messages in hexadecimal format. You must convert the hexadecimal values to decimal format before entering the values into this command-line option.|
Included and Excluded Modules
The following table provides details for the modules that are included and excluded by the UIPIEnableStandardMsgs compatibility fix.
|Module name||Included or excluded|
Fixing Your Code
You have two options to fix this code. First, you can update the applications to use a mechanism other than Windows messages for communication. This enables you to set up security-enabled cross-process communication. Alternately, you can call the ChangeWindowMessageFilter API directly, which is what this compatibility fix does.