Yep, DirectX 10 only works on Vista.
Windows 2000/XP both use the same drivermodel as Windows 95/98/Me. That's why older DirextX versions are "backwards compatible" and for example will work on Windows 98. Windows Vista uses another driver model and DirextX 10 is only developed to run on that driver model.
DirectX 5 and Windows 2000 were made when most gamers used Windows 98, so DirectX 5 was made to run on Windows 98. And for the sake of not reinvinting the wheel, Microsoft used big parts of the Windows 98 driverarchitecture for Windows 2000. The drivermodel used for WIndows 98 was developed for direct acces to the hardware. The Windows NT line didn't allow direct acces for securety reasons, so an extra layer between the driver and the hardware was created as solution in Windows 2000/XP. Something extra means slower speed and more problems. This model with layers can't keep up with the brute force of the new GPU's, so in Vista they changed it.
The following might explain the slower speed too:
Windows 2000/XP:
Direct3D app -> Direct3D runtime(encode) -> (decode)Kernel mode driver(encode) -> (decode)GPU -> screen
Windows Vista:
Direct3D app -> Direct3D runtime(encode) -> Kernel mode driver -> (decode)GPU -> screen
And ofcourse, a second reason and public secret: when DirectX 10 only works on Vista, Vista will sell better. Knowing Microsofts history, it's just normal that they like it this way.
- Mel