Perhaps the most commonly encountered problem with USB devices is enumeration failure. If a USB device fails to enumerate successfully it will appear in Device Manager with a problem code of 43, and will be listed as an “Unknown Device” If Windows was unable to identify the device before it failed enumeration. There are a number of reasons why a USB device can fail to enumerate, however the specific reason for the failure has not been easily discovered without using diagnostic tools such as USB ETW logging.

Windows 8 will now provide a problem description in Device Manager for USB devices that have failed to enumerate, and for USB hubs that have failed during operation. When one of these failures occurs, the USB device’s status on its “General” property page will display a problem description indicating what the failure was. Below is an example device status for a USB device that failed because it returned an invalid USB configuration descriptor. The problem description is highlighted.

image

The possible problem descriptions that can be returned for a USB device that failed enumeration in Windows 8 are:

  • A request for the USB device descriptor failed.
  • The USB set address request failed.
  • A USB port reset request failed.
  • A previous instance of the USB device was not removed.
  • The USB device returned an invalid USB configuration descriptor.
  • The USB device returned an invalid USB device descriptor.
  • Unable to access the registry.
  • A request for the USB configuration descriptor failed.
  • A request for the USB device's port status failed.
  • The USB device returned an invalid serial number string.
  • The USB set SEL request failed.
  • A request for the USB BOS descriptor failed.
  • A request for the USB device qualifier descriptor failed.
  • A request for the USB serial number string descriptor failed.
  • A request for the USB language ID string descriptor failed.
  • A request for the USB product description string descriptor failed.
  • A request for the Microsoft OS extended configuration descriptor failed.
  • A request for the Microsoft OS container ID descriptor failed.
  • The USB device returned an invalid USB BOS descriptor.
  • The USB device returned an invalid USB device qualifier descriptor.
  • The USB device returned an invalid USB language ID string descriptor.
  • The USB device returned an invalid Microsoft OS container ID descriptor.
  • The USB device returned an invalid Microsoft OS extended configuration descriptor.
  • The USB device returned an invalid product description string descriptor.
  • The SuperSpeed link to the USB device keeps going to an error state SSInactive.
  • The SuperSpeed link to the USB device keeps going to an error state Compliance. If the device is removable, remove the device and then disable/enable from device manager to recover.
  • The USB device is not compatible with Windows.

The possible problem descriptions for a USB hub failure in Windows 8 are:

  • The USB hub returned an invalid port status.
  • The USB hub failed a control transfer request.
  • The USB hub failed an interrupt transfer request.
  • The USB hub failed to reset.

To resolve these errors a user should follow the steps outlined in the blog post What to Try When Your USB Device is an "Unknown Device". A USB device developer encountering any of these errors should investigate further using USB ETW logging.

-Martin Borve