Monday, January 4, 2010

BugCode_USB_Driver BSOD Workaround

A technical post, get off now if you are not familiar with the post title.

It's one of my todo to fresh install my Wind during holiday, at the same time to upgrade Vista to SP2 with hope to resolve some of the problems including problem that prohibited Wind to go on sleep/hibernation mode, as well as version upgrade for other software. Everything went well without hiccup and the rejuvenated Wind ran smoothly, I regained the "new lappy" feeling (hope to resist me from getting a new one. CES is around the corner!!) and I thought I had eliminated the sleep/hibernate problem with SP2 upgrade. Until yesterday, I met the long lost friend...


Blue Screen Of Death, BSOD!

Here's the detail (0x000000FE, 0x00000008, 0x00000006, 0x00000001) in Event Viewer's System Log...


I believe this was the same BSOD (in Vista SP1) before the reinstallation. I did not really have time to investigate and had not seen this infamous BSOD in live due to the "Auto Restart" option in System Properties. Furthermore, most of the times the blue screen happened when I was zzz (when the netbook followed me to dreamland after an hour or 2 of idle). Ok, I told myself I have 24 hours to CSI this problem before I return to hectic work.

A typical internet savvy, the CSI investigation begins at Google. The search engine returned quite a number of informative sites about this problem. However, none really helped to narrow down to the root cause. Then, a search on Microsoft Support gained me further understanding about it, in particular KB930568, KB967102 and also MajorGeeks forum that returned in MS Support search result. Again, all info was very helpful to understand what's wrong but did not offer any resolution to my problem.

I thought it was drivers related, so I reinstalled all related USB drivers including the chipset drivers. Nay, negative. I attempted to reinstall SP2 but it did not allow me to do so. I almost stuck but I observed a symptom.

Coincidentally the netbook was running flat, I found out that this problem only happened when I was on battery mode. In other words, I could reboot, sleep, hibernate without BSOD when I plugged in the power. With other info I learned from other sites such as USB's change of power state and whatnot, this led me to look into the difference between power and battery mode.

First thing came to my mind was the power profile. So I clicked on the power icon on the system tray, followed by More Power Options as shown below...


That opened up the Power Plan Options. I then clicked on Change Plan Settings on the active power plan (the plan that is currently in effect) and then Change Advanced Power Settings...


I scrolled down a little and found there's a setting for USB...


It's different for battery and power/plugged in mode. I changed it to both DISABLED...


Apply and OK. I closed all windows and rebooted again.

Tada! My problem gone!!.

I tried several rounds of reboots, shutdowns, sleeps, hibernates and the bugger BSOD is no longer haunted my Wind! Yoohoo!

It's not end of the story yet. There are other power plans beside the active one (Balanced), so I went in to change all to Disabled for the USB Selective Suspend Setting, though I never change power plans since day 1 using Vista.

There is post-mortem clean up too...


Launch the Disk Cleanup utility, select Files From All Users On This Computer and run the scan on the system drive (typically C drive)...


Check the 3 options as shown above to delete all the memory dump files generated by BSOD. Make sure you DO NOT check Hibernation File Cleaner, you would have more things to troubleshoot later. Click OK and Delete Files.

Done deal!

Certainly this problem is not limited to pre-SP2 as claimed by Microsoft, I had this problem on both SP1 and 2. This is not a solution to the problem, instead, it's a workaround to circumvent so that the OS does not tickle onto the problem. I am surprise that Microsoft did not offer this workaround nor did they publish any hotfix. Sigh.

If this helps to solve your problem, do drop a comment so that other readers can read and benefit. I am not sure if I could offer further help but you are welcome to buzz me too.

Good luck!

p/s: you need a user with administrative privilege to perform some of the tasks above.