Microsoft have recognised this and have made a collection of device driver installation tools available for Windows 2000 and later, Driver Install Frameworks (DIFx). The tools included in DIFx cater for pre-installing drivers, that is installing drivers before the hardware is available in the system. This can allow drivers to be available on the PC for loading when a matching device is connected for the first time. If the driver pre-installed with DIFx has been Microsoft WHQL certified, the driver can be loaded silently with no input required from the user.
The tools available in DIFx are:
Driver Package Installer (DPInst)
This is an executable file with an XML configuration file that is read when it is run. By placing DPInst.exe and DPInst.xml in the same directory as the driver package (or having the driver package in a subdirectory below the DPInst files), the driver package can be installed by running DPInst.exe.
Driver Install Frameworks for Applications (DIFxApp)
This allows drivers to be installed at the same time as application software the driver is associated with using MSI. This is intended for use by developers who provide an application in an MSI package already, or who intend to provide one.
Driver Installation Frameworks API (DIFxAPI)
This provides access to functions for including in a developer's own code and can be used for a highly customised installation. The supplied functions are:
The DIFx tools and documentation are available for free download from and are available for x86, x64 and IA64 processors.
This document will only cover pre-installation using the DPInst tool as this is the simplest and most generic method.