Vendor specific USB device (not storage) enumerate fine in win7, but fails in win10..?

Hi,

Vendor specific USB device (not a storage) USB 2 specific enumerate fine in win7, which enumerate under EHCI

DescriptorDump in win7
Information for device (VID=0x0ADF PID=0x1000):

Connection Information:

Device current bus speed: FullSpeed
Device address: 0x0001
Current configuration value: 0x01
Number of open pipes: 2

Device Descriptor:

0x12 bLength
0x01 bDescriptorType
0x0200 bcdUSB
0x00 bDeviceClass
0x00 bDeviceSubClass
0x00 bDeviceProtocol
0x40 bMaxPacketSize0 (64 bytes)
0x0ADF idVendor
0x1000 idProduct
0x0100 bcdDevice
0x01 iManufacturer
0x02 iProduct
0x00 iSerialNumber
0x01 bNumConfigurations

Configuration Descriptor:

0x09 bLength
0x02 bDescriptorType
0x0020 wTotalLength (32 bytes)
0x01 bNumInterfaces
0x01 bConfigurationValue
0x04 iConfiguration
0xC0 bmAttributes (Self-powered Device)
0x05 bMaxPower (10 mA)

Interface Descriptor:

0x09 bLength
0x04 bDescriptorType
0x00 bInterfaceNumber
0x00 bAlternateSetting
0x02 bNumEndPoints
0xFF bInterfaceClass (Vendor specific)
0x0A bInterfaceSubClass
0xFF bInterfaceProtocol
0x05 iInterface

Endpoint Descriptor:

0x07 bLength
0x05 bDescriptorType
0x01 bEndpointAddress (OUT endpoint 1)
0x02 bmAttributes (Transfer: Bulk / Synch: None / Usage: Data)
0x0040 wMaxPacketSize (64 bytes)
0x00 bInterval

Endpoint Descriptor:

0x07 bLength
0x05 bDescriptorType
0x82 bEndpointAddress (IN endpoint 2)
0x02 bmAttributes (Transfer: Bulk / Synch: None / Usage: Data)
0x0040 wMaxPacketSize (64 bytes)
0x00 bInterval

Microsoft OS Descriptor is not available. Error code: 0x0000001F

String Descriptor Table

Index LANGID String
0x00 0x0000 0x0409
0x01 0x0409
0x02 0x0409
0x04 0x0409
0x05 0x0409


Connection path for device:
Intel(R) 8 Series/C220 Series USB EHCI #1 - 8C26
Root Hub
Generic USB Hub
Port: 6

Running on: Windows 7 with Service Pack 1

Brought to you by TDD v2.11.0, Mar 26 2018, 09:54:50


but when i connect same device under win 10 Host, which has only USB 3 hub where device descriptor fails enumerate under xHCI
DescriptorDump in win10
Information for device USB\Vendor_0000_Product_0000:

Connection Information:

Device current bus speed: FullSpeed
Device supports USB 1.1 specification
Device supports USB 2.0 specification
Device address: 0x001E
Current configuration value: 0x00
Number of open pipes: 0

Device Descriptor:

0x12 bLength
0x01 bDescriptorType
0x0200 bcdUSB
0x00 bDeviceClass
0x00 bDeviceSubClass
0x00 bDeviceProtocol
0x40 bMaxPacketSize0 (64 bytes)
0x0000 idVendor
0x0000 idProduct
0x0000 bcdDevice

0x00 iManufacturer
0x00 iProduct
0x00 iSerialNumber
0x00 bNumConfigurations

Microsoft OS Descriptor is not available. Error code: 0x00000002

String Descriptor Table

Index LANGID String


Connection path for device:
USB xHCI Compliant Host Controller
Root Hub
USB\Vendor_0000_Product_0000 Port: 1

Running on: Windows 10 or greater

Brought to you by TDD v2.11.0, Mar 26 2018, 09:54:50

where, windows has stopped this device because it has reported problems. (Code 43)

A request for the USB device descriptor failed.

and can’t able to view VID and PID which is wrong.

Hope xHCI have backward capability for USB2 even though its fails…

Reference:

https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-faq--introductory-level#do-i-have-to-rewrite-my-client-driver-to-support-usb-30-devices

Thanks in advance for your help

On Feb 28, 2019, at 8:30 PM, Raj_ganesh wrote:
>
> Vendor specific USB device (not a storage) USB 2 specific enumerate fine in win7, which enumerate under EHCI
> …
> but when i connect same device under win 10 Host, which has only USB 3 hub where device descriptor fails enumerate under xHCI

Is this a device you are building? Have you run it through the USB compliance tests? USB 3 is a lot stricter. For example, perhaps your device takes too long to deliver the device descriptor.

Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.