Friday, June 07, 2013

"STOP: c000021a {Fatal System Error} ... status of 0xc0000135"

Have been struggling this morning with a Windows XP PC which was in a reboot cycle displaying the following error:
STOP: c000021a {Fatal System Error}
The Windows Logon Process system process terminated unexpectedly with a status of 0xc0000135 (0x00000000 0x00000000).
The system has been shut down.
God there's a load of crap on the internet - including in the Knowledge Base. "Do a chkdsk. Check the memory" which is all fine and well but it doesn't analyse the problem the computer is actually reporting (although Microsoft take 90% of the blame here for not properly publishing error codes.  More posts, including Microsoft, said "do a repair install" but that would have broken stuff I didn't want to break, and doing a re-image would have been inconvenient. Better to see if it could be fixed.

Most STOP 21A errors point to issues in winlogon.exe and csrss.exe but the "status of 0xC0000135" was an important differentiator between those and this, and it wasn't until I unearthed this blog, this forum post and a post by "Richard" on this forum page which led me to this crusty old NT4 Knowledge Base article that the solution emerged. A DLL file was missing from c:\windows\system32. But which one? And how to bring it in while causing minimum impact?

First I went to a working computer and copied all DLLs in \system32 to a folder on a USB key. Then I booted a Windows 7 install CD and went into the repair console. Why? Because the WinXP console is very limited, being unable to run offline system file checking or XCOPY. Then I did an XCOPY from the USB stick to c:\windows\system32, answering no to overwrite existing files. A bunch of stuff came in, mostly linked a scanner which wouldn't have been common to both, but some graphics dlls came in too.

We're migrating to Windows 7 so hopefully this isn't one I'll have to deal with again but am publishing it here in case some other poor soul comes across it.