USB devices detected as New Hardware on different USB ports

G

Guest

Hello. On our base WinXP SP2 image, USB devices (e.g. printers and
floppy-disk-drives) are been detected as New Hardware when plugged into
different USB ports (hubs?) on the motherboard. Sometimes this is
re-prompting for drivers, causing users to return Laptops.

I think this behaviour may have resulted from an indavertant change, as it
doesn't seem normal behaviour?

Regards, Mark F
 
M

M.I.5¾

Mark F said:
Hello. On our base WinXP SP2 image, USB devices (e.g. printers and
floppy-disk-drives) are been detected as New Hardware when plugged into
different USB ports (hubs?) on the motherboard. Sometimes this is
re-prompting for drivers, causing users to return Laptops.

I think this behaviour may have resulted from an indavertant change, as it
doesn't seem normal behaviour?

This behaviour is by design. Let me explain.

USB devices fall into two categories, those with a serial number and those
without. The serial number is available to the operating system (OS).
Consider the first of these. When connected for the first time, the OS
detects the connection; locates the required driver; installs the driver and
then enumerates the device. If the driver is on external media, then it has
to be inserted. It records all the details in the registry along with the
device serial number.

Now if you plug the same device into a different port, the OS recognises the
type of device and its serial number and merely has to enumerate it on the
new port (it will even retain the same drive letter even if it was manually
changed). If however, you plug a second device in, it will have a different
serial no (but see below). Thus the OS will go through the full
installation procedure above before enumerating it (and may even require the
driver on external media to be inserted - it shouldn't, but not all driver
install routines are perfect).

Now, if you now plug in a device that has no serial number, the OS carries
out the full installation procedure outlined above before enumerating the
device. If it is now plugged into a different port, without a serial
number, the OS has no way of knowing if it is the same device or a different
one, and therefore executes the full installation procedure, and may require
the driver media as above.

Fewer devices seem to be serial numbered than not.

This is how the USB interface is intended to operate, but unfortunately, the
specification contained an ambiguity. It was intended that all like USB
peripherals that were serial numbered have unique serial numbers, but didn't
actually explicitly state this. Accordingly, some peripheral manufacturers
have produced their peripherals all containing the same serial number. The
upshot is that although a peripheral can be moved between ports without
reinstallation, if a second identical device is plugged in, it will not be
enumerated and will remain inactive. There is a registry hack that can
overcome the problem but as it instructs the OS to ignore the specific
serial number, it effectively turns a serial numbered device into a non
serial numbered device.
 
G

Guest

Thanks for that MI5. As USB devices include an idVendor (VID) and idProduct
(PID), I'm curious why our WinXP Pro SP2 is not exploiting its cache in
C:\WINDOWS\INF, as I'd anticipate a cache would operate?

The following results were from Microsoft's UVCView.exe (USB Device Viewer).
Plugging-in to alternate USB Ports (1 & 2) on the same RootHub Host
Controller, the USB devices outlined are re-prompting the user for their OEM
drivers.

From what you say, these fall into the category that "without a serial
number, the OS has no way of knowing if it is the same device or a different
one, and therefore executes the full installation procedure, and may require
the driver media as above."

iOmega USB Floppy-Disk-Drive:

===>Device Descriptor<===
bLength: 0x12
bDescriptorType: 0x01
bcdUSB: 0x0110
bDeviceClass: 0x00
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x08
idVendor: 0x08BD
idProduct: 0x1100
bcdDevice: 0x0000
iManufacturer: 0x01
iProduct: 0x02
iSerialNumber: 0x00
bNumConfigurations: 0x01

Samsung USB Floppy-Disk-Drive:

===>Device Descriptor<===
bLength: 0x12
bDescriptorType: 0x01
bcdUSB: 0x0110
bDeviceClass: 0x00
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x40
idVendor: 0x055D
idProduct: 0x2020
bcdDevice: 0x0210
iManufacturer: 0x01
iProduct: 0x02
iSerialNumber: 0x00
bNumConfigurations: 0x01
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top