Why was a 32-bit operating system created

Overview of compatibility considerations for 32-bit programs in 64-bit versions of Windows

  • 7 minutes to read

This article explains the compatibility considerations and limitations for 32-bit programs running on 64-bit versions of Windows.

Applies to: Windows 10 - all editions, Windows Server 2012 R2
Original KB number:   896456

Summary

The 64-bit versions of Windows use the Microsoft Windows-32-on-Windows-64 (WOW64) subsystem to run 32-bit programs without modification. The 64-bit versions of Windows do not support 16-bit binaries or 32-bit drivers. Programs that depend on 16-bit binaries or 32-bit drivers cannot run on the 64-bit versions of Windows unless the program manufacturer provides an update for the program.

There may be considerations that affect the compatibility or performance of a program. You can determine if a program is having compatibility or performance problems by running the program in one of the 64-bit versions of Windows.

This article discusses some of the compatibility considerations for running 32-bit programs on the 64-bit versions of Windows. This article does not compare the 32-bit and 64-bit versions of Windows 64-bit operating systems. This article assumes that you understand the difference between 32-bit binaries and 64-bit binaries.

introduction

The x64-based versions of Microsoft Windows are optimized to run native 64-bit programs. In addition, the x64-based versions of Windows use the WOW64 subsystem to run 32-bit programs.

Run 32-bit programs

The WOW64 subsystem enables 32-bit programs to run without changes in the x64-based versions of Windows. The WOW64 subsystem creates a 32-bit environment in the x64-based versions of Windows. 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 website: Running 32-Bit Applications

Program performance considerations

The WOW64 subsystem creates a 32-bit environment for the x64-based versions of Windows. Some 32-bit programs may run slower on these operating systems than on 32-bit versions of Windows. Alternatively, some 32-bit programs that require a lot of memories may perform better on the x64-based versions of Windows. This increase in performance occurs because the x64-based versions of Windows have more physical memory than the 32-bit versions of Windows.

For more information about the differences in memory management between 64-bit and 32-bit versions of Windows, see the Virtual Address Space topic in the Memory Management section in the Microsoft Platform SDK documentation. To view this document, visit the following Microsoft website: Virtual Address Space

Limitations of the WOW64 subsystem

The WOW64 subsystem does not support the following programs:

  • Programs compiled for 16-bit operating systems
  • Kernel-mode programs compiled for 32-bit operating systems

16-bit programs

The x64-based versions of Windows do not support 16-bit programs or 16-bit program components. The software emulation required to run 16-bit programs in the x64-based version of Windows would significantly affect the performance of those programs.

A 16-bit installer is often used to install and configure a 32-bit program. In addition, some 32-bit programs require 16-bit components to run properly. Although 32-bit programs that require 16-bit components may run correctly after installation, you cannot use the 16-bit installer to install a 32-bit program. Programs that require 16-bit components cannot work in x64-based versions of Windows.

When a 32-bit program that requires 16-bit components tries to run a 16-bit file or component, the 32-bit program logs an error message in the system log. The operating system then lets 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 program manufacturer for an update that works with the x64-based versions of Windows.

32-bit driver

The x64-based versions of Windows do not support 32-bit drivers. All hardware device drivers and program drivers must be specific to the x64-based version of Windows.

When a 32-bit program tries to install a 32-bit driver on a computer that is running an x64-based version of Windows, the driver installation fails. When this behavior occurs, the x64-based version of Windows reports an error to the 32-bit program.

When a 32-bit program tries to register a 32-bit auto-start driver on a computer that is running an x64-based version of Windows, the bootstrap loader on the computer detects that the 32-bit driver is Driver is not supported. The x64-based version of Windows does not start the 32-bit driver but starts the other registered drivers.

To determine if a program requires a 32-bit driver, install and run the program. If the program generates an error message, contact the program manufacturer for an update that works with the x64-based versions of Windows.

Additional considerations

Registration 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 binary files to prevent a 32-bit binary file from accidentally accessing data from a 64-bit binary file. For example, a 32-bit binary outputting a .dll file from the% systemroot% \ System32 folder may inadvertently attempt to access a 64-bit .dll file that does not match the 32-bit binary is compatible. To prevent this, the WOW64 subsystem redirects access from the% systemroot% \ System32 folder to the% systemroot% \ SysWOW64 folder. This redirection prevents compatibility errors, since the .dll has to be specially developed for working 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 website: Running 32-Bit Applications
The WOW64 subsystem redirects 32-bit binary calls without requiring any changes to the 32-bit binaries. However, as you complete some tasks, you may see signs of this redirect. For example, if you type a command line script at a 64-bit command prompt, the command prompt might not be able to access 32-bit programs in the Applications folder. The WOW64 subsystem redirects and installs 32-bit programs in the Program Files (x86) folder. To access the correct folder, you need to change the command line script. Alternatively, you must enter 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, do the following:

  • click You on start,click on run, give You% windir% \ SysWoW64 \ cmd.exe and then click OK.

Version check

Some 32-bit programs examine the version information of the operating system. Many 32-bit programs that run this check fail to recognize the x64-based versions of Windows operating system compatible operating systems. When this behavior occurs, the 32-bit program generates a version check error and then closes. If this behavior occurs, contact the 32-bit program manufacturer for an update that works with the x64-based versions of Windows.

The Microsoft .NET Framework

A program compiled with the Microsoft .NET Framework runs as a 32-bit program in the WOW64 subsystem if the following conditions are true:

  • The program set the ILONLY bit in the header information.
  • The program was compiled with microsoft .NET Framework 1.1. If the program did not set the ILONLY bit in the header information, or if the program was compiled with Microsoft .NET Framework Version 2.0, the program will run as a native 64-bit program.

OpenGL

The x64-based Windows do not contain an OpenGL graphics driver. Contact the manufacturer of the device for a driver that works with the x64-based versions of Windows.

Microsoft Management Console (MMC)

The x64-based versions of Windows use the 64-bit version of the Microsoft Management Console (MMC) to run various snap-ins. However, you may occasionally need the 32-bit version of MMC to run snap-ins in the WOW64 subsystem. For more information about MMC behavior in the x64-based versions of Windows, see the "Running 32-bit and 64-bit Dock-Ins in 64-bit Windows" topic in the Using MMC 2.0 section in the Microsoft Platform SDK -Documentation. To view this document, visit the following Microsoft website: Running 32-Bit and 64-Bit Dock-Ins in 64-Bit Windows

X64 considerations

The x64-based versions of Windows support 32-bit instructions and 64-bit instructions. The WOW64 subsystem can run 32-bit programs in native 64-bit mode by switching the processor's native mode. Separate hardware or software levels are not required. When running a 32-bit program in the x64-based versions of Windows.

For more information about the performance of an x64-based processor, contact the processor manufacturer or visit the manufacturer's website. The information and the solution in this document represent Microsoft Corporation's current view of these issues as of the date of publication. This solution is available through Microsoft or a third-party vendor. Microsoft does not recommend any third-party or third-party solutions that this article describes. There may also be other third-party providers or third-party solutions that are not described in this article. Because Microsoft must respond to changing market conditions, this information should not be interpreted as a commitment by Microsoft. Microsoft cannot guarantee or endorse the accuracy of any information or solutions presented by Microsoft or any mentioned third party vendors.

Microsoft makes no guarantees and makes no representations, warranties, and conditions, express, implied, or statutory. This includes, but is not limited to, representations, warranties, or terms of the title, non-infringement, satisfactory condition, merchantability, and fitness for a particular purpose with respect to any service, solution, product, or other material or information. In no event is Microsoft responsible for the third-party solutions mentioned in this article.

Sources of information

For more information about the AMD64 processor, visit the following Advanced Micro Devices website: AMD website
The contact information for the third-party vendors mentioned in this article is provided to help you find the technical support you need. This contact information may change without notice. They are distributed by Microsoft without any warranty.

For more information about developing programs for the Itanium-based versions of Windows Server 2003 and Windows XP, visit the following Microsoft website: Introduction to developing applications for the 64-bit Itanium-based version of Windows

The third-party products that are discussed in this article are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.