For those of you who haven’t had the joys of the Win64 registry, I decided that I would blog about it. When Win64 came around, clearly the Windows team had to think about how to support having 32-bit and 64-bit applications installed side-by-side. Their solution was to have two different versions of HKEY_LOCAL_MACHINE\Software. Which version of HKEY_LOCAL_MACHINE\Software your application got depended on if the process was 64-bit or 32-bit. Then, some keys are ‘reflected’. This means that if you register a 32-bit exe under ‘HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{guid}\LocalSever32’, that key will also be automaticially written to the 64-bit registry. This isolation makes life much easier for some applications. However, it makes life much more complicated for the VS Debugger.
There are a few problems with this scheme:
A bit more information is here - http://support.microsoft.com/default.aspx?scid=kb;EN-US;305097