端口监视器

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

基于 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) 中包含 示例端口监视器