Hi.
I have a setup installer that installs ext2fsd v0.51 (a third party windows
file system driver found here: http://www.ext2fsd.com/) using the WiX
Toolset v3.5.2201 and DIFxApp:
difx:Driver PlugAndPlayPrompt=no AddRemovePrograms=no /
I basically followed the guide here:
http://kobyk.wordpress.com/2008/10/21/installing-filter-drivers-with-difxapp-and-a-wix-v3-msi/
Install and uninstall work without issues.
The uninstall detects a reboot is required because ext2fsd cannot be
stopped/unloaded on demand.
When asked about this behavior, the ext2fsd author indicated Ext2Fsd does
NOT support 'STOP' or 'UNLOAD' any more. There are various filters on the
top [and] below [the] file system driver. If you [forcefully] unload the
[files system driver], there might be unexpected NULL structures reference.
All known windows file systems are NOT supporting 'UNLOAD'.
See http://sourceforge.net/p/ext2fsd/discussion/143329/thread/d829b011/
And so the end-user is prompted to reboot after uninstall.
However, the problem occurs during a major upgrade where an uninstall of
the old version is scheduled before the re-install of the new version:
InstallExecuteSequence
...
RemoveExistingProducts After=InstallValidate /
...
The ext2fsd driver is uninstalled but is not re-installed.
Here are some relevant snippets from the upgrade MSI log file on Windows 7
x64:
...
MSI (s) (DC:78) [17:57:41:841]: PROPERTY CHANGE: Adding ADDLOCAL property.
Its value is 'ext2fsd'.
...
MSI (s) (DC:78) [17:57:57:503]: Feature: ext2fsd; Installed: Absent;
Request: Local; Action: Local
...
MSI (s) (DC:78) [17:57:57:613]: Component: ext2fsd; Installed: Absent;
Request: Local; Action: Local; Client State: Unknown
...
MSI (s) (DC:20) [17:58:07:924]: Feature: ext2fsd; Installed: Local;
Request: Absent; Action: Absent
...
MSI (s) (DC:20) [17:58:07:955]: Component: ext2fsd; Installed: Local;
Request: Absent; Action: Absent; Client State: Local
...
DIFXAPP: INFO: 'Component' is 'ext2fsd'
...
DIFXAPP: INFO: Component state 0x3 - 0x2
...
DIFXAPP: INFO: 'ComponentId' is {01234567-89AB-CDEF-0123-4567890ABCDE}
...
DIFXAPP: INFO: 'Flags' is 6
...
DIFXAPP: INFO: component path is
...
DIFXAPP: INFO: user SID of user performing the install is
'S-1-5-21-31901841-3674642990-1940449072-1000'.
...
DIFXAPP: INFO: creating
HKEY_USERS\S-1-5-21-31901841-3674642990-1940449072-1000\Software\Microsoft\Windows\CurrentVersion\DIFxApp\Components\{01234567-89AB-CDEF-0123-4567890ABCDE}
(User's SID: 'S-1-5-21-31901841-3674642990-1940449072-1000') ...
MSI (s) (DC!00) [17:58:09:250]: PROPERTY CHANGE: Adding MsiUninstallDrivers
property. Its value is '2.1.1 5 {01234567-89AB-CDEF-0123-4567890ABCDE}
6ProductNameCompanyName'.
MSI (s) (DC!00) [17:58:09:250]: Doing action: MsiUninstallDrivers
Action 17:58:09: MsiUninstallDrivers.
Action start 17:58:09: MsiUninstallDrivers.
MsiUninstallDrivers:
Action ended 17:58:09: MsiUninstallDrivers. Return value 1.
...
DIFXAPP: RETURN: ProcessDriverPackages() 0 (0x0)
...
Action ended 17:58:09: MsiProcessDrivers. Return value 1.
...
MSI (s) (DC:20) [17:58:10:249]: Executing op:
FeatureUnpublish(Feature=ext2fsd,Parent=ExtendedFileSystemDriver,Absent=2,Component=dJ8U!QpmK9lZUY0Nwo{I)
UnpublishFeatures: Feature: ext2fsd
MSI (s) (DC:20) [17:58:26:223]: Executing op:
FileRemove(,FileName=ext2fsd.sys,,ComponentId={01234567-89AB-CDEF-0123-4567890ABCDE})
RemoveFiles: File: ext2fsd.sys, Directory: C:\Program Files
(x86)\CompanyName\ProductName\ext2fsd\
MSI (s) (DC:20) [17:58:26:239]: Verifying accessibility of file: ext2fsd.sys
...
MSI (s) (DC:20) [17:58:32:104]: Executing op:
ActionStart(Name=MsiUninstallDrivers,,)
Action 17:58:32: MsiUninstallDrivers.
MSI (s) (DC:20) [17:58:32:104]: Executing op:
CustomActionSchedule(Action=MsiUninstallDrivers,ActionType=3073,Source=BinaryData,Target=UninstallDriverPackages,CustomActionData=2.1.1
5 {01234567-89AB-CDEF-0123-4567890ABCDE} 6ProductNameCompanyName)
...
MSI (s) (DC:24) [17:58:32:104]: Invoking remote custom action. DLL:
C:\Windows\Installer\MSIAA6A.tmp, Entrypoint: UninstallDriverPackages
MSI (s) (DC:D4) [17:58:32:104]: Generating random cookie.
MSI (s) (DC:D4) [17:58:32:120]: Created Custom Action Server with PID 2172
(0x87C).
MSI (s) (DC:3C) [17:58:32:229]: Running as a service.
MSI (s) (DC:3C) [17:58:32:245]: Hello, I'm your 64bit Elevated custom
action server.
...
DIFXAPP: UninstallDriverPackages()
...
DIFXAPP: 'CustomActionData' property 'DIFxApp Version' is 2.1.1.
...
DIFXAPP: 'CustomActionData' property 'UI Level' is 5.
...
DIFXAPP: 'CustomActionData' property 'componentId' is
{01234567-89AB-CDEF-0123-4567890ABCDE}.
...
DIFXAPP: 'CustomActionData' property 'flags' is 0x6.
...
DIFXAPP: 'CustomActionData' property 'ProductName' is ProductName.
...
DIFXAPP: 'CustomActionData' property 'ManufacturerName' is CompanyName.
...
DIFXAPP: INFO: user SID of user performing the install is
'S-1-5-21-31901841-3674642990-1940449072-1000'.
...
DIFXAPP: INFO: opening