How DIFxApp Works
DIFxApp install and uninstall operations are based on the following DIFxApp-specific items in a Windows Installer installation package:
-
A Windows Installer feature and a unique Windows Installer component that represents each driver package. The component is configured to copy the driver package files to an application-specific location.
-
An MsiDriverPackages custom table, in which each row specifies information about a driver package.
- The following Windows Installer custom actions, which are provided by the DIFxApp dynamic-link libraries (DLLs): DIFxApp.dll and DIFxAppA.dll.
Name of DIFxApp custom action Action MsiProcessDrivers An immediate-execution custom action that controls the overall installation of driver packages. For more information about MsiProcessDrivers, see Operation of MsiProcessDrivers.
MsiInstallDrivers A deferred-execution custom action that installs a driver package. For more information about MsiInstallDrivers, see Installing Driver Packages.
MsiUninstallDrivers A deferred-execution custom action that uninstalls a driver package. For more information about MsiUninstallDrivers, see Uninstalling Driver Packages.
MsiRollbackInstall A deferred-execution custom action that reverses the changes to a system that are associated with installing a package. For more information about MsiRollbackInstall, see Reversing System Changes.
MsiCleanupOnSuccess An immediate-execution custom action that cleans up the registry after packages are successfully installed or uninstalled. For more information about MsiCleanupOnSuccess, see Cleaning Up After an Install or Uninstall.
Note DIFxApp uses two custom action DLLs because, in version 1.1 of Windows Installer, a binary table custom action cannot call the MsiDoAction Windows Installer database function on the same binary table custom action. Consequently, MsiProcessDrivers must be implemented in a different DLL than MsiInstallDriverPackages, MsiUninstallDriverPackages, and MsiRollbackInstall.
In addition to the basic operations that install and uninstall driver packages, DIFxApp can also:
-
Manage the association between a driver package, the driver package service, and the applications that installed the driver package. For more information, see Associating Services, Driver Packages, and Applications.
-
Add an entry, which represents a driver package, to Programs and Features in Control Panel. You can select this entry within Programs and Features to uninstall a driver package in Safe mode if the driver adversely affects system operation. Be aware that you can configure DIFxApp so that it does not create this entry for a driver package. For more information, see Uninstalling a Driver Package by Using an Entry in Programs and Features.
Note In versions of Windows earlier than Windows Vista, DIFxApp added the entry for the driver package to Add or Remove Programs in Control Panel.
-
Log information about the progress of a driver installation or removal. For more information, see Logging Information and Errors.
-
Update driver packages based on the component identifier of the driver package. For more information, see Updating Versions.
-
Preinstall driver packages for devices that are not yet connected to a computer. For more information, see Using DIFxApp to Preinstall a Driver Package.
-
Suppress the display of user dialog boxes and messages during installation. For more information, see Support for Quiet Installations.
-
Install unsigned driver packages and driver packages with missing files in legacy mode. For more information, see Installing Unsigned Driver Packages in Legacy Mode.
-
Install unsigned driver packages to test the installation of the driver packages. For more information, see Configuring DIFxApp to Install Unsigned Driver Packages for Testing Purposes.
-
Remove files that were copied to a system from the DIFx driver store when a driver package was installed. For more information, see Removing Files When Uninstalling a Driver Package.
For a summary of the DIFxApp configuration flags that can be used to control the operations that are described in this section, see Setting the DIFxApp Configuration Flags.
Send comments about this topic to Microsoft
Build date: 5/16/2013