Windows Hardware Certification Kit USB-IF Testing
Updated: July 26, 2013
This article describes the Windows Hardware Certification Kit (Windows HCK) USB-IF testing requirements for Windows® operating systems. It provides guidelines for hardware vendors and device manufacturers to prepare USB devices and host controllers for Windows Hardware Certification Program submission.
The information in this article applies to the following operating systems:
Windows Server 2008® R2
Windows Server 2008®
Over the past decade, Special Interest Groups (SIGs) have been formed to help address interoperability issues between devices and computers and between each other. The USB-IF is a SIG that maintains the USB specifications and provides test specifications and tools. Today, the Windows HCK and the USB-IF compliance program offer several overlapping tests to ensure coverage of both the Windows Certification tests and the USB-IF tests; this is shown in Figure 1. USB-IF and Windows Certification Tests:
<Art placeholder for HCK_WinB_Fig1_USB_IF_WinCertTests>
Figure 1. USB-IF and Windows Certification Tests
USB is not the only device connectivity technology that must meet the electrical and mechanical requirements of an independent standards organization to receive Windows Certification. For example, a Bluetooth device manufacturer must first qualify a Bluetooth device with the Bluetooth SIG before the Bluetooth device can receive Windows Certification.
The previous version of the Windows HCK USB-IF testing requirements stated that you must certify a USB device or host controller by the USB-IF before you can certify the device for Windows Certification. USB device vendor partners raised concerns about the cost, timing, and fringe device cases with the USB-IF certification process. To address those concerns, we reworked the Windows HCK USB-IF requirements so that USB device vendors are not required to submit their devices to the USB-IF for testing. However, we still recommend USB-IF certification because it covers in-depth testing of USB devices and host controllers and ensures a high-quality USB implementation.
The current version of the Windows HCK USB-IF testing requirements allows you to download and run tests from the USB-IF website, the results of which the Windows HCK consumes. If the USB-IF certifies the device, you can provide the USB-IF Test ID (TID) for the device to the Windows HCK. This allows partners who get their devices USB-IF certified to avoid any test duplication. Partners who do not get their devices USB-IF certified must run a few USB-IF tests in-house and then provide the logs from those tests to the Windows HCK.
USB devices that do not comply with the USB specification can negatively affect the personal computer (PC) ecosystem. Even if USB devices pass current Microsoft Windows Certification Program requirements, many of those devices do not fully comply with the USB specification. Over the years, Microsoft product teams and USB engineering groups analyzed these problems and identified the following trends in USB specification non-compliance:
Hubs: USB hubs commonly fail because they report that they have external power when they actually only have bus power. The false report leads to an invalid voltage condition on the bus.
Hard disk drives: USB hard disk drives commonly fail because they do not enumerate correctly because of excessive power draw from the USB bus. In many situations, these hard disk drives require non-standard cables to work correctly.
Flash drives: USB flash drives commonly fail because they do not handle the descriptor requests correctly; this causes the device to hang and fail the Microsoft operating system descriptor.
Card readers: USB card readers commonly fail because they do not enter into the Selective Suspend state.
Printers: USB printers commonly fail because they do not resume from standby.
Audio: Audio devices commonly fail because they do not resume from standby.
Non-compliant USB devices can negatively affect many parts of the PC ecosystem. A non-compliant USB device can cause a poor user experience, difficult public relations, product returns and loss of revenue, high product support call volume, and increased costs that are associated with servicing bugs in shipped products.
Microsoft has spent significant time and effort to develop, test, and provide solutions to address and prevent issues that non-compliant USB devices incur. Microsoft identifies the following characteristics of devices that have both USB-IF certification and Windows Certification:
They offer a very reliable Windows user experience.
They are unlikely to incur support costs.
They interoperate smoothly with other devices and computers in the Windows ecosystem.
They are easy to identify as devices that are tested for compatibility with Windows.
UsbController.UsbifCertification and UsbDevices.UsbifCertification requirements overview
The USB-IF certification requirement might not meet the specific business needs and market solutions for all USB devices. We strongly recommend USB-IF certification; however, the Windows HCK requirement Device.Connectivity.UsbDevices.UsbifCertification no longer requires USB-IF certification for USB devices. The requirement states that the device can be either USB-IF certified, or that a subset of the USB-IF’s certification tests can be run on the device.
Host controllers (Device.BusController.UsbController.UsbifCertification) and hubs (Device.Connectivity.UsbDevices.UsbifCertification) are still required to obtain full USB-IF certification to meet their respective Windows HCK requirements. These requirements apply to both USB device manufacturers and USB host controller manufacturers. System manufacturers should be aware of these requirements when they select USB host controllers to integrate into their systems. These requirements can significantly improve the customer experience with USB devices. They can help to prevent key reasons for crashes and hangs, and reduce the time spent to troubleshoot and debug non-compliance issues.
For more information about requirements, see Windows Hardware Certification Requirements: Devices and Windows Hardware Certification Requirements for Client and Server Systems.
Windows Hardware Certification submission options
You can submit USB devices for Windows Certification qualification to meet the new USB-IF testing requirement by using one of the following methods:
|Submission option||Submission sequence|
Obtain USB-IF certification from a USB-IF authorized independent testing lab and then submit the device for Windows Certification qualification.
Download the USB Command Verifier test tools and the USB interoperability test documents and run the required tests from the USB-IF. Then submit the device for Windows Certification qualification
|USB host controllers and hubs are not eligible for the USB-IF self-testing option and must obtain full USB-IF certification.|
Figure 2. Windows Certification Process, shows the process flow for how to obtain Windows Certification.
<placeholder for art HCK_WinB_Fig2_Flowchart>
You can select one of the following options to obtain USB-IF certification for device or host controllers :
Submit the device to a USB-IF authorized independent test lab for testing. For information about how to find a lab, see USB-IF authorized independent testing lab.The following two prerequisites are required to submit a USB device to an authorized independent test lab for USB-IF certification:
Note It usually takes an authorized independent test lab one to two weeks to test a single USB device for compliance to the USB specification.
The device manufacturer must register with the lab.
The device manufacturer must have a valid vendor ID (VID).
After a device successfully passes the USB-IF certification tests, you have the following privileges for the device:
You can use the USB logo for brochures, packaging, and product information for your device.
You can be listed on the USB-IF Integrators List.
- The device manufacturer must register with the lab.
Bring the device to a USB-IF-sponsored Compliance Workshop. Each year, four workshops are held in the USA, and one workshop is held in Asia.
After a device passes the USB-IF certification tests, you receive a Test ID number (TID) from the test lab or workshop. You provide this TID number to the Windows HCK when you run the remainder of the Windows HCK tests for the device.
The cost of testing and certifying a USB device at an authorized independent test lab can vary from lab to lab. Some authorized independent test labs offer volume discounts or discounts for some affiliated businesses. There is no cost to test and certify a USB device at any USB-IF-sponsored compliance workshop. You must be a member of the USB-IF to attend a USB-IF sponsored compliance workshop.
If you decide to use the USB-IF self-test option to obtain Windows Certification, you must at minimum perform the following USB-IF tests:
USB command verifier tests: The USB command verifier tests verify the ability of a device to understand and accept common USB commands.
USB interoperability tests: The USB interoperability tests target the functionality and the ability of a device to coexist with other USB peripherals.
These tests are downloaded and run outside of the Windows HCK. After the tests are run, the Windows HCK consumes the log files that are generated by the tests. Note that these tests must be run on the latest version of Windows only (as specified by the USB-IF), even if you are submitting your USB device for Windows Certification qualification for multiple versions of Windows. The test results apply to all Windows Certification submissions for all versions of Windows.
The following steps describe how to perform the required USB-IF tests to qualify a device for Windows Certification.
Download the USB 3.0 Command Verifier test tool (USB30CV), and the interoperability test documents from SuperSpeed USB Software and Hardware Tools.
Run the USB-IF tests for the USB hardware as specified in the following tables:
USB version USB-IF tests
Attach the device behind an xHCI host controller and run the Chapter 9 Tests [USB 2.0 devices] in the USB 3.0 Command Verifier test tool (USB30CV).
Run the interoperability tests as described in section D of the Universal Serial Bus Implementers Forum Full and Low Speed Electrical and Interoperability Compliance Test Procedure document. Run these tests two times: one time with the device attached behind an EHCI host controller, and one time with the device attached behind an xHCI host controller.
Attach the device behind an xHCI host controller and run the Chapter 9 Tests [USB 3.0 devices] in the USB 3.0 Command Verifier test tool (USB30CV).
Run the interoperability tests as described in the XHCI Interoperability Testing document. Run these tests two times: one time with the device attached behind an EHCI host controller, and one time with the device attached behind an xHCI host controller.