Working with Applications in Windows 64-Bit
As you might have figured out by now, to run Win-32 based applications on 64-bit Windows you need to use an emulation layer and with Windows x64 Editions (even though a 32-bit process can't load a 64-bit DLL and a 64-bit process can't load a 32-bit DLL). The support for remote procedure call (RPC) allows communication between 64-bit and 32-bit processes. There are some other limitations as well - for example, if you try to run a 16-bit application in 64-bit Windows you will receive an error, due to handles having 32 significant bits in 64-bit Windows, thus you can't pass them to 16-bit Windows without losing data on the way.
Most Win32-based applications can run smoothly on Windows x64 Editions with the help of the x86 emulator, also known as WOW64. The system totally isolates 32-bit and 64-bit applications, so there is no file or registry collisions occurring between them. Users can cut and paste between the two transparently. However, don't be misled about the purpose of WOW64 - which is to provide seamless interoperability between the 32-bit and 64-bit boundaries by allowing us to run 32-bit applications in 64-bit Windows. In other words, it is not meant to necessarily run 32-bit server applications. Server applications such as SQL Server 2000 have their 64-bit edition (see links at the end of this article).
You may need to update your applications that run in kernel mode (such as Virus Protection applications) due to applications containing 16-bit code, even though they are considered to be 32-bit applications. It is recommended that you check your OEM's web site for updated software for x64 editions.