DIFx FAQ: Information about Driver Install Frameworks Tools

Updated: August 11, 2008

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

*
On This Page

General Issues General Issues

Driver Package Installer (DPInst) Driver Package Installer (DPInst)

Driver Install Frameworks for Applications Driver Install Frameworks for Applications

General Issues

What are the currently available Driver Install Frameworks Tools?

These tools are currently available:

Driver Install Frameworks for Applications (DIFxApp)

Driver Package Installer (DPInst)

Driver Install Frameworks Library (DIFxLIB)

Where can I find the DIFx tools?

Download released versions: Driver Install Frameworks Tools

How do I get help with the DIFx Tools?

For newsgroup support on released DIFx tools, go to:
news://microsoft.public.development.device.drivers

For Microsoft PSS support open a PSS incident.

What is DIFxLIB?

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.

Can I redistribute DPInst , DIFxApp, and DIFxLIB?

You may redistribute these tools as described in the license agreement that ships with the tools.

Can I use InstallShield or Wise with DIFx Tools?

InstallShield uses DIFx to install drivers and has added a Device Driver Wizard to InstallShield X.
See the InstallShield description of this wizardThis link leaves the Microsoft.com site

Wise has provided customers with a template that can be downloaded at no charge through the Download Redistributables Wizard within Wise Installation Studio/ExpressThis link leaves the Microsoft.com site
About Wise support for DIFx This link leaves the Microsoft.com site

Will DPInst and DIFxApp support 64-bit drivers?

The DIFx tools support drivers for x86-based systems, x64-based systems, and Itanium-based systems.

Are signed drivers required with DPInst and DIFxApp?

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:

WHQL Testing for the "Designed for Windows" logo program

Using Authenticode to Digitally Sign Driver Packages for Windows Server 2003

How do I disable the signing requirement?

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.

How do I disable the requirement for signed drivers for testing purposes?

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.

What if my customer adds my hardware before installing my software?

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.

Is localization supported in version 2.0 of the 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.

Can I Use DPInst, DIFxApp, and DIFxLIB on a build of Vista?

Yes. DPInst, DPFxApp, and DIFxLIB can be used now on builds of Windows Vista.

Top of pageTop of page

Driver Package Installer (DPInst)

How can I use DPInst to silently deploy drivers in my enterprise?

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).

Will DPInst and DIFxApp update phantom devices?

Yes, they will update phantom devices.

Can I use DPInst from my setup to remove a driver during the setup uninstallation routine?

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.

Top of pageTop of page

Driver Install Frameworks for Applications

I use InstallShield in my installation package. Can I still use DIFxApp?

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.

Does the message cautioning that the hardware is unplugged at the end of the install actually scan for Hardware IDs? Or does this message just assume that the hardware isn't plugged in because a "software first" install has just completed?

DIFxApp checks to determine whether or not the hardware is connected.

Is the message that advises users to plug in the hardware controlled by a public property? Can I opt to avoid this pop-up during a full UI install in favor of my own custom dialog box?

Unfortunately, this pop-up cannot be replaced by a custom dialog box.


Top of pageTop of page