Installation Component Overview

Installing a device or driver is substantially different from installing an application. When installing an application, a user might start the Add Or Remove Programs Wizard whereas, when installing a device, he or she might start the Add Hardware Wizard. (Alternatively, the user might insert a distribution disk into a CD drive, which causes an Autorun-invoked device installation application to start the installation.)

Installation of applications relies on the Windows Installer and corresponding Msi functions (described in the Microsoft Windows SDK). Installation of devices and drivers relies on the system-provided device installation components and corresponding general Setup functions, device installation functions, and PnP configuration manager functions.

The Device Installation Overview section provides details on how the Microsoft Windows operating system finds and installs devices and drivers, and on the components involved in such an installation.

To install a device or a driver, the operating system requires the following information at a minimum:

  • The name and version number of each operating system on which the device or drivers are supported

  • The device's setup class GUID and setup class

  • Driver version information

  • The names of the driver files together with their source and destination locations

  • Device-specific information, including hardware ID and compatible IDs

  • The name of a catalog (.cat) file

  • Information about how and when to load the services that are provided by each driver (Windows 2000 and later versions of Windows)

All this information can be supplied in an INF file for the device. For most device and driver combinations, an INF file is the only installation component that is required. All devices and drivers require an INF file. For more information, see Supplying an INF File.

In addition to the system requirements, drivers often have their own requirements. For example, some drivers use the registry to share information with other components. Through a driver's INF file, you can add, change, or delete information from the registry. However, the INF file cannot read directly from the registry.

If installation depends on reading from the registry, requesting input from the user, or acquiring any other dynamic information, you will have to supply an additional component, typically a co-installer. A co-installer is a DLL that handles device installation function codes sent by the system-provided device installation components. For more information, see Supplying a Co-Installer.

If the driver package includes vendor-supplied applications associated with the device, you will probably also provide a device installation application. For more information, see Supplying a Device Installation Application.

The following table lists the installation components that a device/driver combination might require.

ComponentWhen required

INF file

Required for all devices and drivers.

Device co-installer

Required if installation requires information from the user or from the registry. Often supplied by vendors.

Class co-installer

Required only if installation of all devices of this class requires information from the user or from the registry.

System-supplied for classes that require them; vendors should rarely supply them.

Class installer

Required only for new device setup classes; system-supplied for existing classes.

As a rule, vendors should not define new setup classes, and should not supply class installers.

Device installation application

Recommended when value-added software is provided with device and driver, or when a driver replaces a previous driver that might already be installed.


If your device is involved in booting the system, installation requirements differ. See Installing a Boot Driver.



Send comments about this topic to Microsoft

© 2014 Microsoft