With each new release of Microsoft’s Windows operating system, we observe an increase in questions about how Windows organizes its file system and registry, and how it may limit access to certain areas of each. This pattern has persisted through the recent release of Windows 10, which gives us a great opportunity to offer some clarification.
In this case, WOW is an acronym for Windows on Windows; however, there are certain characteristics of WOW that might lead you to use the interjection if you are not already familiar with it (more on this later). WOW was originally conceived when the transition from 16-bit Windows to 32-bit Windows (or Windows 3.x to Windows 95, respectively) took place. Today, we are undergoing a similar transition from 32-bit Windows to 64-bit Windows, and we are therefore relying on WOW64 to pull us through that transition without breaking applications originally built for 32-bit Windows. However, WOW64 uses a few features to make this work, and these features can impact your applications’ behavior…
What you see is not always what your application gets
One feature of WOW64 is the File System Redirector. To quickly summarize its function, the File System Redirector will “redirect” file system calls made by 32-bit applications to point to new locations specifically created for 32-bit application files residing on 64-bit systems. The System directories are a perfect example of the behavior you can expect to see on 64-bit Windows:
- On 32-bit Windows, 32-bit system files and DLLs are stored in %WINDIR%\System32.
- On 64-bit Windows, 64-bit system files and DLLs are stored in %WINDIR%\System32.
- On 64-bit Windows, 32-bit system files and DLLs are stored in %WINDIR%\SysWOW64.
It is easy to see how someone unfamiliar with WOW64 might be confused about where libraries are supposed to be deployed. Understanding the above bullet points is critical when installing DLLs, including those which your application depend upon.
In view of the registry view
- On 32-bit Windows, 32-bit applications accessing values under HKEY_LOCAL_MACHINE\Software\Example will access them from HKEY_LOCAL_MACHINE\Software\Example.
- On 64-bit Windows, 64-bit applications accessing values under HKEY_LOCAL_MACHINE\Software\Example will access them from HKEY_LOCAL_MACHINE\Software\Example.
- On 64-bit Windows, 32-bit applications accessing values under HKEY_LOCAL_MACHINE\Software\Example will access them from HKEY_LOCAL_MACHINE\Software\Wow6432Node\Example.
The bold part in the last bullet highlights the difference in behavior when 32-bit applications run in 64-bit Windows. The verbiage often used for the default behavior illustrated in the bottom-two bullets above would be:
- On 64-bit Windows, 64-bit applications access values from the 64-bit registry view.
- On 64-bit Windows, 32-bit applications access values from the 32-bit registry view.
The good news is that the Windows API, and Microsoft .NET Framework 4.0 or later, supports specifying the registry view on applicable versions of Windows. Consequently, the SoftwareKey System allows you to specify the registry view as well, enabling you share the same license when mixing 32-bit and 64-bit applications on the same system.
WOW64 is what allows your 32-bit applications to continue working on 64-bit versions of Windows. To those who develop and sell 32-bit Windows applications, this has been immensely beneficial in recent years, and will continue to be in coming years. However, it has some features and characteristics that might not be intuitive at first glance.
With the SoftwareKey System, you can rest assured that we provide the facilities and the support to get you through the transition with our licensing system smoothly. If you want or need to see more information about how this affects your licensed applications, visit the relevant product manual’s deployment topic for the extra details. As always, we welcome you to contact us if you are in need of some additional guidance.