USB Isochronous Alternate Interface Presence

This test verifies that when any device has an interface that consumes isochronous bandwidth, that device supports multiple alternate settings for that interface, and that alternate setting 0 (zero) does not consume isochronous bandwidth.

The requirement for alternate setting zero can be provided by an interface that has no endpoints, an interface with isochronous endpoints that do not carry a payload, or an alternate interface that has non-isochronous endpoints. The test software looks for these capabilities by recursively examining the configurations, interfaces, and endpoints that a device supports.

Test details

Associated requirements


See the device hardware requirements.


Windows 7 (x64) Windows 7 (x86) Windows RT (ARM-based) Windows 8 (x64) Windows 8 (x86) Windows Server 2012 (x64) Windows Server 2008 R2 (x64) Windows RT 8.1 Windows 8.1 x64 Windows 8.1 x86 Windows Server 2012 R2

Expected run time

~2 minutes





Running the test

Before you run the test, complete the test setup as described in the test requirements: USB Device.Connectivity Testing Prerequisites.


For troubleshooting information, see Troubleshooting Device.Connectivity Testing.

If the connected device does not support the isochronous transfer type, the test does not run and automatically reports the results as Pass.

Individual Pass/Fail indication is provided for each test category of USB peripheral device support for the power management requirements.

Windows HCK provides individual Pass/Fail indication for each test category of USB peripheral device support for the power management requirements."

The following conditions cause test failures:

  • Alternate interface zero consumes isochronous bandwidth.

  • An interface that the device supports consumes isochronous bandwidth and does not provide more than one alternate setting.

More information

The USB peripheral device must be attached to a port on the root hub. The test software puts the ports on the root hub in the powered-on state. The test software then puts the port in the enabled state and initiates communication with the target device. The test software issues a Get Descriptor request to the target device. The number of configurations that the device supports is returned in the field bNumConfigurations. The test software stores the number of configurations to later conduct an iterative examination of all configurations. For each device configuration, the test software issues a Get Configuration request to the target device. The number of interfaces that the configuration supports is returned in the field bNumInterfaces. The descriptor for the interfaces and endpoints for those interfaces are returned in the body of the configuration descriptor.

The test software parses interface descriptors for a configuration by using the bInterfaceNumber and bAlternateSetting fields as keys. Groups of alternative interfaces share the same bInterfaceNumber field with incrementing bAlternateSetting fields. For each interface that has the bAlternateSetting field equal to zero and the bNumEndpoints field greater than zero, the test software parses endpoint descriptors. The test software examines the bmAttributes field of the endpoint descriptor to determine whether the endpoint is using an isochronous transfer type. If the transfer type is isochronous, the test software examines the wMaxPacketSize field. If wMaxPacketSize is greater than zero, the device is consuming isochronous bandwidth inappropriately and it doesn't meet the Windows HCK requirement (B2. The interface is appropriately flagged as out of compliance. If the transfer type is isochronous with wMaxPacketSize equal to zero or is not isochronous, the interface is in compliance.

If an isochronous interface has a descriptor with a bAlternateSetting value of one or greater, the interface provides multiple alternate settings and complies with the Windows Hardware Certification Program requirements.

Send comments about this topic to Microsoft