Components of a Driver Package
The following components are necessary to install and support a device on a Windows operating system:
The device itself
If you plan to design and build a new device, follow industry hardware standards. When you follow these standards, you are more likely to have a streamlined development process as well as lower your support costs. Not only do test suites exist for such devices, but, in many cases, generic drivers exist for standard types. Therefore, you might not have to write a new driver.
For more information about industry standards and specifications, see the Windows Hardware Developer Central (WHDC) website.
The driver package for the device
A driver package includes all the software components that you must supply to ensure that your device is supported with Windows. Typically, a driver package contains the following components:
A brief description of each component of a driver package follows.
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 (DLL) with the .sys file name extension. Long file names are allowed, except for boot-start drivers. When a device is installed, Windows copies the .sys file to the %SystemRoot%\system32\drivers directory.
The software that is 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 have 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 that provide driver installation:
A device setup information (INF) file
An INF file contains information that the system-provided device installation components use to install support for the device. Windows copies this file to the %SystemRoot%\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 (.cat) file
A driver catalog file contains a cryptographic hash of each file in the driver package. Windows uses these hashes to verify that the package was not altered after it was published. To ensure that the catalog file is not altered, it should be digitally signed.
A driver package can also contain other files, such as a device installation application, a device icon, device property pages, and so forth. For more information, see the following topics: