The key issue here is that "D3DX9" is not part of DirectX 9 or 10. Windows
Vista includes a DirectX runtime that supports DirectX 9 and DirectX 10
APIs, just like Windows XP SP 2 included a DirectX runtime that supports the
DirectX 9 API.
No version of Windows comes with D3DX9, D3DX10, XACT, XINPUT, or these other
DirectX SDK 'optional' components that games might or might not use. Games
are supposed to be installing them as part of their SETUP, but as happens
with every new release of Windows, it turns out a lot of them are buggy.
If you run the "latest DirectX" from
www.microsoft.com/directx/ it will
install everything and the kitchen sink that ships in the DirectX SDK to
help fix these broken SETUPs. The "DirectX runtime" itself is never updated
on Windows XP SP2, Windows XP x64 Edition, Windows Vista, Windows Server
2003, etc.