MORE INFORMATION
Running 32-bit programs
The WOW64 subsystem enables 32-bit programs to run without
modification on the x64-based versions of Windows Server 2003 and of Windows XP
Professional x64 Edition. The WOW64 subsystem does this by creating a 32-bit
environment on the x64-based versions of Windows Server 2003 and of Windows XP
Professional x64 Edition. For more information about the WOW64 subsystem, see
the "Running 32-bit Applications" topic in the 64-Bit Windows section of the
Microsoft Platform SDK documentation. To view this document, visit the
following Microsoft Web site:
back to the
topProgram performance considerations
The WOW64 subsystem creates a 32-bit environment on the x64-based
versions of Windows Server 2003 and of Windows XP Professional x64 Edition.
Some 32-bit programs may run slower on these operating systems than they would
on 32-bit versions of Windows Server 2003 and of Windows XP. For example, a
32-bit program might run slower on Windows XP Professional x64 Edition than it
would on Microsoft Windows XP Professional. Alternatively, some 32-bit programs
that require lots of memory may exhibit increased performance on the x64-based
versions of Windows Server 2003 and of Windows XP Professional x64 Edition.
This performance increase occurs because the x64-based versions of Windows
Server 2003 and of Windows XP Professional x64 Edition support more physical
memory than the 32-bit versions of Windows Server 2003 and of Windows XP
Professional.
For more information about the differences in memory
management between the 64-bit and 32-bit versions of Windows, see the "Virtual
Address Space" topic in the About Memory Management section of the Microsoft
Platform SDK documentation. To view this document, visit the following
Microsoft Web site:
back to the
topRestrictions of the WOW64 subsystem
The WOW64 subsystem does not support the following programs:
- Programs that are compiled for 16-bit operating
systems
- Kernel-mode programs that are compiled for 32-bit operating
systems
back to the
top16-bit programs
The x64-based versions of Windows Server 2003 and of Windows XP
Professional x64 Edition do not support 16-bit programs or 16-bit program
components. The software emulation that is required to run 16-bit programs on
the x64-based version of Windows Server 2003 or of Windows XP Professional x64
Edition would significantly decrease the performance of those
programs.
A 16-bit installer is frequently used to install and
configure a 32-bit program. Additionally, some 32-bit programs require 16-bit
components to run correctly. Although 32-bit programs that require 16-bit
components might run correctly after they are installed, you cannot use the
16-bit installer to install a 32-bit program. Programs that require 16-bit
components cannot run on x64-based versions of Windows Server 2003 and of
Windows XP Professional x64 Edition.
If a 32-bit program that requires
16-bit components tries to run a 16-bit file or component, the 32-bit program
will log an error message in the System log. The operating system will then let
the 32-bit program handle the error.
To determine whether a program
requires a 16-bit component, install and run the program. If the program
generates an error message, contact the manufacturer of the program for an
update that is compatible with the x64-based versions of Windows Server 2003
and of Windows XP Professional x64 Edition.
back to the top32-bit drivers
The x64-based versions of Windows Server 2003 and of Windows XP
Professional x64 Edition do not support 32-bit drivers. All hardware device
drivers and program drivers must be compiled specifically for the x64-based
version of Windows Server 2003 and of Windows XP Professional x64
Edition.
If a 32-bit program tries to install a 32-bit driver on a
computer that is running an x64-based version of Windows Server 2003 SP1 or of
Windows XP Professional x64 Edition, the installation of the driver fails. When
this behavior occurs, the x64-based version of Windows Server 2003 SP1 or of
Windows XP Professional x64 Edition reports an error to the 32-bit
program.
If a 32-bit program tries to register a 32-bit driver for
automatic startup on a computer that is running an x64-based version of Windows
Server 2003 or of Windows XP Professional x64 Edition, the bootstrap loader on
the computer recognizes that the 32-bit driver is not supported. The x64-based
version of Windows Server 2003 or of Windows XP Professional x64 Edition does
not start the 32-bit driver, but does start the other registered
drivers.
To determine whether a program requires a 32-bit driver,
install and run the program. If the program generates an error message, contact
the manufacturer of the program for an update that is compatible with the
x64-based versions of Windows Server 2003 and of Windows XP Professional x64
Edition.
back to the
topAdditional considerations
Registry and file redirection
The WOW64 subsystem isolates 32-bit binaries from 64-bit binaries
by redirecting registry calls and some file system calls. The WOW64 subsystem
isolates the binaries to prevent a 32-bit binary from accidentally accessing
data from a 64-bit binary. For example, a 32-bit binary that runs a .dll file
from the %systemroot%\System32 folder might accidentally try to access a 64-bit
.dll file that is not compatible with the 32-bit binary. To prevent this, the
WOW64 subsystem redirects the access from the %systemroot%\System32 folder to
the %systemroot%\SysWOW64 folder. This redirection prevents compatibility
errors because it requires the .dll file to be specifically designed to work
with 32-bit programs.
For more information about file system and
registry redirection, see the "Running 32-bit Applications" topic in the 64-Bit
Windows section of the Microsoft Platform SDK documentation. To view this
document, visit the following Microsoft Web site:
The WOW64 subsystem redirects 32-bit binary calls without
requiring changes to the 32-bit binaries. However, you may see evidence of this
redirection when you perform some tasks. For example, if you type a
command-line script at a 64-bit command prompt, the command prompt may not be
able to access 32-bit programs in the Program Files folder. The WOW64 subsystem
redirects and installs 32-bit programs in the Program Files (x86) folder. To
access the correct folder, you must change the command-line script.
Alternatively, you must type the command-line script at a 32-bit command
prompt. The 32-bit command prompt automatically redirects file system calls to
the correct 32-bit directory.
To start a 32-bit command prompt, follow
these steps:
- Click Start, click Run,
type
%windir%\SysWoW64\cmd.exe,
and then click OK.
back to the
topVersion check
Some 32-bit programs examine the version information of the
operating system. Many 32-bit programs that perform this check do not recognize
the x64-based versions of Windows Server 2003 or of Windows XP Professional x64
Edition as compatible operating systems. When this behavior occurs, the 32-bit
program will generate a version check error, and then close. If this behavior
occurs, contact the manufacturer of the 32-bit program for an update that is
compatible with the x64-based versions of Windows Server 2003 and of Windows XP
Professional x64 Edition.
back to the
topThe Microsoft .NET Framework
A program that is compiled with the Microsoft .NET Framework will
run as a 32-bit program in the WOW64 subsystem if the following conditions are
true:
- The program has the ILONLY bit set in the header
information.
- The program was compiled with the Microsoft .NET Framework
1.1.
If the program does not have the ILONLY bit set in the header
information, or if the program was compiled with the Microsoft .NET Framework
version 2.0, the program will run as a native 64-bit
program.
back to the
topOpenGL
The x64-based versions of Windows Server 2003 and of Windows XP
Professional x64 Edition do not include an OpenGL graphics driver. Contact the
manufacturer of the device for a driver that is compatible with the x64-based
versions of Windows Server 2003 and of Windows XP Professional x64
Edition.
back to the
topMicrosoft Management Console (MMC)
The x64-based versions of Windows Server 2003 and of Windows XP
Professional x64 Edition use the 64-bit version of Microsoft Management Console
(MMC) to run various snap-ins. However, you may occasionally require the 32-bit
version of MMC to run snap-ins in the WOW64 subsystem. For more information
about the behavior of MMC on the x64-based versions Windows Server 2003 and of
Windows XP Professional x64 Edition, see the "Running 32-bit and 64-bit
Snap-ins in 64-bit Windows" topic in the Using MMC 2.0 section of the Microsoft
Platform SDK documentation. To view this document, visit the following
Microsoft Web site:
back to the
topItanium considerations
The following sections briefly describe the considerations and the
limitations that are specific to 32-bit programs that run on the Itanium-based
versions of Microsoft Windows Server 2003 and of Microsoft Windows
XP.
back to the
topIntel Architecture 32-bit Execution Layer (IA-32 EL)
The Itanium-based versions of Microsoft Windows Server 2003 with
Service Pack 1 (SP1) and of Microsoft Windows XP use the Intel Architecture
32-bit Execution Layer (IA-32 EL) to support 32-bit programs. In earlier
Itanium-based versions of Microsoft Windows Server 2003 and of Windows XP,
these programs are supported by the WOW64 subsystem. The WOW64 subsystem uses
special hardware in the CPU to run x86 instructions for 32-bit programs.
However, the IA-32 EL translates x86 instructions for 32-bit programs into
comparable instructions for the Itanium-based version of Windows Server 2003
and Windows XP. The IA-32 EL translates the x86 instructions for 32-bit
programs in native 64-bit mode, and then lets the WOW64 subsystem run 32-bit
programs on the Itanium-based CPU hardware.
Running a 32-bit program
on the Itanium-based CPU hardware can increase the performance of the 32-bit
program. You may experience increased performance even though some overhead
occurs when the IA-32 EL translates instructions between the 32-bit and 64-bit
instruction sets. The IA-32 EL also offers many features to enhance the
performance of the 32-bit program. For example, the IA-32 EL can cache the
instructions that have already been translated. This will increase the
performance of a 32-bit program that is currently running.
For more
information about the IA-32 EL, visit the following Intel Web
site:
http://www.intel.com/cd/software/products/asmo-na/eng/219773.htm Microsoft provides third-party
contact information to help you find technical support. This contact
information may change without notice. Microsoft does not guarantee the
accuracy of this third-party contact information.
back to the
topMemory management
On the Itanium-based versions of Microsoft Windows Server 2003 and
of Windows XP, the following memory manager features are not supported for
32-bit programs:
- Scatter/gather Input/Output (IO)
For more information, click the following article number to view the article in
the Microsoft Knowledge Base: 160606
Performance Enhancements for SQL Server Under Windows NT
- Address Windowing Extensions (AWE)
- Notifications of memory page modifications
32-bit programs that require these features cannot run on the
Itanium-based versions of Windows Server 2003 and of Windows XP. You must run a
64-bit version of the program.
If a 32-bit program that requires these
memory management features generates an error, contact the manufacturer of the
program for an update that is compatible with the Itanium-based versions of
Windows Server 2003 and of Windows XP.
back to the topGraphics support
The following table shows the graphics solutions that are
supported for 32-bit binaries that run on the Itanium-based versions of Windows
Server 2003 and of Windows XP.
Graphics Solution | Software Accelerated | Hardware Accelerated |
DDraw | Yes | No |
D3D3 | No | No |
D3D5 | No | No |
D3D6 | No | No |
D3D7 | No | No |
D3D8 | No | No |
D3D9 | No | No |
OpenGL | Yes | Yes |
In instances where graphics hardware acceleration is not
supported, binaries that require graphics hardware acceleration will not run as
32-bit binaries on the Itanium-based versions of Windows Server 2003 and of
Windows XP. Additionally, 32-bit binaries that extensively use graphics will
experience decreased performance when hardware acceleration is not
supported.
If a 32-bit program requires DirectX hardware acceleration,
contact the manufacturer of the program for an update that is compatible with
the Itanium-based versions of Windows Server 2003 and of Windows
XP.
back to the
topx64 Considerations
The x64-based versions of Windows Server 2003 and of Windows XP
Professional x64 Edition support 32-bit instructions and 64-bit instructions.
The WOW64 subsystem can run 32-bit programs in native 64-bit mode by switching
the native mode of the processor. Separate hardware or software layers are not
required. You may not experience decreased performance when you run a 32-bit
program on the x64-based versions of Windows Server 2003 and of Windows XP
Professional x64 Edition.
For more information about the performance
of an x64-based processor, contact the manufacturer of the processor or visit
the manufacturer's Web site.The information
and the solution in this document represents the current view of Microsoft
Corporation on these issues as of the date of publication. This solution is
available through Microsoft or through a third-party provider. Microsoft does
not specifically recommend any third-party provider or third-party solution
that this article might describe. There might also be other third-party
providers or third-party solutions that this article does not describe. Because
Microsoft must respond to changing market conditions, this information should
not be interpreted to be a commitment by Microsoft. Microsoft cannot guarantee
or endorse the accuracy of any information or of any solution that is presented
by Microsoft or by any mentioned third-party provider.
Microsoft
makes no warranties and excludes all representations, warranties, and
conditions whether express, implied, or statutory. These include but are not
limited to representations, warranties, or conditions of title,
non-infringement, satisfactory condition, merchantability, and fitness for a
particular purpose, with regard to any service, solution, product, or any other
materials or information. In no event will Microsoft be liable for any
third-party solution that this article
mentions.
back to the
top
The third-party products that this article discusses are manufactured by
companies that are independent of Microsoft. Microsoft makes no warranty,
implied or otherwise, regarding the performance or reliability of these
products.