Help with, "Your Direct X driver is corrupt or incorrect"

Discussions about using Windows guests in VirtualBox.
jsteiner
Posts: 11
Joined: 5. Aug 2008, 21:16
Primary OS: Ubuntu other
VBox Version: PUEL
Guest OSses: Linux, Windows

Re: Help with, "Your Direct X driver is corrupt or incorrect

Post by jsteiner »

This is what worked for me. 4.1.8 wddm additions failed with the posted error. I have a 64bit windows 7 host with 64 bit Windows 7 guests. Use a local administrator, or member of, account for all steps. I booted up the guest which was still running the 4.1.6 additions. I created a shared folder and copied d3d9.dll and d3d8.dll from the hosts c:\windows\syswow64 directory to the guests desktop. I rebooted the guest into safe mode and uninstalled the 4.1.6 additions. Reboot the guest back into safe mode. I then used device manager to delete any held over VB display adapters rescanning for changes until I got back to the Generic VGA adapter. VB adapter persistence varied slightly in device manager across my 5 guests. I then copied the two files into c:\windows\syswow64 and made sure they did not exist in c:\windows\syswow64\dllcache. Reboot the guest normally. Install the 4.1.8 additions using the wddm driver. Reboot. Fixed. Repeat for each guest. I cloned my vdi's, keeping the same uuid, prior to doing this and recommend doing the same. At least then you get multiple do overs if something goes wrong. I think the corrective action is clear in this thread but some tinkering may be needed. Aero works for me but I think I manually had to enable the Aero theme in 4.1.x when I first tried wddm.
notzippy
Posts: 9
Joined: 10. Jun 2011, 19:25
Primary OS: Ubuntu other
VBox Version: OSE other
Guest OSses: Windows 7

Re: Help with, "Your Direct X driver is corrupt or incorrect

Post by notzippy »

jsteiner wrote:This is what worked for me. 4.1.8 wddm additions failed with the posted error. I have a 64bit windows 7 host with 64 bit Windows 7 guests. Use a local administrator, or member of, account for all steps. I booted up the guest which was still running the 4.1.6 additions. I created a shared folder and copied d3d9.dll and d3d8.dll from the hosts c:\windows\syswow64 directory to the guests desktop. I rebooted the guest into safe mode and uninstalled the 4.1.6 additions. Reboot the guest back into safe mode. I then used device manager to delete any held over VB display adapters rescanning for changes until I got back to the Generic VGA adapter. VB adapter persistence varied slightly in device manager across my 5 guests. I then copied the two files into c:\windows\syswow64 and made sure they did not exist in c:\windows\syswow64\dllcache. Reboot the guest normally. Install the 4.1.8 additions using the wddm driver. Reboot. Fixed. Repeat for each guest. I cloned my vdi's, keeping the same uuid, prior to doing this and recommend doing the same. At least then you get multiple do overs if something goes wrong. I think the corrective action is clear in this thread but some tinkering may be needed. Aero works for me but I think I manually had to enable the Aero theme in 4.1.x when I first tried wddm.
Tinkered :
sfc/scannnow in safe mode , reboot and (in windows normal mode) was able to install vbox drivers with no errors :D

My symptons were a little different - java applet would not load in browser but it boiled down to the same issue..
thanks for the info

nz
interlingue
Posts: 1
Joined: 11. Mar 2012, 00:37

Re: Help with, "Your Direct X driver is corrupt or incorrect

Post by interlingue »

Hi everyone.

Thank you so far for posting your advice and experiences. I also had the "corrupt or incorrect directx" issue with a Windows 7 guest and finally got it working without any complaints whatsoever (and without 3D drivers installed, for the moment). By the way, my main motivation was that Adobe Bridge wasn't working anymore for several releases of VBox. I found out that Bridge needs d3d9.dll, and some installation of the 3D drivers (WDDM or non-WDDM, that's still my question) in the past broke the file. To be honest, another bit of motivation to fix this was that the screen resolution couldn't be matched to the Mac screen in the guest system, but this was due to the fact that I had unchecked "Auto-resize guest display" - I guess, this was today's facepalm ;o) Anyway, right now I don't care about Aero, so I didn't look into this any further, but I hope that you can fix your guest additions' installation and try the 3D stuff as much as you want.

It took me quite a while to figure this out, but I noticed the following facts:

- sfc /scannow complains if the files d3d8.dll and d3d9.dll from Windows\system32 don't match those residing in subfolders of %windir%\winsXs\. As soon as I replaced all of them with the versions extracted from my Win 7 DVD (as described in the Virtualbox manual), no system files were marked as corrupt by sfc. However, the guest additions setup still brought up the error message of my directx setup being corrupted.
- The guest additions setup complains if d3d8.dll, d3d9.dll from system32 don't match those in system32\dllcache - but it apparently doesn't care about the winsXs ones.
- If you update the guest additions, the setup apparently replaces the old (e. g., 4.1.6), non-MS versions of the two files with the new ones (4.1.8 in this example) and renames them to msd3d8,9.dll - but in my case they were still the old virtualbox ones. Just check the file size: d3d8 from oracle has 77k, d3d8 from MS has 1 MB and d3d9 from MS 1.8 MB. At least in my system.

My suggestion is to have the guest additions setup check in all three locations for matching d3d8,9.dll files (and to delete them from there if the additions are uninstalled). Also, the setup should maybe test if the msd3d8,9 (i. e., the backup in the directory dllcache) are still the original MS ones - and if so, they should stay in place. Or would that collide with other setup routines?

To summarise, for me it worked when I extracted the original d3d8,d3d9 from your windows CD/DVD (see manual) placed them in all three of these directories (%windir%\system32, %windir%\system32\dllcache and %windir%\winsXs' subfolders) and deleted the wrongly backed up msd3d8,9.dll.

Good night, and good luck

M
Post Reply