I went to fire up Remote Desktop on my home PC on Wednesday and was greeted with this unusual error:

mstsc.exe - Entry Point Not Found

“The procedure entry point could not be located in the dynamic link library C:\windows\System32\WINMM.dll”

(Yes, there’s an extra space between ‘point’ and ‘could’ – I think that’s where the name of the entry point would normally be displayed). Taking a screenshot was quite tricky as even Paint refused to start, but I managed to get the Snipping Tool to save a .png (despite a few error along the way)

Very odd, as I had used RDP a few days earlier, and most other things still worked fine (launching IE etc).

Using the Windows 8 keyboard shortcut of Win-X and choosing the ‘Command Prompt (Admin)’ resulted in “File system error (-1073741511)”

This is not looking good. I could use the Refresh option but the downside of that is that you need to reinstall all your non Store apps. So I thought I’d try some of the other options before resorting to this.

First up, I brought up the Advanced Startup Options menu by Choosing ‘Restart’ and hold down ‘Shift’ key.

After reading Fixing component store corruption in Windows 8 and Windows Server 2012, I tried running

DISM /Online /Cleanup-Image /RestoreHealth

But that failed with:

Error 0x800f0906 The source files could not be downloaded

This might be because this PC uses a Wireless USB NIC which doesn’t get enabled when running in safe mode?

I then mounted the Windows 8 .iso and re-ran DISM with /source:i:\sources\SxS option, but surprisingly that failed too.

Next, I found a network cable, and rebooted to Safe Mode with Networking, and ran DISM again.. but no luck

Then I tried sfc /scannow

This reported corruption that was it unable to repair.

I had a bit more success using the PowerShell cmdlet Repair-WindowsImage -RestoreHealth and using the -Sources argument to point it to the Windows folder on my laptop (I’d shared this folder). That seemed to update some of the SxS files, but didn’t fix the actual problem.

Back to the Advanced Startup Options to Choosing System Restore. I selected the restore item, but that failed because there was a problem with it!

Finally, I went back to the Advanced Startup Options and chose the Command Prompt option. This is the one that brings up the command prompt and sets the current directory to X:\Windows\System32. I decided to give SFC one more try, but this time using the offline options. I first ran diskpart and then list volume, which told me that the boot drive (the one with the name ‘System Reserved’ was C: and my Windows drive was E:.

I then ran:

SFC /SCANNOW /OFFBOOTDIR=C: /OFFWINDIR=E:\Windows

This ran for about 10 minutes and then reported it had successfully fixed some corrupted files.

For good measure, I then ran a CHKDSK and then re-ran the SFC command. This time it reported not finding any errors.

Rebooting and FINALLY(!) it looks like everything is working ok again.

Now to make a good restore point and ensure I have better backups in place in case this happens again. Not sure what the cause was – I’ll have to keep an eye on the hardware incase it’s an SSD on the way out.