Microsoft KB Archive/943040

= 32-bit applications may encounter unexpected issues on a computer that is running an x64-based version of Windows Server 2003 because of a registry reflection mechanism limitation =

Article ID: 943040

Article Last Modified on 12/31/2007

-

APPLIES TO


 * Microsoft Windows Server 2003, Datacenter x64 Edition
 * Microsoft Windows Server 2003, Enterprise x64 Edition
 * Microsoft Windows Server 2003, Standard x64 Edition

-



SYMPTOMS
You experience problems when you start a 32-bit program or register 32-bit .dll files on a computer that is running an x64-based version of Windows Server 2003. For example, the programs or .dll files may stop responding. Or, you may be unable to install a program. Additionally, these programs open more than 512 registry handles at the same time.

For example, these problems may occur when you have lots of 32-bit .dll files, and you drag these 32-bit .dll files to an x64-based COM+ package. You expect that the component is registered in the Syswow6432node 32-bit registry entry. Also, you expect that the peer entries are registered in the 64-bit CLSID entries. However, the registry changes under the  registry subkey are registered incorrectly under the 64-bit CLSID entries.

These problems cause the program installation to fail. Therefore, you must add the missing registry key manually. Or, you must register these .dll files by using the Regsvr32.exe utility that is in the SysWOW64 folder.



CAUSE
The Registry Reflection mechanism on the Windows Server 2003 x64-based computer has a limit of 512 handles that can be manipulated at the same time.



Hotfix information
A supported hotfix is now 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 this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next Windows XP service pack that contains this hotfix.

To resolve this problem, submit a request to Microsoft Online Customer Services to obtain the hotfix. To submit an online request to obtain the hotfix, visit the following Microsoft Web site:

http://go.microsoft.com/?linkid=6294451

Note If additional issues occur or 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. To create a separate service request, visit the following Microsoft Web site:

http://support.microsoft.com/contactus/?ws=support

Prerequisites
To install this hotfix, you must have one of the following service packs installed:
 * Windows Server 2003 Service Pack 1
 * Windows Server 2003 Service Pack 2

Restart requirement
You have to restart your computer after you apply this hotfix.

Hotfix replacement information
This hotfix does not replace any other previously released hotfixes.

Registry information
To use this hotfix, you do not have to make any changes to the registry.

File information
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.

Windows Server 2003 with SP2, x64-based versions


STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.



MORE INFORMATION
Registry reflection provides a real-time method to hold the 32-bit and 64-bit sections of the registry always open.

For example, consider a 32-bit program named Example.exe that acts as a 32-bit OLE server and can serve requests from 64-bit clients. Registry reflection makes it possible for the Example.exe program to keep both the 32-bit registry and the 64-bit registry open to handle both 32-bit and 64-bit program calls.

Registry reflection enables two physical copies of the same registry to support concurrent native and WOW64 operations. Most of the keys that are reflected are class keys. Class keys are written with a &quot;last writer wins&quot; philosophy. The handle to the key is closed when either the 32-bit or 64-bit class key is written and closed.

The following list contains some examples of the &quot;last writer wins&quot; philosophy:
 * After you perform a clean installation of an x64-based version of Windows Server 2003, the 64-bit version of WordPad.exe is registered to handle .doc files. The registry reflector copies the .doc registration from the 64-bit registry section into the 32-bit registry section.
 * When you install a 32-bit version of Microsoft Office, Winword.exe is registered to handle .doc files in the 32-bit registry view. The registry reflector copies this information into the 64-bit registry section. Therefore, both 32-bit and 64-bit programs start the 32-bit version of Winword.exe for .doc files.
 * When you install a 64-bit version of Microsoft Office, the 64-bit version of Winword.exe is registered in the 64-bit registry section to handle .doc files. The registry reflector also copies this information into the 32-bit registry section. Therefore, both 32-bit and 64-bit programs start the 64-bit version of Winword.exe for .doc files.

Note Developers can use the RegQueryReflectionKey function to determine the reflection state for a particular key. Developers can use the RegDisableReflectionKey function and the RegEnableReflectionKey function to programmatically disable and enable registry reflection for a particular key.

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 query words: registry reflection WOW6432node 512 limitation

Keywords: kbfix kbexpertiseadvanced kbpubtypekc kbqfe kbhotfixserver KB943040

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.