Share via


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:

  1. Select the job USB Descriptor Test from Available jobs pane in the Device Console.

  2. Click the Add Selected button on the Device Console. The selected job shows up in the bottom pane.

  3. Select this job from the bottom pane. Right-click it and select Edit Parameters

  4. You will see the Parameter Edit window open, with parameters listed on the left and their values on the right.

  5. Change this value of IsEmbeddedUSBDevice parameter from FALSE to TRUE.

  6. 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