Mar 29, 2014

[workaround] Displaylink and DirectX9

If you're using a Displaylink device to connect additional screens through USB, you might get in trouble when trying to run any application or game that is based on DirectX9 or lower.

You will get error messages about DirectX and the application is not useable:
  • WARCRAFT III failed to initialize DirectX. Please check that you have DirectX 8.1 or later installed...
  • Ein unbekannter DirectX-Fehler ist aufgetreten, sodass League of Legends nicht gestartet werden kann...
  • DEVICE_CREATE_ERROR - An invalid parameter was passed to the returning function.
Displaylink does not address this issue for at least a year now. I also contacted Displaylink by mail and on forum begging them to fix that issue.

Disabling the Displaylink device in the device manager or removing the USB device does not help. One workaround is to uninstall the drivers completly. But that's a bit annoying if you only want to do this once.

Another more smart workaround is to temporarily disable the drivers. This is possible with Autoruns from SysInternals:
  1. Start Autoruns
  2. Switch to run as administrator
  3. Go to drivers tab
  4. Remove both the checks on dlkmd DisplayLink WDDM KMD and dlkmdldr DisplayLink WDDM KMD Loader
  5. Reboot your machine

Displaylink will autoinstall the drivers again after the reboot, but if you decide not to reboot this time you're able to run all the games during this session. On the next startup everything will be back to original state. Of course during the drivers disabled you can NOT use your additional monitors.