1

I have a USB3 WD Elements external drive. My PC has a set of USB2 ports at the front, and some USB3 ports at the back. I have the drive plugged into one of the USB3 ports. This is on a Windows 10 PC, with a Gigabyte B75-D3V motherboard.

When I first used the drive, it was extremely slow, so I did some investigating, and discovered (using USB Tree Viewer, from www.uwe-sieber.de) that the device is showing up on "Generic USB 2.0 Hub" under "Intel (R) 7 Series/C216 Chipset Family USB Enhanced Host Controller - 1E26". I do also have an "Intel (R) USB 3.0 eXtensible Host Controller 1.0 (Microsoft)" with a USB 3 hub under it, but nothing is attached there. For completeness, I also have an Intel 1E2D controller with a USB 2 hub which has everything other than the disk attached to it (mostly things plugged into the actual USB 2 ports, but also a headset that's plugged into the other USB3 socket, oddly enough).

The disk is showing in the viewer as follows (this is the first part, there's a lot more detail in there that I can post if it's useful):


    =========================== USB Port3 ===========================

Connection Status        : 0x01 (Device is connected)
Port Chain               : 1-1-3

      ========================== Summary =========================
Vendor ID                : 0x1058 (Western Digital, Branded)
Product ID               : 0x25A3
USB version              : 2.10
Port maximum Speed       : High-Speed
Device maximum Speed     : SuperSpeed
Device Connection Speed  : High-Speed
Self Powered             : yes
Demanded Current         : 30 mA
Used Endpoints           : 3

      ======================== USB Device ========================

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : USB Mass Storage Device
Device Path              : \\?\USB#VID_1058&PID_25A3#6&afeb119&0&3#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Kernel Name              : \Device\USBPDO-11
Device ID                : USB\VID_1058&PID_25A3\6&AFEB119&0&3
Hardware IDs             : USB\VID_1058&PID_25A3&REV_1030 USB\VID_1058&PID_25A3
Driver KeyName           : {36fc9e60-c465-11cf-8056-444553540000}\0012 (GUID_DEVCLASS_USB)
Driver                   : \SystemRoot\System32\drivers\USBSTOR.SYS (Version: 10.0.19041.1  Date: 2019-12-07)
Driver Inf               : C:\Windows\inf\usbstor.inf
Legacy BusType           : PNPBus
Class                    : USB
Class GUID               : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service                  : USBSTOR
Enumerator               : USB
Location Info            : Port_#0003.Hub_#0005
Location IDs             : PCIROOT(0)#PCI(1D00)#USBROOT(0)#USB(1)#USB(3), ACPI(_SB_)#ACPI(PCI0)#ACPI(EHC1)#ACPI(HUBN)#ACPI(PR01)#ACPI(PR13)
Container ID             : {7acbd963-9001-11eb-bf9d-902b349f8197}
Manufacturer Info        : Compatible USB storage device
Capabilities             : 0x84 (Removable, SurpriseRemovalOK)
Status                   : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code             : 0
Address                  : 3
HcDisableSelectiveSuspend: 0
EnableSelectiveSuspend   : 0
SelectiveSuspendEnabled  : 0
EnhancedPowerMgmtEnabled : 0
IdleInWorkingState       : 0
WakeFromSleepState       : 0
Power State              : D0 (supported: D0, D3, wake from D0)
 Child Device 1          : WD Elements 25A3 USB Device (Disk drive) (Disk4)
  Device Path            : \\?\USBSTOR#Disk&Ven_WD&Prod_Elements_25A3&Rev_1030#7&29edea3c&0&5647303642305847&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b} (GUID_DEVINTERFACE_DISK)
  Kernel Name            : \Device\0000008d
  Device ID              : USBSTOR\DISK&VEN_WD&PROD_ELEMENTS_25A3&REV_1030\7&29EDEA3C&0&5647303642305847&0
  Class                  : DiskDrive
  Driver KeyName         : {4d36e967-e325-11ce-bfc1-08002be10318}\0004 (GUID_DEVCLASS_DISKDRIVE)
  Service                : disk
   Volume                : \\?\Volume{0b0c318d-19c1-496b-bc93-0640a42c57ee}\
   Kernel Name           : \Device\HarddiskVolume11
   Mountpoint            : I:\

        +++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\105825A31030
 osvc                    : REG_BINARY 00 00
 SkipContainerIdQuery    : REG_BINARY 01 00 00 00

        ---------------- Connection Information ---------------
Connection Index         : 0x03 (Port 3)
Connection Status        : 0x01 (DeviceConnected)
Current Config Value     : 0x01 (Configuration 1)
Device Address           : 0x02 (2)
Is Hub                   : 0x00 (no)
Device Bus Speed         : 0x02 (High-Speed)
Number Of Open Pipes     : 0x02 (2 pipes to data endpoints)
Pipe[0]                  : EndpointID=1  Direction=IN   ScheduleOffset=0  Type=Bulk
Pipe[1]                  : EndpointID=2  Direction=OUT  ScheduleOffset=0  Type=Bulk
Data (HexDump)           : 03 00 00 00 12 01 10 02 00 00 00 40 58 10 A3 25   ...........@X..%
                           30 10 01 02 03 01 01 02 00 02 00 02 00 00 00 01   0...............
                           00 00 00 07 05 81 02 00 02 00 00 00 00 00 07 05   ................
                           02 02 00 02 00 00 00 00 00                        .........

        --------------- Connection Information V2 -------------
Connection Index         : 0x03 (3)
Length                   : 0x10 (16 bytes)
SupportedUsbProtocols    : 0x03
 Usb110                  : 1 (yes, port supports USB 1.1)
 Usb200                  : 1 (yes, port supports USB 2.0)
 Usb300                  : 0 (no, port not supports USB 3.0)
 ReservedMBZ             : 0x00
Flags                    : 0x02
 DevIsOpAtSsOrHigher     : 0 (Device is not operating at SuperSpeed or higher)
 DevIsSsCapOrHigher      : 1 (Device is SuperSpeed capable or higher)
 DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
 DevIsSsPlusCapOrHigher  : 0 (Device is not SuperSpeedPlus capable or higher)
 ReservedMBZ             : 0x00
Data (HexDump)           : 03 00 00 00 10 00 00 00 03 00 00 00 02 00 00 00   ................

    ---------------------- Device Descriptor ----------------------
bLength                  : 0x12 (18 bytes)
bDescriptorType          : 0x01 (Device Descriptor)
bcdUSB                   : 0x210 (USB Version 2.10)
bDeviceClass             : 0x00 (defined by the interface descriptors)
bDeviceSubClass          : 0x00
bDeviceProtocol          : 0x00
bMaxPacketSize0          : 0x40 (64 bytes)
idVendor                 : 0x1058 (Western Digital, Branded)
idProduct                : 0x25A3
bcdDevice                : 0x1030
iManufacturer            : 0x01 (String Descriptor 1)
 Language 0x0409         : "Western Digital"
iProduct                 : 0x02 (String Descriptor 2)
 Language 0x0409         : "Elements 25A3"
iSerialNumber            : 0x03 (String Descriptor 3)
 Language 0x0409         : "5647303642305847"
bNumConfigurations       : 0x01 (1 Configuration)
Data (HexDump)           : 12 01 10 02 00 00 00 40 58 10 A3 25 30 10 01 02   .......@X..%0...
                           03 01                                             ..

    ------------------ Configuration Descriptor -------------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x02 (Configuration Descriptor)
wTotalLength             : 0x0020 (32 bytes)
bNumInterfaces           : 0x01 (1 Interface)
bConfigurationValue      : 0x01 (Configuration 1)
iConfiguration           : 0x00 (No String Descriptor)
bmAttributes             : 0xC0
 D7: Reserved, set 1     : 0x01
 D6: Self Powered        : 0x01 (yes)
 D5: Remote Wakeup       : 0x00 (no)
 D4..0: Reserved, set 0  : 0x00
MaxPower                 : 0x0F (30 mA)
Data (HexDump)           : 09 02 20 00 01 01 00 C0 0F 09 04 00 00 02 08 06   .. .............
                           50 00 07 05 81 02 00 02 00 07 05 02 02 00 02 00   P...............

        ---------------- Interface Descriptor -----------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x04 (Interface Descriptor)
bInterfaceNumber         : 0x00
bAlternateSetting        : 0x00
bNumEndpoints            : 0x02 (2 Endpoints)
bInterfaceClass          : 0x08 (Mass Storage)
bInterfaceSubClass       : 0x06 (SCSI transparent command set)
bInterfaceProtocol       : 0x50 (Bulk-Only Transport)
iInterface               : 0x00 (No String Descriptor)
Data (HexDump)           : 09 04 00 00 02 08 06 50 00                        .......P.

        ----------------- Endpoint Descriptor -----------------
bLength                  : 0x07 (7 bytes)
bDescriptorType          : 0x05 (Endpoint Descriptor)
bEndpointAddress         : 0x81 (Direction=IN EndpointID=1)
bmAttributes             : 0x02 (TransferType=Bulk)
wMaxPacketSize           : 0x0200 (max 512 bytes)
bInterval                : 0x00 (never NAKs)
Data (HexDump)           : 07 05 81 02 00 02 00                              .......

        ----------------- Endpoint Descriptor -----------------
bLength                  : 0x07 (7 bytes)
bDescriptorType          : 0x05 (Endpoint Descriptor)
bEndpointAddress         : 0x02 (Direction=OUT EndpointID=2)
bmAttributes             : 0x02 (TransferType=Bulk)
wMaxPacketSize           : 0x0200 (max 512 bytes)
bInterval                : 0x00 (never NAKs)
Data (HexDump)           : 07 05 02 02 00 02 00                              .......

    ----------------- Device Qualifier Descriptor -----------------
bLength                  : 0x0A (10 bytes)
bDescriptorType          : 0x06 (Device_qualifier Descriptor)
bcdUSB                   : 0x210 (USB Version 2.10)
bDeviceClass             : 0x00 (defined by the interface descriptors)
bDeviceSubClass          : 0x00
bDeviceProtocol          : 0x00
bMaxPacketSize0          : 0x40 (64 Bytes)
bNumConfigurations       : 0x01 (1 other-speed configuration)
bReserved                : 0x00
Data (HexDump)           : 0A 06 10 02 00 00 00 40 01 00                     .......@..

      ---------- Binary Object Store (BOS) Descriptor -----------
bLength                  : 0x05 (5 bytes)
bDescriptorType          : 0x0F (Binary Object Store)
wTotalLength             : 0x0016 (22 bytes)
bNumDeviceCaps           : 0x02
Data (HexDump)           : 05 0F 16 00 02                                    .....

        ------------- USB 2.0 Extension Descriptor ------------
bLength                  : 0x07 (7 bytes)
bDescriptorType          : 0x10 (Device Capability Descriptor)
bDevCapabilityType       : 0x02 (USB 2.0 Extension)
bmAttributes             : 0xF0E
 LPMCapable              : 1 (Link Power Management protocol is supported)
 BESLAndAlternateHIRD    : 1 (BESL & Alternate HIRD definitions are supported)
 BaselineBESLValid       : 1 (valid)
 DeepBESLValid           : 0 (not valid)
 BaselineBESL            : 15 (10000 µs)
 DeepBESL                : 0
Data (HexDump)           : 07 10 02 0E 0F 00 00                              .......

        ----- SuperSpeed USB Device Capability Descriptor -----
bLength                  : 0x0A (10 bytes)
bDescriptorType          : 0x10 (Device Capability Descriptor)
bDevCapabilityType       : 0x03 (SuperSpeed USB Device Capability)
bmAttributes             : 0x00
 Bit 0 Reserved          : 0x00
 Bit 1 LTM Capable       : 0x00 (no)
 Bit 7:2 Reserved        : 0x00
wSpeedsSupported         : 0x0E (Full-Speed, High-Speed, SuperSpeed)
bFunctionalitySupport    : 0x01 (lowest speed with all the functionality is 'Full-Speed')
bU1DevExitLat            : 0x0A   (less than 10 µs)
wU2DevExitLat            : 0x0020 (less than 32 µs)
Data (HexDump)           : 0A 10 03 00 0E 00 01 0A 20 00                     ........ .

      -------------------- String Descriptors -------------------
             ------ String Descriptor 0 ------
bLength                  : 0x04 (4 bytes)
bDescriptorType          : 0x03 (String Descriptor)
Language ID[0]           : 0x0409 (English - United States)
Data (HexDump)           : 04 03 09 04                                       ....
             ------ String Descriptor 1 ------
bLength                  : 0x20 (32 bytes)
bDescriptorType          : 0x03 (String Descriptor)
Language 0x0409          : "Western Digital"
Data (HexDump)           : 20 03 57 00 65 00 73 00 74 00 65 00 72 00 6E 00    .W.e.s.t.e.r.n.
                           20 00 44 00 69 00 67 00 69 00 74 00 61 00 6C 00    .D.i.g.i.t.a.l.
             ------ String Descriptor 2 ------
bLength                  : 0x1C (28 bytes)
bDescriptorType          : 0x03 (String Descriptor)
Language 0x0409          : "Elements 25A3"
Data (HexDump)           : 1C 03 45 00 6C 00 65 00 6D 00 65 00 6E 00 74 00   ..E.l.e.m.e.n.t.
                           73 00 20 00 32 00 35 00 41 00 33 00               s. .2.5.A.3.
             ------ String Descriptor 3 ------
bLength                  : 0x22 (34 bytes)
bDescriptorType          : 0x03 (String Descriptor)
Language 0x0409          : "5647303642305847"
Data (HexDump)           : 22 03 35 00 36 00 34 00 37 00 33 00 30 00 33 00   ".5.6.4.7.3.0.3.
                           36 00 34 00 32 00 33 00 30 00 35 00 38 00 34 00   6.4.2.3.0.5.8.4.
                           37 00                                             7.

I tried reinstalling the chipset drivers for my motherboard, and that moved the drive to the USB 3 hub, and everything was excellent! But a few days later, it was back on the USB 2 port (for no reason that I could spot). I reinstalled the drivers again, and same story - USB 3 briefly, then back to USB 2.

Clearly there's something that's triggering the move back to USB 2 (maybe a reboot?) but I haven't been able to diagnose any further than this, and it's extremely frustrating. I have a high capacity drive that is severely limited for the use I want to make of it because I can't shift bulk data onto it at a reasonable speed.

Does anyone have any ideas of what I could try to fix this, or how I could diagnose the problem further?

2 Answers 2

1

For completeness, I also have an Intel 1E2D controller with a USB 2 hub which has everything other than the disk attached to it (mostly things plugged into the actual USB 2 ports, but also a headset that's plugged into the other USB3 socket, oddly enough)

It sounds like your motherboard's USB3 xHCI controller is unable to handle USB2 devices on its own so it was paired with a "companion" USB2 EHCI controller sharing the same ports. (This is somewhat common with older motherboards – not necessary for xHCI in theory, but some manufacturers still do it for some reason.)

This means that all devices connected to USB3 ports actually go through a multiplexer to the USB2 controller at first, and it "upgrades" them to the companion USB3 controller if it sees that the device is USB3 capable. This way, the same physical port can show up under both controllers depending on what's connected.

I tried reinstalling the chipset drivers for my motherboard, and that moved the drive to the USB 3 hub, and everything was excellent! But a few days later, it was back on the USB 2 port (for no reason that I could spot). I reinstalled the drivers again, and same story - USB 3 briefly, then back to USB 2.

I very strongly suspect that the drivers have nothing to do with it. You're seeing the actual physical attachment represented in the tree. The act of reinstalling drivers only happens to disconnect and reinitialize the USB controller (not unlike a reboot, I think), and it re-negotiates the USB protocol with all connected devices, and reroutes the HDD to the USB3 controller.

I don't have many guesses as to what causes this, but I would actually suspect the USB3 connectors themselves (i.e. the cable and possibly the socket). On my old laptop I've had the issue that the additional USB3 pins at the back of the port just don't make good contact anymore – or something like that, anyway – and over time the ports just stopped recognizing USB3 devices in general.

You mentioned reboots. It might be that during a reboot, the BIOS doesn't support USB3 so it temporarily disables the automatic rerouting to xHCI and whatever devices are detected during power-on will just stay on the EHCI controller. Again, only a guess.

2
  • The disk seems to work perfectly on my laptop, which has only USB3 ports. So I guess that suggests it might be the USB3 socket on my desktop PC that is the problem here. Trying a different disk, that also seems to exhibit the same behaviour. Sigh. Maybe it's time to switch to my laptop fulltime, in that case...
    – Paul Moore
    Commented Apr 2, 2021 at 11:04
  • According to the manual, your motherboard has a pin header for two additional USB 3.0 ports (F_USB30 near the RAM slots). You could use it to connect a back panel expansion bracket, giving you two new USB 3.0 sockets. (Perhaps slightly less reliable than the original hardwired sockets, since you're basically going through an extension cable, but it should do the job for an HDD.) Commented Apr 2, 2021 at 11:31
1

There are two possible hardware elements that might be responsible for the problem:

  1. A defective disk
  2. A defective USB3 port or hub

The only way to find out which one is correct is by testing:

  • Test the disk on other USB3 ports on your computer
  • Test the disk on another computer where USB3 is known to be working
  • Try another USB3 disk of another model on your computer.

The results of these tests will help determine which hardware device is the cause of the problem.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .