Gizmo's Freeware is Recruiting
We are looking for people with skills or interest in the following:
- Mobile Platform Reviews
- Rootkit Scanner and Remover
- Streaming Media Recorder
- Email Client
- Archive Manager Interested? Click here
How Windows 64-bit Supports 32-bit Applications
|
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
|
Windows 32-bit on Windows 64 (WOW64)WOW64 emulates 32-bit WindowsUnder Windows 64-bit, 32-bit applications run on top of an emulation of a 32-bit operating system that is called Windows 32-bit on Windows 64-bit, or WOW64 for short. WOW64 intercepts all operating system calls made by a 32-bit application. 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. 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. WOW64 manages file and registry settingsIn addition to handling operating system calls, the WOW64 interface needs to ensure that files and registry settings for 32-bit applications are kept apart from those for 64-bit applications. To achieve this two mechanisms are used, File and Registry Redirection and Key Reflection. Redirection maintains logical views of the data as if it were in 32-bit Windows and maps it to the correct physical location. Reflection ensures that 32-bit and 64-bit settings will be consistent where that is required. File RedirectionFile redirection ensures that there are separate folders for program and operating system files for 32- and 64-bit applications. 32-bit applications files are installed into C:\Program Files(x86) 32-bit system files are installed into C:\WINDOWS\SysWOW64 For 64-bit applications, files are installed to: 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 isn't 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 RedirectionRegistry 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 other’s settings. Registry reflectionSome 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.
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 has several limitationsSome but not all 64-bit features are available to 32-bit applications WOW64 provides 32-bit applications with access to some features of 62-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. Code Injection cannot mix between 32-bit and 64-bit 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. WOW64 does not support 16-bit installersWOW64 provides support for Microsoft's 16-bit installer - by substituting a compatible 32-bit installer - but does not extend this support to third-party products.
Further options for running 32-bit applications with Windows 64-bitWindows Virtual PCWindows 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. Windows XP Mode (XPM)Windows XP Mode is a specific implementation of Windows Virtual PC that comes with a pre-installed, licensed copy of Windows XP Professional with Service Pack 3. It is only available with the Enterprise, Ultimate and Professional editions of Windows 7 64-bit so you are expected to upgrade to these versions if you want it. 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. Dual boot WindowsYou can install more than one version of Windows on the same computer by dual booting.For the purposes of this article, you would install a 32-bit version and a 64-bit version alongside each other. Each operating system is installed into its own disk partition and a boot manager is installed on the default partition to ensure that you can choose which operating system you want to use at startup. 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. |
|
Related Links
|
|
Editor
|
|||
|
This software category is maintained by volunteer editor Remah.
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 |
Back to the top of the article.
- Article type:
- Login or register to post comments
Printer-friendly version


Comments
Very nicely explained :) One quick question:
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.
When I open Exe files, many times it gives an error message i.e., “The version of this file is not compatible with the version of Windows you’re running. Check your computer’s system information to see whether you need an x86 (32-bit) or x64 (64 bit) version of the program, and them contact the software publisher.” It's not a installation file but a single.exe file. Help me please. I am using Windows 7 Ultimate 64 bit. In 32 bit it never showed these errors.. Help ASAP.
This is a support question and any further help can be requested in our support forums.
You've probably identified the issue: it can't run in 64-bit Windows. This is mainly 16-bit installers (FYI, an installation program can still be a single .exe file) and 32-bit kernel drivers. Typically, this is older software.
Have you tried the simpler options?
1. Find for a newer version of the program.
2. Set the Compatibility options under the program's Properties (right mouse click or + ).
3. Find a version of the software that functions differently, either a portable (non-installable) version or one that doesn't use drivers.
The remaining options become much more difficult and time-consuming. You should back up all your files before starting. You may need to partition your disk drives to create various logical drives as well.
4. "Virtualization"
5. "Dual-booting with the old and new operating systems both installed".
6. Finally, if you can do without 64-bit Windows then install 32-bit Windows instead. This is clean install that will wipe everything on the system drive.
And, none of them worked - none. I just saw the same canned responses from Microsoft over and over, and a lot of the same thing from other posters. I offered this fix, because I've been researching it for over a week now, and this problem stems back to 2007, maybe earlier, and it's STILL a problem, with Microsoft still AWOL on the issue. I just thought I'd offer what worked for me, but if you're not open to it ... And, of course I tried the logical fixes for the other programs if they seemed applicable, but I can't tell you how many times I saw:
Re-install Windows 7 - Seriously, I saw this so many times.
Do you have a virus?
Be sure you have the correct permissions.
Download & import a new msiserver.reg to your registry
Check that your Windows Installer is "started"
Uninstall your old versions first (this must be a 64-bit thing, because my 32-bit XP machine ran 2 versions just fine)
The only other logical fix other than the rename fix, was to actually replace the msiserver folder on the 64-bit machine with the folder from a working 32-bit machine. That made sense, and I would have tried that.
I am not a tech person, but I know my way around a computer enough to be open to this type of logical fix. It's a SETUP file - who's setting anything up anymore?
Reread my reply. I wasn't criticizing your response. I was pointing out that it works for more than just Excel and Word. It is the same registry modification as in the link you posted - I've just checked that to be sure.
Your problem is not a 64-bit Windows problem. It is a problem with the Office installation that also occurs on 32-bit Windows. It arises from running two versions of Microsoft Office together. It does not arise from running under 64-bit Windows.
As I said earlier, replacing the Windows installer folder won't help if the installer has already run.
I would have moved your posts to our support forum except that it is useful to show users what is not a WOW64 problem.
I found a fix!! And, it was easy and logical!
- - - - - - - - - - - - - - - - - -
Rename 'setup.exe' to 'setup.old' in this folder:
C:\Program Files\Common Files\microsoft shared\OFFICE12\Office Setup Controller
- - - - - - - - - - - - - - - - - -
(I had to go to Program Files(x86) to find it)
http://uksbsguy.com/blogs/doverton/archive/2007/07/21/how-to-get-rid-of-the-installer-configuration-dialog-when-running-office-2007-and-office-2003-on-the-same-system-for-vista-and-other-versions-of-windows.aspx?CommentPosted=true#commentmessage
Microsoft has several pages addressing your issue. This is for all Office applications not just Word and Excel:
http://answers.microsoft.com/en-us/office/forum/office_2007-office_insta...
I installed my Office Ultimate 2007 on a new Windows 7 64-bit machine, but Word & Excel won't load without configuring each time. Seems the concensus is to import the msiserver folder in the registry from the old 32-bit machine to replace the msifolder in the new 64-bit machine, since this one doesn't have a WOW64 in it for some reason. Why would some 64-bit systems have WOW64 after installing Office 2007, and some not? This makes absolutely no sense.
I had zero problems on my XP machine, and I had 2 versions of Office running, and used them together, all the time. MY analogy would be like going from a new car to a used one ...
It makes no sense because WOW64 is not missing in any of the support scenarios.
The configuration is not a Windows installer (msiserver) problem either. You would not get to the configuration dialog unless the installer had worked.
I am fascinated with this subjected matter of 32/64-bit operating systems and programs. I have gained some knowledge, and only a little some at that, and have come to the conclusion that I really should not be surprised at how it is all like a used car lot -- polish it, stick a new bumper on it, and wow! it still ain't very good. Thank you all.
It's better to be specific instead of using an analogy. The comparison with used cars makes no sense to me. In this article there is no equivalent to "a used car" that has been tidied up.
I think the comments made in response to this article simply reflect what 64-bit computing is to most people in reality: a confusing pain in the arse!
Regular users are unlikely to appreciate the performance gains in running 64bit program's and/or having access to 4+GB ram vs 3.5
The interchangeable use of processor architecture terminology does not help either: 32bit/x86/x86-32 & 64bit/x64/x86-64 etc
I agree. The transition to 64-bit computing spawned the changes in nomenclature which has only made it more confusing.
Even worse, the pain will extend as long as 32-bit operating systems continue to be published.
Incidentally, the benefits of improved memory management kick in well below the 3.5GB limit of Windows 32-bit.
Hi,
I have an existing windows Xp-32 bit server and i want to connect it with another server which is windows 7-64 bit. Will this things workout properly?
Please i need some advice on this matter..
Thanks!!
In general, there should be no problem connecting two different servers because they both support the same networking protocols.
Your question is not related to the topic of this tutorial. So any further other networking questions should be directed to a network support forum.
i m using sony vaio 64 bit OS,,I am unable to run oracle related softwares on my computer...please help me out.
i am using windows7 64bit but when i install 32bit programs its show some error
Some 32-bit Windows programs or their installers will not run under 64-bit Windows.
For help with specific errors you should post in our support forum with exact details of the error message.
Hello Remah,
And what about the server performans running a 32 bits application on a 64 bits server (W2k3)
Thanks in advance
The application may run faster or slower than on a 32-bit processor (http://support.microsoft.com/kb/896456). The server performance will be reduced compared with running an equivalent 64-bit application. WOW64 emulation is less efficient than native execution. Exactly how much impact that has on your server will depend on your specific configuration.
If you are running Itanium CPUs then I have not addressed that here. Pre-2006 Itanium processors had hardware support for 32-bit applications but performance was so bad Intel developed software emulation similar to WOW64, the IA-32 Execution Layer.
I have 64 bit windows 7 laptop i am able to install a 32 bit java application but when try to open the launcher file it popup a message "unable to find jawaw please check if u have typed correct user name and password"
This is a tutorial about Windows 64-bit and comments should relate to that.
You have a problem with Java so either post your problem in our Freeware Forum or in a Java support forum elsewhere.
Iam having Laptop with WINDOWS7 OS & 64bit system. Iam Unable to install Shared Printer from the Network (i.e printer installed on 32 bit os windows 7 )
Please provide solution on priority basis how to install network shared printer from 32 to 64 bit os windows 7.
You will have to find a 64-bit printer driver for 64-bit Windows.
This is not a support forum so you will have to post your question in one of our support forums.
I'm using windows 7 now & for one machine i work with,after it was migrated recently from windows XP (32-bit) to windows 7 (64-bit) the 32-bit IE 8 stopped working. After more investigation i've found that the 32-bit IE 8 has stopped being able to work with https-secured sites mostly, although the IE 8 64-bit is fine. I've done the normal resetting of settings & SSL within the browser configurations to no effect. I've also done numerous poring over the registry within HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\MICROSOFT\INTERNET_EXPLORER\ and then a great many of the listings within there, but still to no luck in spotting any difference between two different otherwise identical machines.
I've even ran a tool to reregister the compatibility dll's, but no luck yet for the 32-bit IE 8 to handle https sites, although it does work ok on the normal http sites like google & so on.
Ideas or suggestions or wisdom?
Thank you for your assistance.
For the record, you are better off asking questions like this in a dedicated support forum either on this site or one of the many.
Recently purchased Sony Viao 64 bit laptop, now software vendor says I should hire software professional to make new laptop immulate 32 bit for old DOS applications. Found your website about WOW64 but cannot find source of software or whether it is already installed but not operational. Who can help?
For the record.
If you have a 64-bit version of Windows installed then you have WOW64 which is for Windows applications. So it is not WOW64 that you need to run an old DOS application, it is the NT Virtual DOS Machine which is no longer available in 64-bit versions of Windows 64-bit.
So I presume that you were either advised to get a virtual machine (VM) setup, to get your 64-bit Windows downgraded to a 32-version, or to have your laptop setup to dual-boot both the 32-bit and 64-bit version of Windows.
Remah - New editor for this article
The person who contributed this article is not active at present. Please post your query in our forum.