Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

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


View products that this article applies to.

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 HKEY_CLASSES_ROOT\CLSID 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.

↑ Back to the top


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.

↑ Back to the top


Resolution

Hotfix information

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 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 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 Web site: 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 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 SP1, x64-based versions
Collapse this tableExpand this table
File nameFile versionFile sizeDateTimePlatformSP requirementService branch
Advapi32.dll5.2.3790.30641,064,44826-Dec-200721:55x64SP1Not applicable
Wow64.dll5.2.3790.3064249,85626-Dec-200721:55x64SP1Not applicable
Wadvapi32.dll5.2.3790.3064620,54426-Dec-200721:55x86SP1WOW
Windows Server 2003 with SP2, x64-based versions
Collapse this tableExpand this table
File nameFile versionFile sizeDateTimePlatformSP requirementService branch
Advapi32.dll5.2.3790.42111,065,98426-Dec-200722:02x64SP2Not applicable
Wow64.dll5.2.3790.4211249,85626-Dec-200722:02x64SP2Not applicable
Wadvapi32.dll5.2.3790.4211619,00826-Dec-200722:02x86SP2WOW

↑ Back to the top


Status

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

↑ Back to the top


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 "last writer wins" 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 "last writer wins" 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

↑ Back to the top


Keywords: KB943040, kbhotfixserver, kbqfe, kbpubtypekc, kbexpertiseadvanced, kbfix, kbautohotfix

↑ Back to the top

Article Info
Article ID : 943040
Revision : 5
Created on : 12/31/2007
Published on : 12/31/2007
Exists online : False
Views : 265