USB Descriptor Test
Note This content applies to the Windows Logo Kit (WLK). For the latest information using the new Windows Hardware Certification Kit (HCK), see Windows HCK User's Guide on the Windows Hardware Dev Center.
Type: Automated Test
Overview
The USB Descriptor Test runs a number of individual tests that verify various attributes and operations used by the function-specific portions of the test device. The tests also verify communications from the device through the bus interface to the host. The test is based on the USBCV compliance test tool provided by the USB Implementers Forum, Inc. (USB-IF).
The USB Descriptor test is required only for Universal Serial Bus (USB) peripheral devices and hubs. It verifies the proper response of a USB device to standard descriptor requests.
The USB Descriptor test requests both the device descriptor and configuration descriptor with varying lengths. The test calculates the upper limit to be at least two maximum packet sizes larger than the actual size of the descriptor. If this calculated upper limit is less than 255 bytes, the test increases the upper limit to 255 bytes. The USB test device is expected to return valid descriptor information; however, the amount of information returned must be no larger than the length requested by the test. If the length requested is greater than the size of the descriptor, the device must return the whole descriptor with no additional data.
Details
The test includes the following parts:
Setup
The test fails if the test device is more than one hub deep.
Note: For embedded USB devices (for example, laptop devices) where it is impossible to meet the external hub connectivity requirement, you must follow the following steps:
Select the job USB Descriptor Test from Available jobs pane in the Device Console.
Click the Add Selected button on the Device Console. The selected job shows up in the bottom pane.
Select this job from the bottom pane. Right-click it and select Edit Parameters
You will see the Parameter Edit window open, with parameters listed on the left and their values on the right.
Change this value of IsEmbeddedUSBDevice parameter from FALSE to TRUE.
Click the Schedule Jobs button on the Device Console to run this job.
Initialization
Select device to test
Open handle to host controller
Gather the following initial information:
- Device descriptor
- Configuration descriptor
- String descriptors (if supported by device and test)
- Device qualifier descriptor (if this is a USB 2.0 high-speed capable device)
Descriptor test
Reset the device port
Repeat get descriptor requests for the device starting with a descriptor length of one up to the calculated upper bound in 1 byte increments
Repeat get descriptor requests for the configuration starting with a descriptor length of one up to calculated upper bound in 1 byte increments
Set the address to 2
Repeat get descriptor requests for the device starting with a descriptor length of one up to the calculated upper bound in 1 byte increments
Repeat get descriptor requests for the configuration starting with a length of one up to the calculated upper bound in 1 byte increments
Result
The test is successful if comparisons of the device and configuration descriptor pass for all iterations.
Results Interpretation
The test fails if:
Any standard descriptor request is not properly handled by the test device.
Any standard descriptor request does not meet the response time requirements as defined in the USB specification.
Run Time: 10 minutes
Log File:
System Restart Required: No
Test Category:
Supported operating systems for Logo or Signature testing:
Windows 7
Windows Server 2008 R2
Windows Vista
Windows Server 2008
Windows Server 2003
Windows XP
Program:
Requirements
Software Requirements
The test tool requires the following software:
- Supported operating system (see list above).
- Software components included with the device that is being tested.
Hardware Requirements
- Device to be tested
- One USB 2.0 controller PCI adapter, if system does not contain a USB 2.0 controller.
- One USB IF certified USB 2.0 hub to connect the system and the test USB device
Processor
- x86
- x64
- Itanium
Build date: 9/14/2012