Introduction
For years certain USB devices behaved oddly - sometimes an external hard drive stopped being recognized. Other times, USB memory sticks.
Recently I got a 1200ac wifi usb radio and installed it on one of my laptops. I say one because it wouldn't work with the other one, it just wouldn't recognize the device.
A few months later and not the laptop it has been used in all that time suddenly stopped recognizing it in the exact same way the other laptop fails to recognize it - you plug it in and get the dreaded "fast three beeps" indicating "I see the device but it's not one I know what to do with - never seen it before" and not the reassuring "bing-bong" noise that it recognized the device, found a driver and you're all good to go.
So, at one point I had two identical Thinkpads, one that had not and could not recognize the radio dongle and one that worked flawlessly for six months with it 24x7 and now would not recognize it no matter what I did.
What I did was uninstall the drivers, reinstall - nothing. Uninstall all the USB drivers completely, clean the registry, reinstall it - nothing. I learned more about USB than I wanted to, such as the Logitech dongle for their unified mouse/kbd thingy uses USB1 only and will never use your USB2 port.
But no dice. Until one morning when still looking for a solution to this, we found one, tried and it worked and all computers were up and running in minutes, thus ending a problem that's been around since at least Windows 98 and still exists in at least Windows 7 if not later.
The Problem
Based on the solution the problem is obvious. Windows is confused, but when was that ever not true?
Here's the problem: what's supposed to happen is you plug in a USB device and Windows is supposed to look at it, figure out what it is and what drive it needs then hook the two up. It uses, apparently, a USB devices database in the registry and this can get messed up.
How? Well, this system works when it works. When things work fine, it's flawless. The problem is if for any reason - human error, a hardware fault - dirty contacts, a problem with a disk drive - anything that can cause a bad entry to the USB device database can be a problem. Because once it's in there, every time you plug it in, it'll see the same (wrong) thing, it "remembers" what the device is to "help" you.
What it should do
Instead it should not automatically "remember" a unknown device or one it may not recognize and instead should perhaps prompt you: "Unrecognized USB device. Do you want to add it to the device history table" and any right thinking person should say "no". That it adds it no matter what doesn't strike me as the best idea.
Second, there should be an easy way to look at and get rid of, all this USB device stuff in the registry.
The Solution
There's a public domain utility written by Uwe Sieber that clears the USB device history tables in the windows registry. I get the impression it deletes all the entries for USB devices except the ones currently plugged in. But it works, is small and fast. As soon as it's done you can plug in your "problem" USB device and it should work just fine.
Here's a link to the software:
How to use it
Download the zip file, and unpack it. It'll make two directories, one 32bit and one 64bit. Go into the appropriate directory for your machine and run the executable ("exe") file there.
That's it. Nothing to install, it takes a few seconds to run and shows you what old entries it removed and what ones it ignored because they're in use. Works like a charm!