This has had me puzzled over the last few days.
I have been upgrading an oldish PC using XP pro.
Everything went ok installing all the usual programs and updates, even put SP 3 on it.
A couple of programs said that they wanted to install Direct X9, which was already on due to SP2, but they installed it anyway.
When I came to installing Nero 7 it said it needed to update Direct X 9 to 9c and wouldnt continue to install until I had downloaded and installed 9c from microsoft.
I went to the MS download site and downloaded and installed Direct X 9c runtime, the SDK package, as that was the latest one.
Tried Nero again and it said it couldnt update Direct X 9 and to download it etc
Even though I had downloaded and installed Direct X 9c, DXDIAG was showing it as 9b
I must have reinstalled it at least 6 times, tried different versions of Direct X 9c runtime, all with the same result.
I found a program called Direct X Eradicator that is supposed to remove all Direct X components, then ran that.
Re installed Direct X againbut while doing it I got an error message saying the SOUND.DLL was missing so it couldnt install.
I downloded that and added it to the system files and tried again.
This time it went a bit farther and came up with another error message, think it was a vid problen but cant remember it now.
I couldnt resolve that problem and unistalled both the sound card and the graphics card from device manager and let it reinstall the drivers on the next reboot, hoping that would fix it. I didnt
Eventually I did a system restore to a day or two before trying to install Nero and getting the Direct X 9 problems.
This at least gave me Direct X 9 again according to DXDIAG but it was still saying 9b and not 9c.
Eventually I found a fix which was very simple but I think whoever found it must be a genius, (whoever you are, thank you very much), its a simple registry modification.
This is how to do it :
Type REGEDIT in the RUN box and click OK.
Go to :
Hotkey Local Machine
Software
Microsoft
Directx
Edit the version line to read 4.09.00.0904
I just had to change the last number which was 2 in my case to a 4 but you may have a different number in your line.
Exit the registry and run DXDIAG again and it will show that version 9b is now 9c
Nero installed fine after this even though it did update some files when it got to the needing to update Direct X 9 part.