WOW64

From Wikipedia, the free encyclopedia

Jump to: navigation, search

WoW64 (Windows-on-Windows 64-bit) is a subsystem of the Windows operating system that is capable of running 32-bit applications and is included on all 64-bit versions of Windows — including Windows 2000 Limited Edition, Windows XP Professional x64 Edition, IA-64 and x64 versions of Windows Server 2003, 64-bit versions of Windows Vista and Windows Server 2008, as well as 64 bit editions of Windows 7. WoW64 is designed to take care of all the differences between 32-bit Windows and 64-bit Windows, particularly involving structural changes to Windows itself.

Contents

[edit] Translation libraries

The WoW64 subsystem is a lightweight translation layer that has similar interfaces on all 64-bit versions of Windows. Its primary purpose is to create a 32-bit environment that provides the interfaces required to allow 32-bit Windows applications to run unmodified in the 64-bit system. Technically, WOW64 is implemented using three dynamic-link libraries (DLLs): Wow64.dll, which is the core interface to the Windows NT kernel that translates between 32-bit and 64-bit calls, including pointer and call stack manipulations; Wow64win.dll, which provides the appropriate entry points for 32-bit applications; and Wow64cpu.dll, which takes care of switching the processor from 32-bit to 64-bit mode.

[edit] Architectures

Despite its outwardly similar appearance on all versions of 64-bit Windows, WOW64's implementation varies depending on the target processor architecture. For example, the version of 64-bit Windows developed for the Intel Itanium 2 processor (known at Microsoft as IA-64 architecture) uses Wow64win.dll to set up the emulation of x86 instructions within the Itanium 2's unique instruction set. This emulation is a more computationally expensive task than the Wow64win.dll's functions on the x86-64 (x64) architecture, which switches the processor hardware from its 64-bit mode to compatibility mode when it's time to execute a 32-bit thread, and then handles the switch back to 64-bit mode. No emulation is required for WOW64 on x86-64 (x64).

[edit] Registry and file system

The WOW64 subsystem also handles other key aspects of running 64-bit applications. For example, it's involved in managing the interaction of 32-bit applications with the Windows registry, which is somewhat different in 32-bit versions of the OS, and in providing an interface to the storage subsystem.

The operating system uses the %SystemRoot%\system32 directory for its 64-bit library and executable files. This is done for backwards compatibility reasons as many legacy applications are hardcoded to use that path. When executing 32-bit applications, WOW64 redirects requests for DLLs from that directory to %SystemRoot%\SysWOW64, which contains legacy libraries and executables.

[edit] See also

[edit] External links

Personal tools