We are using a third party USB product which includes their own driver installation. We are in the process of releasing a new version of our product which includes upgrading their driver installation from 1.30 to 4.0.0. During testing we have encountered cases where 1) the driver does not load when the device is attached and 2) the driver cannot be uninstalled.
Found this in setupapi.app.log after trying to uninstall using dpinst.
>> [SetupUninstallOEMInf - oem255.inf]
>> Section start 2016/08/25 14:30:36.325
cmd: dpinst /u C:\Windows\System32\DriverStore\FileRepository\performaxusb.inf_amd64_neutral_9090e985495619ff\performaxusb.inf
<<< Section end 2016/08/25 14:30:36.327
<<< [Exit status: FAILURE(0x00000002)]
The symptom appears is that oem255.inf goes missing from C:\Windows\Inf. We do not know how oem255.inf was removed. Driver installation and uninstallation is normally done via provided tools. The only time I and dpinst get involved is when the device shows up as Unknown in Device Manager. Then I find that the driver does not load and cannot be removed. If we create a file named oem255.inf in C:\Windows\Inf\ then the driver can be uninstalled.
So far we have not been able to recreate the problem. The symptom is easily recreated by installing the driver, attaching a device, removing the appropriate oem##.inf, then trying to reload or uninstall the driver.
- Any idea how oem255.inf might have disappeared? I suspect it happens during installation of the new driver. Perhaps when transitioning from the old driver to the new driver. Upgrade succeeds most of the time. The disappearing oem##.inf has occurred several times in the past few months.
- Why would the driver fail to uninstall?
- Some database, not the registry, connects oem255.inf to the device. Any idea where this information is stored?