Supporting a device on a Windows operating system typically involves the following components:
A brief description of each component follows.
If you're involved in designing and building a new device, follow industry hardware standards. Building devices that conform to industry standards can streamline your driver development process as well as reduce support costs. Not only do test suites exist for such devices, but in many cases generic drivers exist for standard types, so you might not need to write a new driver.
See the Windows Platform Development Web site for information about industry standards and specifications.
The driver is the part of the package that provides the I/O interface for a device. Typically, a driver is a dynamic-link library with the .sys file name extension. Long file names are allowed, except for boot drivers. When a device is installed, Setup copies the .sys file to the %windir%\system32\drivers directory.
The software required to support a particular device depends on the features of the device and the bus or port to which it connects. Microsoft ships drivers for many common devices and nearly all buses with the operating system. If your device can be serviced by one of these drivers, you might need to write only a device-specific minidriver. A minidriver handles device-specific features on behalf of a system-supplied driver. For some types of devices, even a minidriver is not necessary. For example, modems can typically be supported with just installation files.
In addition to the device and the driver, a driver package also contains one or more of the following files, which provide driver installation:
An INF file contains information that the system Setup components use to install support for the device. Setup copies this file to the %windir%\inf directory when it installs the device. Every device must have an INF file.
For more information, see Supplying an INF File.
A driver catalog file contains digital signatures. All driver packages should be signed.
To get a driver package digitally signed, you must submit the package to the Windows Hardware Quality Lab (WHQL) for testing and signing. WHQL returns the package with a catalog file. For details, see WHQL Digital Signatures.
A co-installer is a Win32® DLL that assists in device installation NT-based operating systems. For example, an IHV might supply a co-installer to provide Finish Install wizard pages or to copy additional INF files. For more information about co-installers, see Installation Component Overview.
Co-installers are not supported on Windows 98 or Windows Me.
A driver package can also contain other files, such as a device installation application, a device icon, and so forth. For more information, see the following topics:
Supplying a Device Installation Application