Roadmap for Device and Driver Installation
To install a device and driver in the Windows operating system, follow these steps:
Step 1: Learn the fundamentals of device and driver installation in Windows.
You must understand the fundamentals of device and driver installation in the Windows family of operating systems. This will help you to make appropriate design decisions and will allow you to streamline your development process. For more information, see Overview of Device and Driver Installations.
Step 2: Learn about driver packages and their components.
A driver package consists of all the components that you must supply to install your device and support it under Windows.
To install a device or a driver, you must have system-supplied and vendor-supplied components. The system provides generic installation software for all device classes. Vendors must supply one or more device-specific components within the driver package.
For more information, see Driver Packages.
Step 3: Learn about information (INF) files.
An INF file contains the information and device settings which the system-provided device installation components use to install your driver package, such as the driver for the device and any device-specific applications.
For more information, see INF Files.
Step 4: Create a driver package for your device and drivers.
Your driver package must provide an INF file, the device's driver files, as well as optionally provide additional software components. You may refer to the sample Toaster driver package to determine which components are needed for your driver package.
For more information about the components of a driver package, see Creating a Driver Package.
For more information about driver packages, see the Toaster Sample.
Step 5: Test-sign your driver package during development and testing.
Test-signing refers to using a test certificate to sign a prerelease version of a driver package for use on test computers. In particular, this allows developers to sign driver packages by using self-signed certificates, such as those the MakeCert tool generates. This capability allows developers to install and test driver packages in Windows with driver signature verification enabled.
For more information, see Signing Drivers during Development and Test.
Step 6: Release-sign your driver package for distribution.
After you have tested and verified your driver package, you should release-sign the driver package. Release-signing identifies the publisher of a driver package. While this step is optional, driver packages should be release-signed for the following reasons:
- Ensure the authenticity, integrity, and reliability of driver packages. Windows uses digital signatures to verify the identity of the publisher and to verify that the driver has not been altered since it was published.
- Provide the best user experience by facilitating automatic driver installation.
- Run kernel-mode drivers on 64-bit versions of Windows Vista and later versions of Windows.
- Playback certain types of next-generation premium content.
Driver packages are release-signed through either:
- A WHQL Release Signature obtained through the Windows Hardware Compatibility Program (for Windows 10), or the Windows Hardware Certification Program (for Windows 8/8.1 and older operating systems).
- A release signature created through a Software Publisher Certificate (SPC).
For more information, see Signing Drivers for Public Release.
Step 7: Distribute your driver package.
The final step is to distribute the driver package. If your driver package meets the quality standards that are defined in the the Windows Hardware Compatibility Program (for Windows 10), or the Windows Hardware Certification Program (for Windows 8/8.1 and older operating systems), you can distribute it through Microsoft Windows Update program. For more information, see Publishing a driver to Windows Update.
These are the basic steps. Additional steps might be necessary based on the installation needs of your individual device and driver.
We'd love to hear your thoughts. Choose the type you'd like to provide:
Our feedback system is built on GitHub Issues. Read more on our blog.