Distributing Drivers on Windows Update
Updated: January 13, 2012
Each week, millions of people use the Microsoft Windows Update Web site to keep their computer systems current. When users connect to Windows Update, their computers are evaluated to identify updates that need to be installed, including important updates that keep their systems stable, safe, and secure.
If your product has qualified for the Windows logo, you can take advantage of Windows Update to distribute driver updates to your customers. Distributing driver updates through Windows Update helps to solve issues for your customers while reducing your company's support costs.
On This Page
How to Deliver Drivers through Windows Update
Use Driver Distribution Center to manage your drivers on Windows Update
How to Designate an Update as Important
Tips for Providing Drivers on Windows Update
Additional Information
How to Deliver Drivers through Windows Update
We strongly recommend that you deliver your drivers to end users through Windows Update. Windows Error Reporting (WER) data shows that distributing drivers through Windows Update significantly reduces the number of system crashes and hardware failures that drivers cause.
To be eligible for delivery through Windows Update, a driver package must:
- Meet the requirements described in the Windows Update Hardware-Related Software Content Policy.
-
Pass Windows Quality Online Services (Winqual) testing review.
-
Use INF-based installation, in addition to the following conditions:
-
HardwareIDs distributed to Windows Update must apply only to the devices to be updated. Posting hardware-compatible IDs to Windows Update can cause unintended installs on devices that other OEMs sell.
-
Two-part PCI Hardware IDs (PCI\VEN_xxxx&DEV_yyyy) are generally not allowed on Windows Update because these are generic matches (see the preceding bullet). You can make a request for an exception by contacting Driver Distribution Center (DDC) support at DDCHelp@microsoft.com.
-
INF-compatible IDs cannot be distributed to Windows Update because Windows Update does not support the ranking difference.
-
-
Have a unique Hardware ID for each product.
-
Not require system restarts or user input during installation.
UI can be allowed in some special cases. For more information, contact DDCHelp@microsoft.com.
Use the Driver Distribution Center to Manage Your Drivers on Windows Update
With the Driver Distribution Center (DDC) on the Windows Quality Online Services (Winqual) Web site, you can manage your driver distribution settings for Windows Update. You can:
-
Control the distribution of drivers.
-
Quickly adjust driver distribution settings.
-
View statistics on distributed content.
-
View specific WER data for your content.
Content offered to end users through Windows Update is based on the ability to detect and match device hardware identifiers.
Windows Update can install drivers in a service context where UI will not be shown to any users.
Windows Vista driver installations can use finish-install actions to request user input. These actions are processed after driver installation and when an administrator-level user next logs in.
For more information about using co-installers and finish-install pages, see "How to Install Windows Drivers with Software Applications" on the WHDC Web site.
How to Distribute an Application with an Updated Driver
You can install a software application immediately after the installation of an updated driver from Windows Update in several ways. You can use a co-installer that launches the application installer after the driver is installed, or you can integrate your application with your driver package and install both directly from Windows Update. Both options have advantages and disadvantages.
Using a Co-Installer to Launch an Application Installer
When Plug and Play detects a device, it installs the driver for that device as usual. At the end of installation, the co-installer for the driver invokes the application installer, which then installs the application.
We recommend that you use this method. The following are some advantages:
-
This method can be used to install driver packages on systems that are running Windows 2000, Windows XP, Windows Server 2003, or Windows Vista.
-
In Windows Vista, you can provide a custom user interface by using this finish-install action.
-
Only the driver package must be signed. The application is not required to be signed.
-
Only the driver is copied to the driver store. The application is installed elsewhere on your computer system.
-
Driver updates can prompt you for application updates to synchronize versions.
-
You have greater flexibility in the source media to be used. The application can be on a CD or downloaded from the web.
To use a co-installer to launch an application installer
-
As usual, create a device INF file, which installs only the device driver and does not refer to the application.
-
Create a co-installer or update an existing co-installer to add a finish-install page that either launches the application installer or prompts the user to download the application from the web. A co-installer can use finish-install pages on all versions of Windows from Windows 2000 through Windows Vista. The user interface for finish-install pages appears as wizard pages within the Found New Hardware Wizard.
To implement a finish-install page, a co-installer adds its pages to the SP_NEWDEVICEWIZARD_DATA structure during a DIF_NEWDEVICEWIZARD_FINISHINSTALL request.
The following pseudocode shows how an installer adds a custom page to the array of pages in the class install parameters:
// get the class install parameters by calling
// SetupDiGetClassInstallParams
// check whether NumDynamicPages has reached the max
// fill in the PROPSHEETPAGE structure
// add the page and increment the NumDynamicPages counter NewDevWizardData.DynamicPages
[NewDevWizardData.NumDynamicPages++] =
CreatePropertySheetPage(&Page);
// apply the modified params by calling
// SetupDiSetClassInstallParams
For information about the CreatePropertySheetPage function, see the Windows SDK. For detailed information about implementing finish-install pages, see the Windows Driver Kit (WDK) documentation. -
To create the driver package and application installer, follow the directions in the DIFx Driver Package Requirements topic in the WDK documentation. For more information about using co-installers and finish-install pages, see "How to Install Windows Drivers with Software Applications" on the WHDC Web site.
Integrating an Application with the Driver Package
With this method, you must add the application installation files to the driver's INF file, thus creating a combined driver package. The application and driver are now one package, so they are both installed whenever a user updates a driver from Windows Update.
This method has several advantages:
-
You can use it to install driver packages on systems that are running Windows 2000, Windows XP, Windows Server 2003, or Windows Vista.
-
Both the application and driver versions are always synchronized.
-
Both the application and the driver can be updated through Windows Update because they are both in the driver package.
Some disadvantages of this method are:
-
Both the application and the driver must be signed because they are both in the driver package.
-
Both the application and the driver must be submitted to Winqual as a single package whenever either the application or the driver changes.
-
The application exists on the user's hard disk in two places: in the driver store and in the applications directory (most likely in the Program Files directory). For driver packages with large applications, vendors should choose another method.
-
This method does not support optional applications.
To create a driver package that contains both the driver and the application
-
Update the device INF file to copy the application's installation files to the Program Files\vendor_name\application_name directory (the Program Files directory is DirId %16422%).
-
Create a co-installer or update an existing co-installer to add a finish-install page that either launches the application installer or prompts the user to download the application from the web. A co-installer can use finish-install pages on all versions of Windows from Windows 2000 through Windows Vista. The user interface for finish-install pages appears as wizard pages within the Found New Hardware Wizard.
For more information about using co-installers and finish-install pages, see "How to Install Windows Drivers with Software Applications" on the WHDC Web site.- Hardware Web site. -
Create your driver package by using DPInst as described in "Creating a DPInst Installation Package" in the WDK.
If you use this method, you should also follow the guidelines for using co-installers that are described in the "Implementation Guidelines for Co-Installers" section of "How to Install Windows Drivers with Software Applications." on the WHDC Web site.
Windows Update Logic for Offering a Driver
Windows Update follows the basic rules of Plug and Play to determine if a driver update should be offered to a user. Windows Update ignores several aspects of ranking in Plug and Play and can do this only because the drivers on Windows Update always have the preferred aspects of an ignored rule.
For more information, download "Windows Update Logic for Offering a Driver" on the WHDC Web site.
How to Designate an Update as Important
Some driver problems reported through WER crash data might create a severe user satisfaction issue. When your analysis of WER data uncovers such a problem, you can request that Microsoft assign the Important status to the driver on Windows Update. To request Important status for a driver on Windows Update:
-
Create a fix for the problem.
-
Submit the related driver package through Winqual services, to receive a digital signature through the "Designed for Windows logo testing program.
To be eligible to be considered for Important status, the replacement driver must meet the following criteria: -
The driver must meet the requirements described in the Windows Update Hardware-Related Software Content Policy.
-
The driver must have been posted on Windows Update as optional for 30 days or 5,000 installations with no known support issues.
-
The company must thoroughly test the driver and ensure that no known support issues exist.
-
The company must provide internal and external support contacts for the driver.
When you have met these requirements, submit an e mail request to ddchelp@microsoft.com with "Important WU Driver Request" in the subject line.
Tips for Providing Drivers on Windows Update
-
For devices, ensure that every product variation has a unique Hardware ID.
-
For systems, ensure that the ACPI BIOS uniquely identifies the system model.
-
Update the Driververdate in the INF each time the driver is resubmitted (to ensure that users receive the latest version of the driver).
Additional Information
Windows Update Services
Driver Distribution Information on Dashboard
Driver Maintenance
- Maintenance: Getting Started
- WER: Getting Started
- How WER Classifies Error Reports
- Debugging OCA Dump Files
- Providing Solutions to Errors
Resources
