Windows 64-bit Compatability and Registry Path

By Akbar

I have an old application which has worked fine for me for years on the 32-bit operating system. It worked well on Windows XP, and even I used this on the Windows-7 32-bit without any issues.

However, to run that application you need to do first some registry entries manually. This was due to the reason that I have lost the installer, and only had the installed application and registry back-up for restore. On every fresh machine, to run that application, I used to run the script to update the registry entries, and it worked well for me.

But recently, I have to upgrade to Windows 64-bit (due to some memory issues), and thus was not able to run that application. On the last weekend, I decided to debug the reason on why the application is not working on Windows 64-bit, and usual, I first tried to search on the Google. But I was not feeling luck that day. I then decided to use “Procmon” application from SysInternal for all the registry access made by that application, and found the problem. Apparently, on 64-bit, the application was trying to read the corresponding registry entries from following path:

HKEY_LOCAL_MACHINESOFTWAREWow6432NodeCompanyNameApplicationName

But the registry back-up I had was writing the restore entries to the following path:

HKEY_LOCAL_MACHINESOFTWARECompanyNameApplicationName

Once I found this, the fix was quite easy. I just changed the registry restore script to restore the required entries at the correct path (under Wow6432Node path).

For those of your who are curios on what this mysterious Wow6432Node folder in the registry path is, this is because my application was 32-bit application, and thus was running in a special mode in 64-bit operating system. For more details, check this:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724072(v=vs.85).aspx

I hope this helps in debugging some of your 32-bit applications incompatibility issues as well.

Tags: , , , ,