端口监视器

端口监视器由用户模式 DLL 组成。 他们负责在用户模式打印后台处理程序和访问 I/O 端口硬件的内核模式端口驱动程序之间提供通信路径。 端口监视器通常使用 CreateFileWriteFile、ReadFileDeviceIOControl 函数与内核模式端口驱动程序通信。 端口监视器还负责管理和配置服务器的打印机端口,如 管理端口中所述。

基于 NT 的操作系统用户的“打印机”视图实际上是一个打印队列,可以连接到一个或多个物理打印机设备。 端口是打印队列与单个打印机设备之间的物理连接。 每个端口监视器都支持一个或多个类型端口的实例。 例如,示例 端口监视器Localmon.dll可以支持服务器的所有本地 COM 和 LPT 端口。 打印文件夹通过调用 AddPrinter 函数将端口分配给端口监视器。

对于表示多个打印机设备的打印队列 (通过多个端口) ,后台处理程序会将每个打印作业发送到第一个可用端口。 如果端口监视器指示指定的端口正忙或遇到错误,后台处理程序会将作业重新提交到队列,并指定端口监视器支持的另一个端口。

除了Localmon.dll,Windows 2000 及更高版本的操作系统版本还提供多个额外的端口监视器。 Windows 2000 服务器资源工具包描述了其中每个端口监视器。 (此资源可能在某些语言和国家/地区不可用。)

可以编写自定义端口监视器以支持其他类型的 I/O 端口硬件。

对于 Windows 2000 及更高版本,每个端口监视器分为两个 DLL:

端口监视器 UI DLL 端口监视器的用户界面 DLL 包含用户界面功能,并在打印客户端系统上执行。

此 DLL 必须驻留在客户端系统的 System32 子目录中。

端口监视器服务器 DLL
端口监视器的服务器 DLL 包含端口通信功能,并在打印服务器上执行。 它不得显示用户界面。

UI DLL 通过调用后台处理程序的 XcvData 函数与服务器 DLL 通信。

Windows 驱动程序工具包 (WDK) 中包括 示例端口监视器