INF Requirements for PCI Devices
This article describes the criteria for submitting a standard/base driver package to the Windows Logo Program for testing and provides information about driver package requirements, hardware requirements, and requirements for drivers intended for release on Windows Update.
See also Best Practices for Specifying Hardware IDs, which describes how PCI device identifiers are used in Microsoft Windows operating systems and defines the rules associated with assigning IDs for plug-in cards, motherboard implementations, and chipset integrations.
- Device ID (DID) - 16-bit value located at offset 2
- PCI device - An electrical component that conforms to the PCI Local Bus Specification, Revision 2.2
- Revision ID (REV) - 8-bit value located at offset 8
- Subsystem ID (SID) - 16-bit value located at offset 2E. The SID is the ID assigned by the manufacturer to uniquely identify the device.
- Subsystem Vendor ID (SVID) - 16-bit value located at offset 2C. Note: The SVID is the ID assigned to the manufacturer by the PCI Special Interest Group (PCI SIG).
- Vendor ID (VID) - 16-bit value located at offset 0.
The following is an example of a typical PnP ID section of an INF file, with VID/DID and VID/DID/SID/SVID entries:
[Models] ; per-Manufacturer Models section "device-description" = DDInstall, PCI\VEN_0002&DEV_0001 ;VID/DID example "device-description" = DDInstall, PCI\VEN_0002&DEV_0001&SUBSYS_11112222 ;VID/DID/SID/SVID example
- Driver must be a base standard driver, that is, it must have no customizations and be able to run on all standard implementations of the device.
- Known implementations that do not work with the standard driver package must be listed in the INF [Models] section, and should refer to a [DDInstall] section that loads no driver (null driver install).
- Only the independent hardware vendor can submit the driver package for logo testing.
An OEM or an independent hardware vendor can ship drivers logo'd with only a VID/DID entry in the INF, based on the following criteria:
- Implementation is based on a reference design supplied by chip vendor.
- No hardware customizations or added features are implemented.
- All hardware subsystem IDs must be populated using rules in the Specification for Use of PCI IDs with Windows Operating Systems.
The following types of submissions require a VID/DID/SID/SVID entry in the INF:
- Driver packages submitted by an OEM for logo (must be tested on the OEM hardware and must not contain a VID/DID entry)
- Driver packages submitted by an independent hardware vendor providing customizations for an OEM (must be tested on the OEM hardware and must not contain a VID/DID entry)
- Driver packages with a bug fix for a specific implementation
- Drivers packages that implement custom features or applets
- Driver packages for AC '97 devices The following types of updates to the base standard driver package require a full retest submission:
- A driver package that implements bug fixes or features, and is based on a previously logo'd driver package that implemented a VID/DID entry in the INF and added no VID/DID/SID/SVID entries, requires a retest using the reference design. If a new reference design is supplied, the driver must be tested on the hardware used for original testing and new reference design.
- An INF-only driver package with a VID/DID/SID/SVID entry added to a previously logo'd driver package that implemented a VID/DID entry in the INF requires a retest using the specific device identified by the VID/DID/SID/SVID entry.
- A driver package with multiple VID/DID/SID/SVID entries with the same SVID added requires a retest for only one of the devices identified by the VID/DID/SID/SVID entries.
A driver package with multiple VID/DID/SID/SVID entries with different SVIDs added requires a retest for one device for each unique SVID added.
- A driver package with the addition of a VID/DID/SID/SVID entry that references the null driver INF section requires a retest using the specific device identified by the VID/DID/SID/SVID entry.
Windows Update automatic driver detection distributes drivers only on the following PnP ID structures:
- PCI\ *
- IEEE 1394\
*If the device is a PCI card, then the PnP ID must also contain a valid &SUBSYS_
An OEM or an independent hardware vendor can include drivers on Windows Update, based on the following criteria:
- PnP ID must be in the Hardware ID section of the INF (not the Compatible ID section).
- Driver must pass the HCT kit tests and complete a submission to Windows Quality Online Services.
- Company must have signed a Driver Distribution Agreement.
- The product must have already been announced.
- The driver must have a digital signature.
- The distribution settings for Windows Update must be selected on the Set Driver Distribution Options page of Windows Quality Online Services.
- Driver must be installed through an INF file, and cannot be launched through a setup program.