I have a driver that uses KMDF 1.9, compiled with driver kit 7600.16385.1, ships with a product, and works on everything we’ve tested. One of the beta testers reported a failure on his windows XP computer. It looks like the problem starts when setupact.log prints “KMDF on-disk version”. What file or registry key does the coinstaller check when it prints that message?
His setupapi.log gives a generic:
#I163 Device not started: Device has problem: 0x27: CM_PROB_DRIVER_FAILED_LOAD.
But there is more useful information in setupact.log:
WdfCoInstaller: DIF_INSTALLDEVICE: Pre-Processing
WdfCoInstaller: ReadComponents: WdfSection for Driver Service dtusbser using KMDF lib version Major 0x1, minor 0x9
WdfCoInstaller: DIF_INSTALLDEVICE: Coinstaller version: 1.9.7600
WdfCoInstaller: GetControlKey: RegOpenKeyEx(HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Wdf\Kmdf\KmdfLibrary\Versions) failed: error(2) The system cannot find the file specified.
WdfCoInstaller: KMDF control key was not found
WdfCoInstaller: Using default name for KMDF service: Wdf01000
WdfCoInstaller: GetInMemoryVersionUlong: No information about in-memory KMDF version
WdfCoInstaller: DIF_INSTALLDEVICE: KMDF in-memory version: 0.0.0
WdfCoInstaller: GetLatestInstalledVersion: KMDF was not previously installed in the system
WdfCoInstaller: DIF_INSTALLDEVICE: KMDF on-disk version: 7340141.7209071.7209061
WdfCoInstaller: GetControlKey: RegOpenKeyEx(HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Wdf\Kmdf\KmdfLibrary\Versions) failed: error(2) The system cannot find the file specified.
WdfCoInstaller: KMDF control key was not found
WdfCoInstaller: Using default name for KMDF service: Wdf01000
WdfCoInstaller: CheckServiceInUse: Wdf01000 service could not be opened
WdfCoInstaller: DIF_INSTALLDEVICE: No need for reboot
WdfCoInstaller: DIF_INSTALLDEVICE: Update is not required. The on-disk KMDF version is newer than or same as the version of the coinstaller
I don’t know if KMDF ever existed on this system, but the on-disk version string is clearly bogus. I had him run the batchfile described in “Packaging and Deploying KMDF and UMDF Drivers”. The only files were:
c:\windows\system32\wdfapi.dll
c:\windows\system32\wdfmgr.exe
And he had no “services\wdf01000 Service” or “control\wdf Loader” registry key. Any ideas?