This article provides answers to frequently asked questions about Driver Install Frameworks (DIFx) tools, which simplify installation of driver packages and eliminate most end-user manual steps for installing a driver.
This information applies for the following operating systems:
Microsoft Windows Vista
Microsoft Windows Server 2008
Microsoft Windows Server 2003
Microsoft Windows XP
Microsoft Windows 2000
| General Issues | |
| Driver Package Installer (DPInst) | |
| Driver Install Frameworks for Applications |
These tools are currently available:
| • | Driver Install Frameworks for Applications (DIFxApp) |
| • | Driver Package Installer (DPInst) |
| • | Driver Install Frameworks Library (DIFxLIB) |
| • | Download released versions: Driver Install Frameworks Tools |
| • |
For newsgroup support on released DIFx tools, go to: |
| • | For Microsoft PSS support open a PSS incident. |
The Driver Install Frameworks Library (DIFxLIB) exposes functions for preinstalling, installing, and uninstalling driver packages that meet DIFx requirements, associating driver packages with applications when the package is installed, logging events related to preinstallation, installation, and uninstallation, and retrieving the INF file path for a preinstalled driver package from the driver store.
You may redistribute these tools as described in the license agreement that ships with the tools.
| • |
InstallShield uses DIFx to install drivers and has added a Device Driver Wizard to InstallShield X. |
| • |
Wise has provided customers with a template that can be downloaded at no charge through the Download Redistributables Wizard within Wise Installation Studio/Express. |
The DIFx tools support drivers for x86-based systems, x64-based systems, and Itanium-based systems.
These tools do not explicitly require your drivers to be signed. However, Microsoft recommends driver signing as a way to increase the reliability and stability of the operation system. Drivers can be signed through two methods:
| • | |
| • | Using Authenticode to Digitally Sign Driver Packages for Windows Server 2003 |
By default, DPInst allows only signed drivers to be installed and requires that all the files listed for copying in the INF are actually present. To disable this mode and apply the driver signing policy in effect for the operating system on the target system, use one of the following:
| • | < legacyMode /> line in the XML file |
| • | /lm command line switch |
This switch disables the additional Windows Vista and Windows Server 2008 requirements built into DPInst and enables vendors who are shipping drivers only for Windows 2000, Windows XP, or Windows Server 2003 to take advantage of DPInst. Unsigned drivers will be accepted and will be installed according to the policy setting for the underlying operating system. INFs that reference files that cannot be found in the source media will generate only a warning in the log without causing the installation to fail.
To do this, attach a kernel debugger to the system and set the environment variable _DFX_INSTALL_UNSIGNED_DRIVER to 1.
When this variable is set, DPInst does not verify that the package is signed and does not check for the presence of a catalog file for the package.
This option has been kept for backward compatibility. The legacy mode flag described earlier is the recommended way to disable the requirement for signed drivers.
If Windows Plug and Play Manager does not find a driver already on the system for the hardware, the DIFx tools will install your driver for the device.
Otherwise, if Windows Plug and Play Manager finds a driver for the device already on the system, the driver will be installed automatically. The DIFx tools then check first to determine whether the new driver is better than the one currently installed. If the new driver is better than the current one, the tools will update the driver.
Finally, DPInst and DIFxApp have an optional flag that forces the driver to be updated regardless of whether it is better. However, this flag works only in quiet installation mode. If this flag is used, the device driver will always be updated to the new driver installed with DIFx Tools.
Yes. Starting with Version 1.1 of the DIFx tools, these applications are localized to support 22 languages. The languages are:
Chinese (People's Republic of China) | Italian (Italy) |
Chinese (Taiwan) | Japanese (Japan) |
Czech (Czech Republic) | Korean (Korea) |
Danish (Denmark) | Norwegian (Bokmål) (Norway) |
German (Germany) | Dutch (Netherlands) |
Greek (Greece) | Polish (Poland) |
English (United States) | Portuguese (Brazil) |
Spanish - Modern Sort (Spain) | Portuguese (Portugal) |
Finnish (Finland) | Russian (Russia) |
French (France) | Swedish (Sweden) |
Hebrew (Israel) | Turkish (Turkey) |
DPInst 1.0 and DIFxApp 1.0 do not support localization.
Yes. DPInst, DPFxApp, and DIFxLIB can be used now on builds of Windows Vista.
DPInst supports quiet installation through the /q (quiet) or /qq (strict quiet) flags on the command line or the <quietInstall/> or <strictQuietInstall/> line in the XML file.
The quietInstall flag works in combination with the presence of an end-user license agreement (EULA) page and the suppressEulaPage flag. If the XML files require a EULA and the EULA is not suppressed, the quiet installation will become a wizard-guided installation.
For more information, see Using the Driver Package Installer (DPInst).
Yes, they will update phantom devices.
Currently there is no publicly supported way to uninstall a driver with DPInst such that it can be called on the command line or from another installer. The supported solution is to point the user to Add/Remove Programs. Support for uninstall is planned for the next version of DPInst.
Yes, InstallShield works with DIFXApp. Check the InstallShield Web site for more information.
Can I suppress the "plug in hardware" prompt from the MsiCleanupOnSuccess function of DIFxApp?
Currently the only way to suppress this prompt is to opt for a silent installation by using the /q switch with Msiexec. However, that will also suppress any other dialog box that could appear during the installation. In a silent installation, if DIFxApp encounters a code path where it cannot proceed without showing UI, it will fail.
For example, DIFxApp cannot proceed without showing UI if DIFxApp needs to display an unsigned driver prompt. This is a critical prompt, and during a silent installation DIFxApp will fail because it cannot display the prompt.
However, as another example, DIFxApp can proceed if a request for the "Plug in hardware" prompt occurs. The "Plug in hardware" prompt is not a critical prompt, so DIFxApp will just suppress it and continue during a silent install.
DIFxApp checks to determine whether or not the hardware is connected.
Unfortunately, this pop-up cannot be replaced by a custom dialog box.