WOW64

WOW64 ( Windows on Windows 64 -bit) is a subsystem of the Windows operating system, which is capable of executing 32- bit applications. WOW64 is included in all Windows 64- bit versions: Windows 2000 Advanced Server Limited Edition, Windows XP Professional x64 Edition, IA -64 and AMD64 versions of Windows Server 2003 and 64- bit versions of Windows Vista, Windows Server 2008, Windows 7, Windows 8 and Windows Server 2008 R2. WOW64 into account all the differences between 32 -bit Windows and 64 -bit Windows, particularly structural changes to Windows itself

Translation libraries

The WOW64 subsystem is a lightweight translation layer that offers on all 64 - bit versions of Windows like interface. Its main purpose is to create a 32 -bit environment, which provides all the interfaces that require 32 -bit Windows applications to run without modification on a 64- bit system. From a technical point of view, the WOW64 on three libraries (DLLs ) are implemented:

  • Wow64.dll contains the main interface to the kernel of Windows NT which translate between 32 -bit and 64 -bit calls, including pointer and call stack manipulations
  • Wow64win.dll provides the appropriate entry points for 32- bit applications available
  • Wow64cpu.dll considered switching the processor between 32- bit and 64 -bit mode

Architectures

Despite the superficial similarity on all 64 - bit versions of Windows, the implementation of WOW64 due to the architecture of the target processor is different. The 64- bit version of Windows, for example, which was designed for Intel Itanium 2 processors ( called Microsoft IA -64 architecture ), uses the Wow64win.dll for the emulation of x86 instructions using the instruction set of the Itanium 2. this emulation is computationally more complex than the function of Wow64win.dll AMD64 architectures, which merely switching the processor out of the 64-bit mode to 32 -bit mode, while a 32-bit thread is running. On AMD64 systems, no emulation is required for WOW64.

Registry and file system

The WOW64 subsystem takes into account other important aspects of the implementation of 32 - bit applications. This includes, among other things, the management of access to the Windows registry (see HKEY_LOCAL_MACHINE \ Software \ WOW6432Node ) ) as well as the file system, which have in the 64 - bit versions of Windows minor differences.

Normally one would - as it was then, at step 16 by 32 bit - expect from a 64 -bit Windows, that the new 64 -bit system components in the% SystemRoot % \ system64 and are names like kernel64.dll, user64.dll etc. wear. That would be relatively unproblematic, since the corresponding 64 -bit software must be recompiled anyway.

However, in order backward compatibility, the operating system uses the % SystemRoot % \ system32 directory and unchanged DLL name for its 64 -bit components. When executing 32 -bit applications accesses are redirected to libraries from this directory to% SystemRoot % \ SysWOW64, where are the corresponding 32 - bit versions.

Implementations outside of Windows

In addition to that contained in current versions of Windows WOW64 subsystem of Microsoft, there are also versions for other operating systems. These replicas are intended to use Windows 32-bit application programs without Windows operating system on a Win64 API. So, for example, developed the Wine project a free WOW64 replica that is available for Linux and other Unix systems. For legal reasons, all function of the original subsystem are not available, which may limit compatibility with application programs. However, since very few applications need all the functions of the Win32 API, many are still fully usable.

829494
de