It could be a driver bug, but I don't think that's likely. Much more likely to be a corruption, either in the registry (registration of DLLs, COM components etc.), or in the file system. First port of call would be to run sfc /scannow and see if you can dig out a corrupt file. If that doesn't work, see if you can find an Event Log entry which matches up. Hopefully that will include a full CLSID which you can then trace, then re-register that DLL on the OP's computer.
The reality is though that this error is very hard to fix, and a lot of the time you probably won't manage to find the corruption if it lies in the registry. It could be in very many places (I've only mentioned the common ones we can fix, but there are many others, most of which I don't know).