...I had to track down the reason for explorer.exe intermittently restarting (not crashing - restarting) and programs routinely hanging for anywhere from seconds to over a minute. In the end it all turned out to be DWM.exe causing the problems. Explorer would restart after not getting a response for a certain amount of time from DWM. Likewise, when the Windows Task Manager told me some other program was hanging, if I checked in System Explorer it told me it was actual DWM. Once again, restart DWM.exe and the problem was solved.
I'm unsure whether it was the same issue, but I recall reading recently something to the effect that the root cause of a particular crash/hang/restart problem was an inadequate WAIT time interval being set for a service to respond via an I/O bus somewhere. Once you set the WAIT to a longer time interval, the problem went away. The WAIT was specified in the Registry somewhere. Sorry I can't be more specific. I would have made a note of it if it had been relevant to my setup. I shall try and find it and will post it up here if I do.
I suspect it's not the same problem but that's mostly just because of the fairly unique circumstances (coincidences you might say) which led me to my conclusion. Arguably the most significant component of that is my computer's integrated Radeon HD 4250 graphics. If there's one thing ATI knows how to do it's making a broken driver, especially for legacy hardware.
To make a long story longer (more vurbose you might say), here is what led me to my conclusions. First and foremost you have to keep in mind certain fundamental changes to the Windows GUI. I already mentioned the fact that the compositing window manager (DWM) became mandatory. Just as important, though, are the changes to explorer.exe which made that necessary. Rather than making the Start Screen a separate thing all its own, MS incorporated it into explorer. It's an old trick of theirs going back to the days of the big antitrust case in the 90s but their motivations aren't really relevant here. The point is explorer has to provide both the Desktop and Start Screen UIs, as well as the file manager/COM client UI for Windows Explorer.
Initially, after I first installed Windows 8 and just a few basic programs (Firefox, OpenOffice, Foxit PDF Reader among others), I noticed every explorer instance seemed to hang and then crash intermittently but only when I had Windows Explorer open. Sometimes it would happen with just one instance of Windows Explorer open and nothing else and other times it was after I opened several other (non-explorer) windows or a single program with a big memory or CPU footprint. All my Windows Explorer instances would disappear, the desktop would disappear and then reload, and then everything would seem fine for anywhere from 10 minutes to several hours before it happened again.
I was also focusing on a thorough evaluation of the new Task Manager interface or else I might have gotten a lot more useful information at that point. Primarily what I did get was this. If I checked Task Manager before the crash there was always a Windows Explorer instance (ie never the desktop) "Not Responding" eventually and then the crash I described occurred. I don't recall that Windows Explorer ever just recovered and went back to normal operation but it's been quite a while so I might be remembering wrong.
I was already evaluating free third party file managers for a project I was working on and ended up going with Explorer++. Also as part of that project - which I never finished due to my stability problems in Win8 - I installed System Explorer as an alternate task manager. It ended up providing a lot more clues about what was going on. Explorer++ worked great most of the time but just like Windows Explorer it would suddenly hang for no obvious reason and with no discernable pattern. It didn't crash though. It just hung until I killed it in System Explorer.
It also didn't necessarily work when I started it again afterwards. Sometimes it did, but more often than not the process would start but no window would appear. Even stranger was the fact that it always loaded properly if I started in Windows Explorer and launched Explorer++ from a folder's context menu. Eventually I noticed a significant difference between what Windows' Task Manager and System Explorer showed on the basic programs tab. Any time a program was hung for more than a few seconds, suddenly it would switch to adding DWM to the program list with the Not Responding label.
After a lot more testing in both Win8 and Win7 I finally identified some distinct patterns. I haven't examined what's going on in great detail - like using Process Explorer - so my conclusions should be taken for what they are, basically a SWAG (Scientific Wild Ass Guess)w
. Also keep in mind that I'm not intimately familiar with how much DWM was changed for Win8 which adds another degree of uncertainty.
I'll start with Windows 7 since I think it's useful as something of a baseline for DWM behavior. Although DWM technically originated in Vista, I don't have a Vista machine and generally consider it more like as an intermediate development version on the way to Win7. If I turn compositing on I get similar problems with DWM hanging. It doesn't happen as often and given enough time it almost always recovers. Explorer crashes are extremely rare as long as each instance runs in a separate process. The best program I've found for replicating the issue is OpenOffice Calc. It's not immediate but all I have to do is start entering data into cells and it usually occurs within 5-10 minutes.
The other thing I discovered was just because you aren't using compositing, it doesn't necessarily mean DWM isn't your window manager. Initially that threw me because even after I turned off all the compositing features in Windows I continued to have programs intermittently hanging. Windows didn't switch to the legacy window manager until I disabled the DWM Session Manager service. When DWM is being used and System Explorer indicates it's hung, restarting it always resolves the issue.
That also works in Windows 8. In fact sometimes I was unable to restart or even kill a program when System Explorer said DWM was hung and the problem never seemed to resolve itself in any amount of time. I actually went so far as to leave it overnight and DWM was still hung when I came back 6 or 8 hours later. Some programs are like Explorer++ and don't work even after you restart them but most do.
More interestingly, whenever the Windows Explorer hang/crash scenario occurs, DWM was restarted automatically. It never happened when I manually killed or restarted any or all explorer processes but always happened when they spontaneously crashed. My working hypothesis is that MS developers already knew about the issue and included a workaround in their major changes to explorer.exe. It appears to me that explorer is triggering the DWM restart.
In fact I wouldn't be surprised to find out the desktop/start screen process wasn't actually crashing, but actually restarting itself as part of the same process. That would seem like the smart and safe way to go because it would also cover situations where explorer might actually be the problem. When in doubt, restart everything - sort of a big red switchw
for the Windows GUI.
On one hand it's entirely reasonable to look at this and say AMD (ATI) deserves the lion's share of the blame for these stability problems. In fact that happens to be my position. However that doesn't excuse Microsoft's poor design decision. If my analysis of what's going on in Win8 is anywhere near accurate I can only conclude Microsoft recognized relying on DWM as the exclusive window manager would cause problems for some unknown, but certainly not insignificant, number of systems. That's not necessarily a mortal sin but not being up front about it is just plain irresponsible. I suspect it won't be an issue if your hardware is relatively new, at least relative to Win8's development, but given the fact most computers (at least home computers) are in use for 5+ years today it's still inexcusable.
But the cherry on top of this turd pie is the reason Microsoft made the change in the first place. It wasn't to serve some market need or customer demand. Like pretty much everything related to the Start Screen, their motivation was purely to funnel users into their online store. And that criticism is coming from somebody who is in the target market Microsoft should be focusing on. I don't want a Windows tablet. I want a reasonably full featured laptop which can occasionally be used as a decent tablet for short periods.
It's not just a good idea, it's an unserved market. Microsoft could have hit a homerun with Windows 8 and set the standard. Instead they focused on their competitors, rather than customers, and created something that doesn't really suit anybody's needs particularly well while also making it more difficult for users (or even OEMs) to improve upon.
The lesson most successful executives never learn, the one Steve Jobs didn't learn until he was run out of Apple and failed on his own, is this. You can lead an industry but you can only follow a market. The good news for Microsoft is Google has the same problem and post Steve Jobs Apple seems to be headed that way as well. The bad new is that means somebody else will probably come out of the blue and blindside all of them. Here's to hoping that happens sooner rather than later.
Maybe by then I'll have written enough on DC to compile my own encyclopedia of long winded diatribes.