转换打印监视器以用于群集打印服务器

打印服务器的群集是 Windows 2000 的一项新功能。 必须修改打算在 Windows 2000 (或更高版本) 群集上运行的任何打印机端口监视器,以便可以从多个后台处理程序实例 (节点的后台处理程序和群集后台处理程序) 调用它。 必须执行以下步骤:

  • 监视器的 InitializePrintMonitor 函数必须替换为 InitializePrintMonitor2 函数。 后一个函数返回监视实例句柄。

  • 全局存储的变量必须移动到本地分配的内存,并且此内存必须与 InitializePrintMonitor2 返回的监视器句柄相关联。

  • 必须将对 Win32 注册表 API 的调用替换为对后台处理程序注册表函数的调用,这些函数的地址在 MONITORREG 结构中传递给监视器。 有关详细信息,请参阅 存储端口配置信息

  • 端口监视器必须分为端口监视器 UI DLL 和端口监视器服务器 DLL。 UI DLL 必须通过调用后台处理程序的 XcvData 函数来与服务器 DLL 通信。

  • 必须添加 Shutdown 函数。

未转换的打印监视器只能在非群集环境中使用。 它们不能与群集服务器一起使用。

在运行 Windows 2000 或更高版本的计算机的群集节点上运行的打印机端口监视器通过网络或本地) (建立连接后,端口监视器应在合理的时间内从后台处理程序发出的调用中返回。 后台处理程序资源超时的默认值为 180 秒。 有关详细信息 ,请参阅设置端口 Time-Out 值

从一个群集节点故障转移到另一个群集节点时,后台处理程序必须等待所有当前打印作业完成或失败。 如果挂起的打印作业在端口监视器中保留的时间超过后台处理程序资源超时的时间,后台处理程序可能会以不完整状态重新联机,打印机暂时丢失。 这可能会影响与缺少的打印机建立连接的用户。