终端服务器打印

重要

从 WDK for Windows 11 版本 22H2 开始,不再支持 WDF 可再发行组件共同安装程序。 若要了解如何解决此更改,请参阅 WDF 可再发行组件共同安装程序在WDK 已知问题 中不起作用一文。

Microsoft Windows 支持终端服务,这是一种允许多个用户连接到单个服务器系统的技术。 此服务器系统称为终端服务器。 有关终端服务的详细讨论,请参阅 Windows SDK 文档。

如果你正在开发适用于 Windows 的打印机微型驱动程序或驱动程序,则无需执行任何特殊操作即可支持连接到终端服务器的打印机。 但是,必须遵循 Windows 驱动程序工具包 (WDK) 中指定的所有设计、实现和安装准则。 具体而言,必须使用以下规则:

所有自定义驱动程序代码都必须可重入。 用户模式代码应使用 Windows SDK 文档) 中所述的关键部分对象 (。 内核模式代码应使用信号灯 (请参阅 EngCreateSemaphore 和相关函数) 。

打印机驱动程序和自定义后台处理程序组件必须只能通过专门为这些驱动程序和后台处理程序组件提供的接口来访问注册表,如 WDK 的相应部分所述。

安装注意事项

通常,只需提供一个 INF 文件,当用户调用“ 添加 打印机”向导时,Microsoft 的打印机类安装程序即可读取该文件。 有时,还需要自定义安装代码 (共同安装程序或类安装程序) 。 如果必须创建自定义安装代码,请记住以下事项:

  • 用户或安装代码必须将终端服务器置于安装模式。 (有关详细信息,请参阅 Microsoft Windows SDK 文档。)

  • 请勿尝试替换系统文件。 Windows 文件保护禁止系统文件替换。

  • 尽量避免要求重启系统。 使用以下指南:

    1. 不要替换未更改的驱动程序文件。 例如,如果已安装最新版本,则不应更新由多个设备共享的文件。

    2. 如果必须替换文件,则安装代码应采取步骤卸载旧版本,然后加载新版本 (例如,停止驱动程序服务,替换文件,然后重新启动服务) 。

    3. 要求用户注销,然后重新登录,比要求重新启动系统更可取。

有关共同安装程序和类安装程序的详细信息,请参阅 编写类安装程序和共同安装程序

在编写自定义安装代码之前,请务必阅读 Windows SDK 文档中提供的终端服务编程指南。

用户界面注意事项

用户运行的自定义安装代码可以显示用户界面。

几乎所有打印机驱动程序代码都在后台处理程序的执行上下文中运行,因此无法显示用户界面。 用户界面只能由打印机接口 DLL 显示,并且只能从以下函数中显示:

所有其他打印机驱动程序代码在后台处理程序的上下文中执行。 在此上下文中,允许调用 MessageBoxMessageBoxEx ,但必须设置MB_SERVICE_NOTIFICATION。 Windows SDK 文档中介绍了这些函数。