[wix-users] Revisiting DIFxAPP major upgrades with required reboot, any solutions?

Phill Hogland phill.hogland at rimage.com
Fri Mar 4 06:07:01 PST 2016

I use the WixDifxApp extension for different types of PNP printer devices and to deploy a third-party USB driver.  I only do MajorUpgrades without observing the issues which were referenced.  I do not have experience with FileSystem drivers, but in general DifxApp does not by default support all kinds of drivers, so I would review the DifxApp requirements carefully.

I do not believe that a FileSystem driver is considered a PNP driver, and supported by default.  The link posted earlier also implies this by indicating that DifxApp must be set to 'legacy' mode.  I assume also that the INF has DriverPackageType specified.  From the posts that I have read on OSR, my understanding is that unlike the unload of a PnP device which is very determinant, the unload of a FileSystem driver can be very unpredictable based on the design of the driver.

So I suspect the core issue goes back to the design of the driver and the efforts to cleanly unload the driver.  From a deployment perspective (which is primarily a driver design concern) if I could not affect changes to the driver, I would investigate a MSI CA that uses SetupAPI and the CM_ api to try and get the driver unloaded prior to the uninstall, but this approach is limited by the design of the driver.  I would look for samples along this line in the WDK.  The folks at OSR.com have always been a good resource for tracking down solutions to driver issues.

From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Jürgen Schäpker <Juergen.Schaepker at giepa.de>
Sent: Friday, March 4, 2016 4:29 AM
To: WiX Toolset Users Mailing List
Subject: [wix-users] Revisiting DIFxAPP major upgrades with required reboot, any solutions?


DiFX upgrades have been an issue in the past



We are trying to install/upgrade a FileSystem driver. Uninstalling this (old) driver requires a reboot, so upgrading it will require a reboot as well before install of the new files can start.

I have set the package to remove the old version first and force a reboot after uninstall.

      <RemoveExistingProducts Before="InstallInitialize" />
      <ScheduleReboot After="InstallFinalize">

The upgrade log shows this at the end of the uninstall phase for the old version:

"DIFXAPP: WARNING: The uninstall phase of this upgrade required a reboot. This may result in errors during the subsequent install phase. If such errors do occur, please reboot your system and run the upgrade again."

The upgrade continues anyway with the install phase for the new version which of course then fails installing the new driver because the old driver will only be removed on the reboot.

Is there a better solution for this scenario than just disallowing an upgrade (and showing a message "Uninstall old version first")?

Is there a possibility to schedule the install phase of the upgrade to after the reboot? (I mean inside the MSI, not with Burn).

Best regards,
Jürgen Schäpker

WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/

More information about the wix-users mailing list