0

Some Windows 2012-R2 customers see an Error Code 38 when they try to re-enumerate a PnP device which has been previously removed even though a trace of the driver (WDM) for that device indicates its unload routine has been called and it has successfully completed. The description of that error code is:

“Windows cannot load the device driver for this hardware because a previous instance of the device driver is still in memory.”

I don't see how the driver can still be in memory if its unload routine is called. Perhaps the error code 38 indicates another problem despite its description?

  • Update on this: – philfourthirteen Jan 14 '17 at 00:21
  • Update: I was mistaken about the driver unload function. It can be called even if there are outstanding references to the driver object which turns out to be the case with several customers seeing this problem. I tried Windbg's "!obtrace" on driver objects but that did not show me much other than missing object dereferences. One customer claims it only fails when vSphere client is installed. Perhaps one of its drivers is referencing the driver object and not releasing it. I can't repro this in my lab but several customers are able to easily repro it. How can I troubleshoot this? – philfourthirteen Jan 14 '17 at 00:30

0 Answers0