I tried installing an old game from the disc (Bet on Soldier). It said it would not work on my OS, only XP and 95, but I went ahead anyway.
After install it required a restart. It could not boot until I disabled driver signature enforcement.
I remembered a similar thing happened a while back when I tried to play the demo of the game, so I'm pretty sure the game's installer is making a bad change to a Windows file somewhere, probably with an out-of-date driver signature.
I ran sigverif and it found three unsigned drivers in c:\windows\system32\
msvcp110.dll
msvcr110.dll
vccorlib110.dll
However, the date modified for each of those files was not today, but several years ago (5/11/2012), so it seems unlikely. I followed all the procedures I could find on these forums:
- I ran sfc /scannow. It repaired one file: mscormmc.dll. Edit: Also tried DISM /online /cleanup-image /checkhealth and it reported no corruption detected, and completed successfully:
Version 10.0.17763.1
Image Version: 10.0.17763.379
No component store corruption detected.
The operation completed successfully.
- Downloaded Visual Studio Redistributable 2017 (Edit: Also tried with the 2012 version) and tried repairing, and tried uninstalling then installing again. Made no difference.
- Copied the specific dll files from my partner's computer (also running up-to-date Windows 10) and using them to replace my versions of those three dll's. Still sigverif finds them to be unsigned. Ran sigverif on my partner's computer and it finds no signature
problems with any of her files.
This suggests to me that it has nothing to do with these three dll's, but is actually a reference problem - I think these dll's have the correct signature, and whatever signature database sigverif is checking against has been altered or corrupted and no longer
has the correct signatures in its database for these three dll's. Next I tried:
- I ran cmd as admin, used takeown /f on each of the files, and tried "regsvr32 msvcp110.dll" for each of them, and received this error:
"The module "c:\windows\system32\msvcp110.dll" was loaded but the entry-point DllRegisterServer was not found.
Make sure that "C:\windows\system32\msvcp110.dll" is a valid DLL or OCX file and then try again."
- Just to see what would happen, I deleted these three dll's and ran sigverif, and it still reported that these were unsigned, but now it listed their date modified as "Unknown" and their version as "None" in the dialog box. I tried deleting another random
dll from that directory to see if sigverif would show the same error whenever a dll was missing, but it didn't. It still only found a problem with those three dll's.
So where/how does sigverif or Windows check the driver signatures? Is there a local database on the computer?
I'm guessing it might have something to do with HKEY_LOCAL_MACHINE\Software\Microsoft\Driver Signing registry key. Is there a way I can get Windows to refresh/verify/update this?
Or any other ideas on how to solve this?