thanks for your help. The system is brand new build, so I can't imagine the disk dying. As for viruses, I only have AVG Free on there at the moment, and only had internet on there for a couple days. The only things I recall downloading were Windows & AVG updates and Open Office, and all my AV scans came back clean, except cookies, of course.
I did also run sfc /scannow, and checking the cbs.log, I find "lots of hashes for wmadmod.dll do not match actual file wmadmod.dll", "expected....", "cannot repair member file.." I also got similar messages for ufat.dll.
I'm not very familiar with SafeMode, what kind of things should I be trying/looking for? Thanks again for your help!

Originally Posted by
H2SO4
There are several possible reasons for that error, and this list is by no means exhaustive:
- The DLLs really are damaged, on-disk, perhaps because the disk itself is dying. CHKDSK should at least reveal multiple errors, even if it can't fix them.
- The DLLs are damaged, but the corruption is logical, not physical. Virus infection and/or removal can sometimes produce that effect. In order to be viable as an executable, a DLL's structure must follow some very strict rules. If a virus grafts itself onto the DLL inexpertly, or if it's subsequently removed (by the AV) in a desctructive fashion, the DLL can be left in a damaged state.
- DLLs themselves are perfectly OK, but there's something running on the machine which is interfering with the loading process and making the resultant in-memory image look corrupted. This is usually more common to poorly written AV than poorly written viruses.
I'd suggest testing what happens in safe mode and doing system restores/repairs if necessary.
Also, not all DLLs require "registration" (with regsvr32), and not all of them can be registered. Regsvr32 calls an exported function in the DLL called DllRegisterServer. What happens afterwards depends on the contents of the function in any specific DLL's case. DLLs which provide COM objects use DllRegisterServer to install/register in the COM database. Other DLLs do not export DllRegisterServer, and thus using regsvr32 on them will result in a (harmless) error.