Professional Documents
Culture Documents
Home Windows Mac Linux Android iOS Online Apps eBooks New Resources Forum About
Like 125
Introduction
This article provides an overview of the Windows on Windows 64 (WOW64) sub-system and associated techniques that support 32-bit
applications under Windows 64-bit.
Discussion
For each operating system call made, WOW64 generates native 64-bit system calls, converting 32-bit
data structures into 64-bit aligned structures. The appropriate native 64-bit system call is passed to the
operating system kernel, and any output data from the 64-bit system call is converted into a format
appropriate for the calling application before being passed back.
Like 32-bit applications, WOW64 runs in user mode so any errors that occur in translating an operating system call will only occur at that
level. The 64-bit operating system kernel cannot be affected.
Since WOW64 runs in user mode, all 32-bit application code must also run in user mode. This explains why 32-bit kernel mode device
drivers and applications that rely on them, will not work under Windows 64-bit.
The WOW64 emulator consists of the following DLLs, the only 64-bit DLLS that can be loaded into a 32-bit process:
Wow64.dll the core emulation infrastructure and the links to the Ntoskrnl.exe entry-point functions.
Wow64Win.dll the links to the Win32k.sys entry-point functions.
Wow64Cpu.dll switches the processor from 32-bit to 64-bit mode.
Ntdll.dll 64-bit version.
Wow64.dll loads the 32-bit version (x86) of Ntdll.dll and all necessary 32-bit DLLs which are mostly unmodified 32-bit binaries..However,
some of these DLLs have been modified to behave differently on WOW64 than they do on 32-bit Windows. This is usually because they
share memory with 64-bit system components.
File Redirection
File redirection ensures that there are separate folders for program and operating system files for 32- and 64-bit applications.
C:\Program Files(x86)
C:\WINDOWS\SysWOW64
C:\Program Files
C:\WINDOWS\SYSTEM32
The WOW64 file redirector ensures that requests from 32-bit applications to open files in C:\Program Files or C:\WINDOWS\SYSTEM32 are
redirected to the appropriate 32-bit directories.
There is one issue with file redirection that users and developers should be aware of.
Many 64 bit applications still use 32 bit installation routines. To ensure that an application is installed correctly, i.e. to C:\Program Files, the
installation routine should make an operating system call to temporarily suspend the WOW64 file redirector. After installation another
operating system call needs to be made to re-enable the redirector. If this approach is not followed then the application will be installed to
C:\Program Files (x86). A classic example of this is the 64 bit development version of Firefox 3.5, codenamed Shiretoko, which is installed to
C:\Program Files(x86)\Shiretoko. Firefox still functions correctly, the only thing you can't do is change the icon for the application.
Registry Redirection
Registry keys specific to 32-bit applications are redirected from:
HKEY_LOCAL_MACHINE\Software
to:
HKEY_LOCAL_MACHINE\Software\WOW6432Node
You may also occasionally see Registry entries elsewhere although this is unusual
HKEY_CURRENT_USER\Software\WOW6432Node
This approach allows both the 32-bit and 64-bit versions of an application to be installed side-by-side without overwriting each others
settings.
Registry reflection
Some redirected keys and/or values are also reflected. This means that if a 32-bit application makes a change to the redirected section of
the registry, that change is also made to the 64 bit part of the registry, and vice-versa. Key reflection uses a policy of last writer wins. For
example, if I install three applications with the same file extension then the last one to be installed will be associated with that extension.
1. Install a 32-bit application that associates itself with the file extension XYZ.
2. Install the 64-bit version of this application that associates itself with the file extension XYZ.
3. Install another 32-bit application that associates itself with the file extension XYZ.
Double-clicking on a file with the extension XYZ in Explorer would load the application installed in step 3, as it was the last one to
associate itself with this extension.
All of this is done transparently for 32-bit applications by WOW64, which, in intercepting calls to the operating system, detects references
to file paths and registry keys and maps them accordingly.
WOW64 provides 32-bit applications with access to some features of 64-bit systems. For example, applications can have more memory up
to 4GB with the correct setting.. Other features are more limited due to overheads and restrictions. For example, 64-bit Windows will
support logical 64 processors but 32-bit applications are restricted to the usual 32 logical processors.
Under 64-bit Windows it is not possible to inject 32-bit code into a 64-bit process, nor is it possible to inject 64-bit code into a 32-bit
process. Applications that rely on code injection to add functionality to existing applications will usually not work.
This explains why most 32-bit shell extensions do not work under Windows 64-bit. The majority of shell extensions rely on code injection
to add themselves to Windows Explorer.
Windows Virtual PC
Windows Virtual PC is free software that provides an environment that will support legacy hardware and software that will not work under
Windows 7. Guest operating systems (OS) can run in a virtual machine which means they are not aware that they are running under
another operating system.
The system requirements and features vary significantly between versions of Virtual PC and versions of Windows so check before you try
Virtual PC. The latest version is, perhaps, the most limited with no support for operating systems before the current supported version of
Windows XP which is Service Pack 3.
Many who have used XPM advise that it should be used as a last resort. It will provide legacy support if you have no other options but,
compared to other virtualization products, performance is disappointing and the default configuration raises a number of security issues.
Although you cannot use both operating systems at the same time it is a useful option because the entire computer is dedicated to the
running operating system. Compared with virtual machines, there are no issues of compatibility and much less complexity in both
installation and operation. You can also retain the ability to run 16-bit applications under the 32-bit version of Windows.
Summary
Most 32 bit applications will run quite happily under Windows 64. The main exceptions are:
Some applications may work with reduced functionality. These include uninstallers, registry cleaners and tweaking programs, amongst
others, since they only have access to that part of the Registry made visible to them by WOW64.
If you cannot run your 32-bit applications then consider virtualization or dual-booting with the old and new operating systems both
installed.
If we compared 32-bit and 64-bit applications in their native environments then 32-bit application usually use less memory than the
equivalent 64-bit application because 64-bit versions use 64-bit values so they take up twice the space. The extra size affects the
application startup and shutdown times and other activities that involve accessing the disk drives. Usually this means that the 32-bit
application will run faster but 64-bit applications can access new and faster features in the 64-bit CPUs potentially giving improvements of
up to 25% in processing speed.
Once both 32-bit and 64-bit versions of a program are running on 64-bit Windows you have to ignore any performance on a 32-bit CPU.
The 32-bit application now requires WOW64 to run so that should be included in any performance comparison. This means you need to
include all the duplicated resources used to map the 32-bit application to the 64-bit environment it runs under. Duplicated resources are
used for memory mapping and redirection of files locations and registry entries. The result is that the 32-bit application uses more memory
and runs slower than on an equivalent 32-bit CPU but it may still be faster than the 64-bit application.
Related Links
32-bit and 64-bit explained
Best Free Windows 64 bit Software
Microsoft Developer Network - Disabling the WOW64 File System Redirector
Microsoft Developer Network - Running 32 bit Applications under 64 bit Windows
Editor
This software category is maintained by volunteer editor Remah.
"I have used TechSupportAlert and the older Support Alert Newsletter for almost a decade so I have saved
hundreds of hours of work and many more dollars by following Gizmo's Freeware recommendations. Thanks for
the opportunity to give something back."
If you have had a similar experience then you should consider becoming a reviewer too.
Tags
Windows on Windows 64, WOW64, 32 Applications under 64 bit Windows, 64 bit Windows Vista, 64 bit Windows 7, Windows Virtual PC,
virtualization, dual boot, Securable
Like 6
Free Download
Hide Comments...
Comments
Submitted by MrBrian on 15. May 2015 - 16:47 (122196)
Thank you for an enlightening article. brings understanding that is much appreciated.
Okay so maybe this has been answered a dozen times already but I'd still like the help anyway. I have several 32-bit programs on my laptop
(which is a 64-bit operating system)and I have WOW64 (i think) however whenever I try to run one of these 32-bit programs I get an error
message saying that it cannot run. I need to know what I'm doing wrong, how do I get WOW64 to work? Or is there a different version I
need? (for a bit more info a few of the programs are older games.)
WOW64 should do its thing automatically without your needing to do anything special yourself but, it doesn't work for all x86 software.
I have an install file that I believe originally was used for Windows NT 3.1 and so I wonder, Is there any possibility that it can be used in 64-bit
Windows 7. This is a remake for a 32-bit windows XP i think but it seems to work for windows 7 32-bit also. I have tried to change the
compability and also I used the automatic compability windows version including online help but it didn't solve my problem.
The message I get is when I open the program: "The version of this file is not compatible with the Windows version you have. Check the
computers system information if you need a x86 or a x64-version (32-bit or 64-bit) of this program. Then contact the publisher of this
program" (Translated). This is one of my favorite games since I was just a little kid. And I really, really, really want it to work. Any suggestions?
Also you could use Virtual Box to run an x86 version of Windows inside your x64 O/S, or you could as Remah says see if it's only the
installer itself that is causing the problem. Trying unpacking the installer with 7-zip or Universal Extractor, you might get lucky and find
that you can run it without installing it.
In the area of installation monitoring, you might also find this useful - http://www.techsupportalert.com/content/cameyo-application-
virtualizatio...
I've had mixed results with it but it will at the very least show you exactly what files/folders an installer creates and the locations of them,
assuming you can find a pc that will let you run the installer.
Another alternative is to search the internet and see if there's another version of your game available; many old games have been
re-created for newer O/Ss, there are also emulators like DosBox and some have been recreated to be played on-line in your browser.
It sounds like you have a 16-bit installer or application. If that is correct then you can use any of the "Further options for running 32-bit
applications with Windows 64-bit".
If it is only the 16-bit installer that is the problem, ie the game is completely 32-bit, then you might be able to circumvent the 16-bit
installation. You would use software that monitors the game installation on an older version of Windows and then replicates that
configuration on Windows 7. I have never tried this so I'm unsure how well this could work as it does have some significant risks. If you
decide to try this then some of the products in the following articles will help: Best Free Software Update Monitor Best Free Program
Uninstaller
i am using windows7 64bit system but I want to install 32-bit applications under 64-bit system of Windows-7 plz help me,,,,,,
I want to install 32-bit applications under 64-bit system of Windows-7 O/S, but the applications are not compatible. How can I able to install
those applications under 64-bit O/S ? Please help me.
If I install 32 bit and 64 bit flavor of the same application on a 64 bit Win 7 will the 64 bit application work faster than its 32 bit counterpart or
will it be the same according to the applications memory usage capacity??
The 64-bit versions should run faster and use less memory because all 32-bit code will be emulated by WOW64 in 64-bit Windows.
Further explanation follows.
If we compared 32-bit and 64-bit applications in their native environments then 32-bit application usually use less memory and run faster
than the equivalent 64-bit application. But once both versions are running on 64-bit Windows it is not sufficient to simply compare the
two applications. The 32-bit application requires WOW64 to run so that should be included in any performance comparison. That means
you need to include all the duplicated resources used to map the 32-bit application to the 64-bit environment it runs under. Duplicated
resources are used for memory mapping and redirection of files locations and registry entries. The result is that the 32-bit application
uses more memory and runs slower too.
Thanks for the reply. Really appreciate your deep knowledge on the topic :)
We are looking for people with skills or interest in the following areas:
- Mobile Platform App Reviews for Android and iOS
- Windows, Mac and Linux software reviews
Search
Finder
with Software
Windows
Software
Desktop
Windows Apps
Windows
Apps
Portable
Mac Software
Linux Software
Android Apps
iPad Apps
iPhone Apps
Online Apps
eBooks /Audiobooks
Security Software
Visitor
Management
System
Get Notified of New Finds
Subscribe
Currently Popular
more
Top Rated
Finds of the Week: Block Windows Updates in Windows 10 Home / All about Windows System Repair Discs / 8 ways to protect
yourself online / Science Daily
Finds of the Week: Instant Logo Search / Exporting Evernote data / 8 built-in Windows tools / Download free topographical maps
Windows 7 Startup
Windows 7 Startup
Increase Your Privacy by Turning off the Diagnostics Tracking Service in Windows 7
Increase Your Privacy by Turning off the Diagnostics Tracking Service in Windows 7
more
Subscribe