终端服务器打印

重要

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

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

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

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

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

安装注意事项

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

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

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

  • 避免尽可能多地要求系统重新启动。 遵循以下指南:

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

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

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

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

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

用户界面注意事项

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

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

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