故障现象
win11用HP官方驱动网络连接HP LaserJet m128 p1020等打印机
时不时提示打印服务Print Spool未运行,手动开启服务后可以正常打印,但大概几天内又会停止。
查看事件管理器得到报错信息
错误应用程序名称: spoolsv.exe,版本: 10.0.22621.6133,时间戳: 0xbddbf451
错误模块名称: HpTcpMon.dll,版本: 7.2.5.51,时间戳: 0x4ab0e4d3
异常代码: 0xc0000005
错误偏移量: 0x000000000001c62c
错误进程 ID: 0x0x1190
错误应用程序启动时间: 0x0x1DCDE9AB1A622FA
错误应用程序路径: C:\Windows\System32\spoolsv.exe
错误模块路径: C:\Windows\System32\HpTcpMon.dll
报告 ID: b7f0bdbd-7ff0-428c-8bef-aa7e8fe6adfc
错误程序包全名:
错误程序包相对应用程序 ID:
HpTcpMon.dll介绍
核心概念:什么是 Port Monitor?
在 Windows 中,打印机不能直接把数据扔给网络网卡或 USB 接口,它必须通过一个叫做 Print Spooler(打印后台处理程序) 的核心服务。而 Spooler 并不懂得底层硬件的通信协议(它不懂什么是 TCP/IP,也不懂什么是 USB 信号)。
Port Monitor(端口监视器) 就是连接 Spooler 和底层物理接口的“翻译官”兼“快递员”。
- 它的职责: 打开端口、配置端口、将打印数据流(RAW/LPR 等)传输给打印机、管理双向通信(如获取打印机墨水状态、纸张耗尽错误等)。
关系对比
Windows 允许不同的硬件厂商编写自己的 Port Monitor 来扩展打印功能。
| 端口监视器 (Port Monitor) | 对应的物理/网络端口 (Port Type) | 说明 |
|---|---|---|
tcpmon.dll |
标准 TCP/IP 端口 (Standard TCP/IP Port) | Windows 自带,通用的网络打印监视器。 |
HpTcpMon.dll |
HP Standard Network Port | HP 专用的网络监视器。 |
usbmon.dll |
USB 端口 (USB001, USB002) | 负责本地 USB 连接的打印机。 |
localspl.dll |
本地端口 (LPT1, COM1, FILE) | 负责传统并口、串口或打印到文件。 |
解决方法:将HP Standard Port换为Standard TCP/IP Port
在 C:\Windows\System32 目录下,将HpTcpMon.dll重命名为HpTcpMon.dll.bak
按win+r,输入regedit运行注册表编辑器,并且定位到
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\HP Standard TCP/IP Port
将Driver的值从HpTcpMon.dll改为TcpMon.dll
重启电脑后,测试打印成功。并且在控制面板-硬件和声音-设备和打印机-打印服务器属性中查看打印机端口,可见已经改为系统自带的标准 TCP/IP 端口