Export (0) Print
Expand All

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 actionAction

    An immediate-execution custom action that controls the overall installation of driver packages. For more information about MsiProcessDrivers, see Operation of MsiProcessDrivers.


    A deferred-execution custom action that installs a driver package. For more information about MsiInstallDrivers, see Installing Driver Packages.


    A deferred-execution custom action that uninstalls a driver package. For more information about MsiUninstallDrivers, see Uninstalling Driver Packages.


    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.


    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:

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

© 2015 Microsoft