Server:
Windows 2008 R2 SP1 + current windows updates.
Xerox GPD PS 5.303.16.0
Clients:
Windows 7 x64 SP1 + current windows updates
Windows XP SP3
GPO with Point and Print restrictions enabled.
Users utilize Point and Print.
Problem:
Was examining a client's PrintService/Admin event logs and noticed some reoccurring entries stating the Xerox global print driver failed to install due to invalid signature, Error code= 800f024b. Upon checking the actual .dll versions present in \\PCNAME\c$\Windows\System32\spool\drivers\x64\3\, they DID match the version on the print server. Odd why Windows would then be complaining about a failed driver install?
Other vendors UPDs (HP, Ricoh, etc) have not logged this error. The Xerox UPD is PackageAware.
Details:
Event logs:
Log Name: Microsoft-Windows-PrintService/Admin Source: Microsoft-Windows-PrintService Date: 7/10/2013 10:56:32 AM Event ID: 600 Task Category: Client-side rendering Level: Error Keywords: Client Side Rendering (CSR),Classic Spooler Event User: SYSTEM Computer: PCNAME.MyDomain Description: The print spooler failed to import the printer driver that was downloaded from \\PRINTSERVER\print$\x64\PCC\ntprint.inf_amd64_neutral_e758378b95b6b97a.cab into the driver store for driver Xerox Global Print Driver PS. Error code= 800f024b. This can occur if there is a problem with the driver or the digital signature of the driver. ------------------ Log Name: Microsoft-Windows-PrintService/Admin Source: Microsoft-Windows-PrintService Date: 7/10/2013 10:56:32 AM Event ID: 601 Task Category: Client-side rendering Level: Error Keywords: Client Side Rendering (CSR),Classic Spooler Event User: DOMAIN\USER Computer: PCNAME.MyDomain Description: The print spooler failed to download and import the printer driver from \\PRINTSERVER into the driver store for driver Xerox Global Print Driver PS. Error code= 800f024b.
Checking the contents of \\PRINTSERVER\print$\x64\PCC\ntprint.inf_amd64_neutral_e758378b95b6b97a.cab, it's just the PostScript and ntprint.inf files. There is nothing related to Xerox. Odd.
Digging into \\PCNAME\c$\Windows\inf\setupapi.dev.log, one finds more details about the exact failure is due to 'UNIRES.DLL'.
>>> [Import Driver Package - C:\Windows\system32\spool\{FA90EB76-242F-4150-A362-3A8FBB37DB2F}\ntprint.inf] >>> Section start 2013/07/10 10:56:27.591 cmd: C:\Windows\System32\spoolsv.exe sto: Importing driver package into Driver Store: sto: Driver Store = C:\Windows\System32\DriverStore (Online | 6.1.7601) sto: Driver Package = C:\Windows\system32\spool\{FA90EB76-242F-4150-A362-3A8FBB37DB2F}\ntprint.inf sto: Architecture = amd64 sto: Locale Name = neutral sto: Flags = 0x0000000C sto: Copying driver package files to 'C:\Windows\TEMP\{404a24de-0f2d-46a2-c9da-a30e91dcbd0d}'. <snip> flq: {_commit_file_queue exit OK} pol: {Driver package policy check} 10:56:30.555 pol: {Driver package policy check - exit(0x00000000)} 10:56:30.555 sto: {Stage Driver Package: C:\Windows\TEMP\{404a24de-0f2d-46a2-c9da-a30e91dcbd0d}\ntprint.inf} 10:56:30.555 inf: Opened INF: 'C:\Windows\TEMP\{404a24de-0f2d-46a2-c9da-a30e91dcbd0d}\ntprint.inf' ([strings]) inf: Opened INF: 'C:\Windows\TEMP\{404a24de-0f2d-46a2-c9da-a30e91dcbd0d}\ntprint.inf' ([strings]) sto: Copying driver package files: <snip> flq: {_commit_file_queue exit OK} sto: {DRIVERSTORE_IMPORT_NOTIFY_VALIDATE} 10:56:32.614 inf: Opened INF: 'C:\Windows\System32\DriverStore\Temp\{5ded2c15-82b3-44c9-c959-633d5454fb33}\ntprint.inf' ([strings]) sig: {_VERIFY_FILE_SIGNATURE} 10:56:32.614 sig: Key = ntprint.inf sig: FilePath = C:\Windows\System32\DriverStore\Temp\{5ded2c15-82b3-44c9-c959-633d5454fb33}\ntprint.inf sig: Catalog = C:\Windows\System32\DriverStore\Temp\{5ded2c15-82b3-44c9-c959-633d5454fb33}\ntprint.cat sig: Success: File is signed in catalog. sig: {_VERIFY_FILE_SIGNATURE exit(0x00000000)} 10:56:32.645 sto: Validating driver package files against catalog 'ntprint.cat'. !!! sto: Failed to verify file 'UNIRES.DLL' against catalog. Catalog = ntprint.cat, Error = 0xE000024B !!! sto: Catalog did not contain file hash. File is likely corrupt or a victim of tampering. !!! sto: Driver package appears to be tampered. Filename = C:\Windows\System32\DriverStore\Temp\{5ded2c15-82b3-44c9-c959-633d5454fb33}\ntprint.inf, Error = 0x800F024B !!! sto: Driver package appears to be tampered, and it will not be installed. !!! ndv: Driver package failed signature validation. Error = 0xE000024B sto: {DRIVERSTORE_IMPORT_NOTIFY_VALIDATE exit(0xe000024b)} 10:56:32.661 !!! sto: Driver package failed signature verification. Error = 0xE000024B !!! sto: Failed to import driver package into Driver Store. Error = 0xE000024B sto: {Stage Driver Package: exit(0xe000024b)} 10:56:32.661 !!! sto: Failed to stage driver package to Driver Store. Error = 0xE000024B, Time = 2200 ms <<< Section end 2013/07/10 10:56:32.677 <<< [Exit status: FAILURE(0xe000024b)]
As the Event Log entry stated (and the translated error code in http://answers.microsoft.com/en-us/windows/forum/windows_other-windows_update/error-code-800f024b/19fcf1e0-56be-4eef-a2bf-54f22f1a764f) 0x800F024B = SPAPI_E_FILE_HASH_NOT_IN_CATALOG.
I can only find really old versions of Winerror.exe and err.exe, neither which contain 0x800F024B SPAPI_E_FILE_HASH_NOT_IN_CATALOG; where does one find updated versions of these tools? Or is there a better location to translate error codes these days?
Why doesn't ntprint.cat contain the correct hash for UNIRES.DLL?