Troubleshooting and Resolving a Hang in 90 Seconds
Posted by William Diaz on June 3, 2011
I’m a stickler when it comes to performance issues on my workstation. So it bothered me when I noticed a small delay when right clicking on my desktop. By small, I mean literally 2 seconds. I opened SysInternals Process Explorer to quickly see if the CPU was spiking:
I looked at the all the processes to see which process was the offender but the 45-60% CPU time was the total of several processes. After the menu opened and a few seconds later the CPU% would drop down to a normal 0-1%.
I started by opening WinDbg from the Windows Debugging Tools. I wanted to attach to the process involved in opening the right-click menu, which is explorer.exe, the Windows user shell. I did this by simply going to File > Attach to a Process and selecting the explorer.exe process. After clicking OK, Windbg breaks into the process, which suspends it, rendering it unresponsive. To resume the process, simply type g (go) or F5. At this point, all I needed to do was recreate the issue by right-clicking the desktop and see what module was loaded in into explorer:
Right-clicking on the desktop loads atiadlxx.dll, which is part of the ATI Catalyst Control Center, and also an option in the context menu:
Since I didn’t have time for upgrading, downgrading, or reinstalling display drivers, I turned to SysInternals Autoruns to disable the context menu option. Finding it was a simple matter of going to one of the different ContextMenuHandlers locations in Autoruns and unchecking the likely registry entry that loads this into the menu:
Although the dll is not the same as that indicated by WinDbg, they are part of the same shell components. Afterwards, the right-click on the desktop delay was gone.