9

From what I understand of it, the architecture hasn't changed as much as it did from 16 bit to 32 bit so why do we need XP mode and the like to run 32 bit apps in Windows 7 64 bit?

Or have I understood it wrong?

Wuffers
  • 19,020
  • 17
  • 95
  • 126
Oscar
  • 93
  • 1
  • 4
  • We had a program that didn't like it very much. The actual problem in the end boiled down to 64 bit Office (we had an Office plugin). – Joshua Nov 15 '15 at 21:13

3 Answers3

16

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

Journeyman Geek
  • 127,463
  • 52
  • 260
  • 430
5

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.

LawrenceC
  • 73,030
  • 15
  • 129
  • 214
  • +1 for the insight about 32bit and 64bit Windows drivers. I have some old audio hardware (SW1000XG,UR-80) that will only work on my 32bit install of Windows 7 but not my 64 bit install. It's a real shame because they are nice, classic kit. – therobyouknow Nov 25 '11 at 15:02
  • _"I don't know if technically 32-bit drivers can work with a 64-bit kernel (unlikely)"_. It's not impossible in OSs in general, but to do it in Windows would require all drivers to conform to driver models with far stricter isolation from various OS internal details. I don't see how it could be done with e.g. Windows Driver Model or pre-WDM drivers. WDF would be easier but still not a slam-dunk. – Jamie Hanrahan Jan 14 '17 at 13:53
2

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.

ChrisF
  • 41,278
  • 17
  • 101
  • 154