Why can't Windows 7 64 bit run 32 bit programs?
Solution 1:
it can run 32 bit programmes fine. It can't run 16 bit programmes.
XP mode is a bit of insurance - if a particular software won't run on 7 (32 OR 64 bit - xp mode is available for professional edition and up on both) then you can run it in XP mode. This hasn't happened to me yet, but its probably for the 'you can take XP from my dying hands' crowd.
In most cases, compatibility mode will do tho
Solution 2:
I hope this sheds some light on incompatibilites:
Microsoft decided to tighten up on the kernel with the 64-bit versions. Device drivers have the same level of access to hardware as the kernel, so some specific things that were changed in 64-bit versions in the name of security are:
- Drivers must be signed by Microsoft to load.
- I don't know if technically 32-bit drivers can work with a 64-bit kernel (unlikely) but Microsoft isn't signing new 32-bit drivers with the key the 64-bit kernel wants. So all existing XP 32-bit drivers will not work on 64-bit Vista/7.
- Drivers cannot overwrite or patch the kernel.
Microsoft also switched to a new video display driver model (LDDM), but did keep the old one (XDDM). XDDM, the old model, doesn't support Aero.
Some programs load customized device drivers on the fly to accomplish their tasks. These will defintely not work on Vista/7.
Microsoft updated quite a few components in Vista/7. This could mean a change in the undocumented behavior of those components. Programs that rely on bugs within these components, or undocumented DLL functions would have an issue as well.
Solution 3:
32 bit programs should run just fine under 64 bit Windows.
XP mode is for programs that are incompatible with Windows Vista and Windows 7 of either flavour.
See this Ars Technica article for more information.
The issue really came to a head with the release of Windows Vista. Vista's compatibility with XP was very good, but it wasn't perfect. Microsoft did a lot of work on Vista to harden it against attacks (UAC, of course, but also other things, like prohibiting services from having user interaction), and together these modifications and improvements, along with more mundane stuff like updating the version number that Windows has, have conspired to break some old software.