A non-topmost window can be displayed above a window that has the WS_EX_TOPMOST extended window style in Windows 7 or in Windows Server 2008 R2

Applies to: Windows Server 2008 R2 EnterpriseWindows Server 2008 R2 DatacenterWindows Server 2008 R2 for Itanium-Based Systems More

Symptoms


Assume that you run an application that creates a topmost window by using the WS_EX_TOPMOST extended window style on a computer that is running Windows 7 or Windows Server 2008 R2. Then, the application calls the SetWindowPos function together with an hwndInsertAfter parameter whose value is set to HWND_NOTOPMOST in order to remove the WS_EX_TOPMOST extended window style from the window. In this situation, the window that no longer has the WS_EX_TOPMOST extended window style can be displayed incorrectly above other windows that have the WS_EX_TOPMOST extended window style.

Notes
  • The WS_EX_TOPMOST extended window style specifies that a window that is created that has this style should be displayed above all non-topmost windows, even when the window is deactivated. An application can use the SetWindowPos function to add or remove this extended window style.
  • When an application calls the SetWindowPos function on a window together with the hwndInsertAfter parameter set to HWND_NOTOPMOST, the WS_EX_TOPMOST extended window style is removed from the specified window and any windows that it owns unless the SWP_NOOWNERZORDER flag is set when the SetWindowPos function is called.

Cause


This issue occurs because the z-order position of the windows that are owned by the window that is specified in the SetWindowPos function call is not updated when the WS_EX_TOPMOST extended window style is removed. Therefore, when the computer calculates the new z-order position of a non-topmost window, the last topmost window is returned incorrectly. Because of this behavior, non-topmost windows can be displayed above topmost windows.

Resolution


Hotfix information

Important This hotfix has been re-released to address an issue in which the digital signature on files produced and signed by Microsoft will expire prematurely, as described in Microsoft Security Advisory 2749655.

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing the problem described in this article. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft website: Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.

Prerequisites

To apply this hotfix, you must be running Windows 7 Service Pack 1 (SP1) or Windows Server 2008 R2 SP1.

For more information about how to obtain a Windows 7 or Windows Server 2008 R2 service pack, click the following article number to view the article in the Microsoft Knowledge Base:

976932 Information about Service Pack 1 for Windows 7 and for Windows Server 2008 R2

Registry information

To apply this hotfix, you do not have to make any changes to the registry.

Restart requirement

You must restart the computer after you apply this hotfix.

Hotfix replacement information

This hotfix does not replace a previously released hotfix.

File information

The global version of this hotfix installs files that have the attributes that are listed in the following tables. The dates and the times for these files are listed in Coordinated Universal Time (UTC). The dates and the times for these files on your local computer are displayed in your local time together with your current daylight saving time (DST) bias. Additionally, the dates and the times may change when you perform certain operations on the files.
Windows 7 and Windows Server 2008 R2 file information notes
Important Windows 7 hotfixes and Windows Server 2008 R2 hotfixes are included in the same packages. However, hotfixes on the Hotfix Request page are listed under both operating systems. To request the hotfix package that applies to one or both operating systems, select the hotfix that is listed under "Windows 7/Windows Server 2008 R2" on the page. Always refer to the "Applies To" section in articles to determine the actual operating system that each hotfix applies to.
  • The files that apply to a specific product, SR_Level (RTM, SPn), and service branch (LDR, GDR) can be identified by examining the file version numbers as shown in the following table:
    VersionProductMilestoneService branch
    6.1.760
    1.22xxx
    Windows 7 and Windows Server 2008 R2SP1LDR
  • The MANIFEST files (.manifest) and the MUM files (.mum) that are installed for each environment are listed separately in the "Additional file information for Windows 7 and for Windows Server 2008 R2" section. MUM and MANIFEST files, and the associated security catalog (.cat) files, are extremely important to maintaining the state of the updated component. The security catalog files, for which the attributes are not listed, are signed with a Microsoft digital signature.
For all supported x86-based versions of Windows 7
File nameFile versionFile sizeDateTimePlatform
Win32k.sys6.1.7601.220612,354,17619-Jul-201214:58x86
For all supported x64-based versions of Windows 7 and of Windows Server 2008 R2
File nameFile versionFile sizeDateTimePlatform
Win32k.sys6.1.7601.220613,151,36019-Jul-201215:25x64
For all supported IA-64-based versions of Windows Server 2008 R2
File nameFile versionFile sizeDateTimePlatform
Win32k.sys6.1.7601.220617,449,08819-Jul-201214:53IA-64

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information


For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates

Additional file information

Additional file information for Windows 7 and for Windows Server 2008 R2

Additional files for all supported x86-based versions of Windows 7
File nameUpdate.mum
File versionNot Applicable
File size2,136
Date (UTC)17-Sep-2012
Time (UTC)12:23
PlatformNot Applicable
File nameX86_6955ed7b3079fec14c3f7b9c42f91675_31bf3856ad364e35_6.1.7601.22061_none_c628fcd4c7739a29.manifest
File versionNot Applicable
File size694
Date (UTC)17-Sep-2012
Time (UTC)12:23
PlatformNot Applicable
File nameX86_microsoft-windows-win32k_31bf3856ad364e35_6.1.7601.22061_none_bb4b4dcb1211ecfc.manifest
File versionNot Applicable
File size42,086
Date (UTC)19-Jul-2012
Time (UTC)17:29
PlatformNot Applicable
Additional files for all supported x64-based versions of Windows 7 and of Windows Server 2008 R2
File nameAmd64_3c99383bdab3b2812043655047d0c723_31bf3856ad364e35_6.1.7601.22061_none_14ad20d40a9baa0f.manifest
File versionNot Applicable
File size698
Date (UTC)17-Sep-2012
Time (UTC)12:23
PlatformNot Applicable
File nameAmd64_45fc06894b982fe5c0a4868989038dc3_31bf3856ad364e35_6.1.7601.22061_none_ff6fdb8f32addcfc.manifest
File versionNot Applicable
File size698
Date (UTC)17-Sep-2012
Time (UTC)12:23
PlatformNot Applicable
File nameAmd64_d9e3d12b68934832312f1d4da0eeee58_31bf3856ad364e35_6.1.7601.22061_none_d2efd2a432649ceb.manifest
File versionNot Applicable
File size1,038
Date (UTC)17-Sep-2012
Time (UTC)12:23
PlatformNot Applicable
File nameAmd64_microsoft-windows-win32k_31bf3856ad364e35_6.1.7601.22061_none_1769e94eca6f5e32.manifest
File versionNot Applicable
File size42,090
Date (UTC)19-Jul-2012
Time (UTC)18:19
PlatformNot Applicable
File nameUpdate.mum
File versionNot Applicable
File size2,773
Date (UTC)17-Sep-2012
Time (UTC)12:23
PlatformNot Applicable
File nameWow64_microsoft-windows-win32k_31bf3856ad364e35_6.1.7601.22061_none_21be93a0fed0202d.manifest
File versionNot Applicable
File size4,178
Date (UTC)19-Jul-2012
Time (UTC)17:13
PlatformNot Applicable
Additional files for all supported IA-64-based versions of Windows Server 2008 R2
File nameIa64_52b89d4ebfbaf73ec476d6b850e11c14_31bf3856ad364e35_6.1.7601.22061_none_101da774dac610da.manifest
File versionNot Applicable
File size1,036
Date (UTC)17-Sep-2012
Time (UTC)12:23
PlatformNot Applicable
File nameIa64_microsoft-windows-win32k_31bf3856ad364e35_6.1.7601.22061_none_bb4cf1c1120ff5f8.manifest
File versionNot Applicable
File size42,088
Date (UTC)19-Jul-2012
Time (UTC)18:15
PlatformNot Applicable
File nameUpdate.mum
File versionNot Applicable
File size1,447
Date (UTC)17-Sep-2012
Time (UTC)12:23
PlatformNot Applicable
File nameWow64_microsoft-windows-win32k_31bf3856ad364e35_6.1.7601.22061_none_21be93a0fed0202d.manifest
File versionNot Applicable
File size4,178
Date (UTC)19-Jul-2012
Time (UTC)17:13
PlatformNot Applicable