Problem Description
Today, I have updated my Notebooks firmware and device drivers and forced a restarted. Afterwards I checked the Event Logs to be sure that everything has been updated successfully. During the analysis I saw the two Event ID’s from Source Microsoft-Windows-PrintService
. After the restart during the Spooler Service initialization the Spooler Service was not able to load the two DLL’s mentioned below inside the Event Log and ended up with Error Code 0x7E
.
Event Logs
Log Name: Microsoft-Windows-PrintService/Admin
Source: Microsoft-Windows-PrintService
Date: 4/17/2020 12:37:42 AM
Event ID: 808
Task Category: Initializing
Level: Error
Keywords: Print Spooler
User: SYSTEM
Computer: PCXY
Description:
The print spooler failed to load a plug-in module CNCALEU.DLL, error code 0x7E. See the event user data for context information.
Log Name: Microsoft-Windows-PrintService/Admin
Source: Microsoft-Windows-PrintService
Date: 4/17/2020 12:37:42 AM
Event ID: 808
Task Category: Initializing
Level: Error
Keywords: Print Spooler
User: SYSTEM
Computer: PCXY
Description:
The print spooler failed to load a plug-in module CNMLMEU.DLL, error code 0x7E. See the event user data for context information.
Root Cause Analysis
I was wondering what error code 0x7E means therefore I immediately checked with “The Microsoft Error Lookup Tool” for this error code. “The specified module could not be found.” But how was this possible ?
C:\Users\Cengiz Kuskaya>err 0x7E # for hex 0x7e / decimal 126 SQL_126_severity_15 sql_err # Invalid pseudocolumn '%.*ls'. SYSTEM_THREAD_EXCEPTION_NOT_HANDLED bugcodes.h csierrOdc_ServerTargetDoesNotExist csiErrorDefinitions.h NMERR_REMOTE_NOT_A_SERVER netmon.h ERROR_MOD_NOT_FOUND winerror.h # The specified module could not be found. # as an HRESULT: Severity: SUCCESS (0), FACILITY_NULL (0x0), Code 0x7e # for hex 0x7e / decimal 126 ERROR_MOD_NOT_FOUND winerror.h # The specified module could not be found. # 6 matches found for "0x7E"
I then searched for these two DLL’s inside the C:\Windows\System32\spool
folder because I know that all Printer Driver related DLL’s must inside the \Spool folder. The DLL’s were really not there.
Afterwards I checked the following registry Key because all Printer Driver related DLL’s are registered inside this key Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
.
BINGO !
I found it. The two DLL’s did belong to my old Canon MX 475 Multifunction Printer. I deleted the driver several weeks ago but the driver uninstaller could not clean the registry properly. The orphaned entries forced the Spooler Service to load the DLL’s but the DLL’s were not there and caused the Spooler Service to log Event ID 808
.
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Canon BJ FAX Language Monitor TR4500 series\CNCALEU.DLL
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Canon BJ Language Monitor TR4500 series\CNMLMEU.DLL
Related Articles
1. How to properly Migrate Print Services from Windows Server 2012 or 2012 R2 to Windows Server 2019
Solution
I basically deleted the following registry keys and restarted the Spooler Service. Since then Event ID 808
doesn’t get logged anymore.
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Canon BJ FAX Language Monitor TR4500 series
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Canon BJ Language Monitor TR4500 series
In my case the orphaned entries were “Language Monitor” but in your case it can be other Printer Driver components therefore basically search under the following registry key for the DLL’s that cannot be loaded Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
.
Good luck !