cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
SMadden
Level 6

repair install doesn't update the device

Hi,

We have a Basic MSI project that installs 2 device drivers. Everything works fine for a fresh install, but a repair install only stages the drivers into the driverstore, it does not install them for the device itself.

The testcase is a 32Bit Windows 7
1) do a fresh install
2) go into DeviceManager and check that both devices have our drivers installed
3) uninstall the devices (check the checkbox to remove the drivers)
4) Rescan devicenode to get the device in as unknown / MS default drivers installed.
5) run a repair install

-> the drivers are staged, but the devices didn't change. I still have one unknown device and one that has the MS default drivers installed in the DeviceManager

6) rescan devicenode manually (or reboot)

-> the drivers for the unknown device get installed, the 2nd device still has the MS default one installed.

When looking at the setupapi.log, the UpdateDriversForPlugAndPlayDevices call is missing in a repair scenario. For the initial install it is there.

Any idea how to fix this? Could this be a bug in the DIFX tools? The MsiInstallDrivers and MSIProcessDrivers Custom actions do run in both scenarios. Is there another CA that I could look at that might be missing?

Any help is appreciated.

Thanks,
Sandra
Labels (1)
0 Kudos
3 Replies
Holger_G
Level 10

Hey Sandra,

not sure but it could really be a problem of DIFxApp since DPInst is working fine in the same scenario. I checked the setupapi.dev.log and noticed that SetupCopyOEMInf will be called twice during repair install. The first results with SUCCESS but the second results with FAILURE (0x00000050). Could it be that SetupCopyOEMInf will be called instead of UpdateDriverForPlugAndPlayDevices?!? (just a thought..).

-Holger
0 Kudos
SMadden
Level 6

Moin Holger,

thanks for looking into the issue. I openeded a support ticket with MS on this and just wanted to give some feedback on the results.

The bottomline is that the test case is invalid since the DeviceManager was used to change the devices state.

A repair install is only supposed to fix a malfunctioning driver. It is not supposed to change the devices state. This can only be achieved by a reinstall, not a repair.

-Sandra
0 Kudos
Holger_G
Level 10

SMadden wrote:
Moin Holger,

thanks for looking into the issue. I openeded a support ticket with MS on this and just wanted to give some feedback on the results.

The bottomline is that the test case is invalid since the DeviceManager was used to change the devices state.

A repair install is only supposed to fix a malfunctioning driver. It is not supposed to change the devices state. This can only be achieved by a reinstall, not a repair.

-Sandra


Danke für das Feedback, Sandra 🙂
0 Kudos