Once the rot sets into Windows, it can be impossible to clear. Jon Honeyball describes his battle to bring a troublesome Windows 7 64-bit machine under control
I hate it when things don’t work properly; friends will attest that I’m like a bear with a sore head when confronted with a glitchy computer. Worse still, as I advance in years I find myself less willing to “nuke it from orbit, it’s the only way to be sure” (to quote from Alien). I have to be sure that I’ve explored every avenue to fix the damn thing before I’ll give up, which results in a worse temper, more grey hair and the consumption of a large gin and tonic. Twenty years ago, I saw it as a challenge: by trying to dig through whatever had befallen Windows I learned a huge amount about its configuration, systems settings and so forth. Today, it’s just a bore. Our operating systems should no longer implode.
Windows has a poor reputation for being something that requires six-monthly reinstalls because it “rots”; in other words, chronic problems accumulate and make the system behave less solidly. Admittedly, much of this rot is self-inflicted. A lot of Windows applications, particularly device drivers, aren’t well written. Add a pile of dodgy apps and a smattering of drivers to a clean Windows installation, and it isn’t difficult to see how things start to go wrong. Whether that’s Microsoft’s fault isn’t really the point.
The 6 month rot
Windows 7, however, appears to be more robust in the face of this “six months rot”, and this is especially true of Windows 7 64-bit, which requires the use of 64-bit drivers. This has helped to weed out the dodgy driver vendors, which has effectively minimised the rot. It was therefore especially galling to discover that a six-month-old laptop of mine, running Windows 7 64-bit, had fallen off a cliff in terms of performance and stability.
It happens to be a Dell, but I’m not convinced this is part of the problem since Dell has a pretty good reputation for providing up-to-date drivers on its website, although it does force you to download each one, piece by piece, in a ritual not unlike choosing individual pieces of sushi at a restaurant. That takes hours, and you don’t feel particularly full afterwards.
The problem first reared its head when the laptop stopped recognising USB memory sticks. I try to keep a minimum number of machines attached to my main network in the office, simply to keep the network browsing performance under control, and if I want to transfer a few files to a laptop then using a USB stick is just as quick. However, this laptop – a Studio XPS – suddenly decided not to play ball. It didn’t matter which USB stick I used; none of them registered with the operating system. I could hear that familiar “dum dim” sound as plug-and-play found the device, but nothing was mounted as a file system. Unfortunately, pressure of work got in the way at that point and I didn’t have time to follow up the problem for some weeks.
Delving into device manager
When the moment to investigate arrived I dived into Device Manager and discovered the Windows equivalent of a multi-car pile-up. It definitely isn’t a good thing when you find multiple entries listed as “unknown device” under “other devices”. The first thing to do was to see if Windows Update knew about any new drivers, but that didn’t help. So I went to the Dell website and downloaded every driver it had for that laptop model. One thing I like about Dell’s site is that you can enter the unique build number for your device and it should tell you what you need to know. At least, that’s the theory; Dell has become lazy with implementing this valuable service and now cheerfully lists drivers that, when you attempt to install them, inform you that this particular hardware is missing. For example, it lists several versions of its Wi-Fi card as being present, despite the fact that my laptop has only one fitted. It’s still better than the “screw you” approach taken by many other vendors, which insist that you waste whole lifetimes trying to dig up the right drivers from their opaque websites.
After installing every driver I could find from Dell (with a few of them falling over) and popping in a BIOS update, the problem still hadn’t shifted so I moved to Windows Fix it, which promises to solve common problems with the OS. This did nothing, so I dived into the Event log. That wasn’t much help either. The next step was to fire up the Computer Management tool under Control Panel | Administrative Tools, and inside that I chose the Disk Management tool. My 64GB USB stick was present and correct, but it had no drive letter.
I tried right-clicking on it and choosing “Change Drive Letters and Paths”, on the grounds that if Windows didn’t think there was a drive letter, it would need to be given one. However, on choosing this option Windows threw up an error message: “The operation failed to complete because the Disk Management console view is not up-to-date. Refresh the view by using the refresh task. If the problem persists close the Disk Management console, then restart Disk Management or restart the computer.” None of which was relevant in this particular case.
This device is “unknown” but apparently “working properly”. No, it doesn’t make sense to us.
It was time to get down and dirty. You may not have noticed them, but there are several ways of viewing hardware devices in Device Manager. It can be useful to go into the View menu and select “Devices by connection” rather than the default of “Devices by type”, which immediately revealed one part of my problem. It showed an Intel ICH9 Family USB Universal Host Controller with a child item of “Generic USB hub”, connected to which were three devices: a Dell Wireless 370 Bluetooth mini-card and two USB human interface devices (HIDs). The first of these USB HIDs had one “unknown device” attached, while the other had two. Then, under “consumer IR devices” was a child called “Microsoft eHome infrared transceiver”, which had a total of nine “unknown device” entries.
Further digging revealed that my problem was definitely to do with HIDs. The Windows HID system is designed to allow a range of devices to be connected to control applications, and if I remember rightly it first came about to support much-needed peripheral devices for disabled users. Since then it appears to have grown to cover all sorts of devices, most notably remote controls, hence the reference to the eHome infrared transceiver, which allows you to use a handheld remote control unit. Unfortunately, clicking on each device didn’t really help, as their drivers told me that one item was an HID_DEVICE_SYSTEM_MOUSE, another was an HID_DEVICE_SYSTEM_CONSUMER (whatever that is) and so on. Some had VID_ and PID_ entries, but that didn’t help much either.
Off to the pub
It was at this point that I came to a grinding halt: I could disable the whole HID device tree, which would remove the duff entries, but that wasn’t solving the problem, merely sweeping it under the virtual carpet. My USB sticks still weren’t working, almost certainly because something in this USB driver stack was causing the devices to fail to initialise or mount properly. There was only one thing left to do: go to the pub.
I tucked the laptop under my arm and set off for my local establishment, where I met up with friends. We were having an evening imbibing session loosely related to the #ITTU (IT Twitter Users) meetings we hold in the city, but since this was rural we called it ITTU6SP1, a “service pack” refreshing session to be applied to the last major event. I handed my laptop around and asked for thoughts. Most people suggested all the things I’d tried already, until
@pjbryant came up with another USB stick to try. It worked immediately and mounted with no problems.
Into the Registry
Clearly something odd was afoot, so we dived into the Registry and looked at the area where Windows caches information about recently inserted USB devices (which it does to remember which drive letters were assigned to which sticks). Even I was surprised by the enormously long list of devices that had been inserted into this laptop over its short lifetime. The obvious thing to do was delete some of these entries and see whether flushing out all this old data would allow Windows to relearn my own drive’s letters. But Windows wouldn’t let us delete the existing entries, and we drowned our disappointment in ale.
The next morning, after my head had cleared, I tackled the problem yet again, and a web search turned up a tool called USBDeview
. This little utility showed me all the devices that were attached, or ever had been attached – probably even those I might have thought about attaching – to my Dell laptop. Wow, what a tool! I could sort the results by device type, so I chose all the mass storage items and then hit the uninstall button. Kapow! They were all gone from the system. To make this work, you have to right-click on the app icon and choose Run As Administrator. Having cleaned out all this old garbage and rebooted the machine a few times just to be sure… nothing. The USB sticks still wouldn’t work on the Dell. There truly is a ghost in the machine.
What to do? Well, there really are no more choices. I’ve tried everything from deleting the devices to forcing a plug-and-play rescan, and from reinstalling everything on Dell’s website to running Microsoft’s diagnostics. I’ve come to the end of the road. This machine needs to be flattened and completely reinstalled. That this could happen after less than a year of on-and-off usage is somewhat disappointing. Despite wasting days on this problem and imbibing several rounds of beers to the detriment of my health, I can’t make this damn machine work properly and I’ve run out of things to try. I like to think that I’m not exactly clueless at such things and that there isn’t something obvious staring me in the face with a large “Doh!” sign writ large.
Maybe it was asking too much for Windows 7 64-bit to be made completely bombproof, but the inescapable conclusion is that it isn’t. It’s still far too easy to break, and when things do go wrong the resources available to fix them aren’t up to the job. Later I will take a Norton Ghost image of the machine’s configuration for posterity and then nuke it from orbit, as Ripley would have advised. It is, after all, “the only way to be sure”.
Add your own comment below.