Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am having a weird problem that I hope I am going to describe properly. It all happened when I decided to update my Windows 7 Home.

The problem is that, at reboot right after the Windows update, I receive the dreaded "missing or corrupted file". The file we are talking about is cng.sys.

I am a linux user, so the first thing I did was to open the NTFS partition and check if the file was there. It was not. Then I went through the Windows Recovery standard procedure.

  • Recovery Console, letting it fix the problem. It couldn't.
  • Recovery Console with command prompt, "sfc /scannow /offbootdir= /winbootdir=", but it told me that there was a pending update and it couldn't.
  • Renaming of the pending.xml in pending.bak and sfc again. It couldn't fix the files even if it could find problems.

At this point, I discovered the winsxs folder, with all the updates in it. I checked in pending.xml and saw that cng.sys was actually scheduled for deleting and replacing ( and tags). I tried to delete the pending.xml section where it was referencing cng.sys. It didn't work. I then went into the update folder to see if the new cng.sys was there. looks like there are many folder with the same name and different creation date containing that file. The last (date-wise) contains cng.sys...but it is 0 Kb !!! This is actually not linked to the fact that the file in my Windows/System32/drivers is not there, but I decided to take a old cng.sys file from the old updates and copy it.

The result was the error 0xc0000020 AKA "The verification of a KnownDll failed....".

I think I have two ways to solve without reinstalling:

  1. Override the check for the KnownDll(s). Is it even what it does?
  2. Revert the update?

All of it has to be doable within Recovery Console. I think I have seen somewhere a command line call to some Windows utility for reverting the updates...but I can't find it anymore...

Thank you very much! Kap

UPDATE3: I am still trying to make it work...I have a running linux and this is not really urgent for is the list of files I am missing (they are 0 byte) you guys have any clue on how I can get them?

./amd64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17940_none_044c26dd7386a58a/cng.sys ./amd64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.22099_none_04a88ce28cc4eb33/cng.sys ./amd64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.22099_none_04a88ce28cc4eb33/sspicli.dll ./amd64_microsoft-windows-ncrypt-dll_31bf3856ad364e35_6.1.7601.22099_none_bc3c57b22195c1a0/ncrypt.dll ./amd64_microsoft.vc90.mfc_1fc8b3b9a1e18e3b_9.0.30729.1_none_951ab4128654b0c9/mfcm90.dll ./amd64_microsoft.vc90.mfc_1fc8b3b9a1e18e3b_9.0.30729.1_none_951ab4128654b0c9/mfcm90u.dll ./Backup/amd64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17940_none_044c26dd7386a58a_cng.sys_050526ad ./Backup/wow64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17940_none_0ea0d12fa7e76785_sspicli.dll_bcec1809 ./x86_microsoft-windows-sechost.resources_31bf3856ad364e35_6.1.7600.16385_en-us_dcf8b806907609b7/sechost.dll.mui ./wow64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17940_none_0ea0d12fa7e76785/sspicli.dll

By the way, the linux command I ran is: find . -name '*' -type f -size 0 > log.txt

share|improve this question
What update exactly is causing this problem? – Ramhound Jan 20 '13 at 15:55
It should be KB2574819. – Andrea Richiardi Jan 20 '13 at 15:59
Just for the sake of it, have you tried copying over a known good version of the file from some other system using a linux live CD? – Akash Jan 20 '13 at 15:59
I have copied a cng.sys file taken from one of these winsxs folders (the most recent one), but I got the "The verification..." error. I couldn't find a good version on the DVD, or at least I don't know which package I have to expand... – Andrea Richiardi Jan 20 '13 at 16:01
It turnes out that my dll was, I have copied another one and win is showing up, finally! The problem now is that no software is working. I have looked if there are other 0 byte files in C:\Windows and they are more or less ten... – Andrea Richiardi Jan 23 '13 at 1:16
up vote 1 down vote accepted

Since this issue is presented at startup, you can try Startup Repair which repairs most startup issues.

To access this tool, restart your computer tapping on the F8 key until you reach the Advanced Startup Options menu. Select Repair Your Computer and then Startup Repair.

share|improve this answer
I had to try the Linux way because all the Windows "standard" means were of course failing. – Andrea Richiardi Feb 9 '13 at 4:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .