I can barely remember the last time I had to troubleshoot the dreaded Blue Screen of Death (BSOD) on a Windows system. But, as luck would have it, I have been suffering from a spate of random freezes, lock-ups and BSODs for a few weeks now on my Windows 7 x64 box.
I did try installing some freeware that looked at the few mini-dump files that these crashes left behind but the diagnosis was not very helpful. I also updated all of my drivers and even installed all the ‘recommended’ updates from Windows Update in the hope of fixing something.
I didn’t want to reinstall Windows without knowing the cause and that turned out to be a good decision. I had to learn a few new tricks to track down the problem though.
The first thing that I did was to install the Microsoft Windows SDK for Windows 7 and .NET Framework 4. I installed the Debugging Tools for Windows which installs WinDbg which we can use to analyze Windows mini-dumps from crashes and BSODs.
Run WinDbg as an administrator and then click File and then Open Crash Dump. Browse to C:\Windows\Minidump and open a .DMP file. When prompted to Save information for workspace click No.
At this point you will see basic Bugcheck Analysis and you can click the !analyze-v link to view detailed debugging information.
Depending on your problem this might be enough to point you in the right direction – but I found that the crashes and BSODs that I was experiencing were not often creating mini-dumps. When my computer blue-screened it automatically rebooted and I could not read the BSOD either.
To try and get some more information to troubleshoot we can adjust the following settings in Control Panel and Windows Services.
In Control Panel click Advanced System Settings in the left pane then click the Advanced tab followed by the Settings button in the Performance section.
In the Performance Options window click the Advanced tab and then click the Change button in the Virtual memory section.
Make sure that the Automatically manage paging files for all drives check-box is checked.
Click OK until you get back to the System Properties window and then click the Settings button in the Startup and Recovery section.
In the System failure section make sure that Write an event to the system log is checked and un-check Automatically restart. In the Write debugging information drop down menu select Small memory dump. Amend the Small dump directory to %SystemRoot%\Minidump.
Click OK and exit the Control Panel. Do not restart your computer just yet.
Click Start and then type services and then press the Enter key.
Scroll down to Windows Error Reporting Service then right-click it and select Properties from the menu. Set the Startup type to Automatic and the click the Start button to start the service.
Click OK and reboot your computer.
Now that we have taken care of error reporting we can configure a Windows driver verifier utility called verifier.exe.
Driver Verifier is included in Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows 2000, Windows XP, and Windows Server 2003 to promote stability and reliability; you can use this tool to troubleshoot driver issues.
Click Start and then type verifier.exe and then press the Enter key.
Click the Create custom settings (for code developers) radio button and then click Next.
Make sure that Standard settings, Force pending I/O requests and IRP Logging are all checked and then click Next.
Click the Select driver names from a list radio button and then click Next.
Click the Provider column header to sort the drivers and then scroll through the list and check all listed drivers except for Microsoft Corporation.
Click OK and reboot your computer.
At this point I found that my computer BSOD during boot and the BSOD identified dtsoftbus01.sys (a component of Daemon Tools Lite) as the problem.
So I booted into Safe Mode and uninstalled Daemon Tools and was surprised that this was the fix for weeks of BSODs, system freezes and crashes. I let verifier run on my system for 24 hours (without any further issues) before turning it off.
If you cannot boot in to your computer because of BSOD while verifier is running you can turn it off in Safe Mode.
Run verifier and then select Delete existing settings and then click Finish and reboot.
I was quite surprised that one piece of software could cause so much trouble and variety of symptoms. It was well worth going through this process to isolate the problem. If I had reinstalled Windows I would have most likely installed Daemon Tools again and been back to square one.
I had been using Virtual Clone Drive instead of Daemon Tools for a little while because of some issue that I cannot now remember – but had been a long time user of Daemon Tools until now.
Many thanks to karlsnooks and the Windows Seven Forums for pointing me in the right direction here and here.