打印机图形 DLL 简介
重要
新式打印平台是 Windows 与打印机通信的首选方式。 建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) 来自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。
有关详细信息,请参阅新式打印平台和打印支持应用设计指南。
打印机图形 DLL 实现使用图形 DDI 中所述的 Drv 前缀图形 DDI 函数。 这些 DLL 具有以下两项职责:
协助 GDI 渲染打印作业。
打印机图形 DLL 可以提供图形 DDI 绘图函数,以处理必须以特定于设备的方式执行的绘图操作,因此不能由 GDI 的渲染引擎独占处理。
将渲染的数据流传送到后台处理程序。
打印机图形 DLL 通常以 RAW 数据类型(包括命令序列)生成输出流,后台处理程序可以通过打印监视器将其发送到打印机硬件。
打印机图形 DLL 必须提供的渲染帮助量特定于打印机类型,具体取决于硬件的绘图功能,包括以下方案:
GDI 渲染引擎使用 GDI 管理的图面执行所有渲染。 图形 DLL 不提供任何 DDI 绘图函数。
图形 DLL 提供一些图形 DDI 绘图函数,以使用 GDI 管理的图面与 GDI 的渲染引擎协同工作。 图形 DLL 提供的图形 DDI 绘图函数可以选择性地回调 GDI 渲染引擎的 GDI 支持服务。
图形 DLL 通过提供图形 DDI 绘图函数和使用设备管理的图面来执行所有渲染。
例如,Microsoft 通用打印机驱动程序 (Unidrv) 使用 GDI 管理的图面并提供一些图形 DDI 绘图功能,而 Microsoft PostScript 打印机驱动程序使用设备管理的图面。
有关在图形驱动程序中提供渲染辅助的详细信息,请参阅图面类型和使用图形 DDI。
以下两个图说明了应用程序使用 GDI 创建打印作业时发生的数据流。 EMF 记录和播放在这些图中结合在一起。
第一个图描述了用户模式打印机图形 DLL。
注意 在 Windows Vista 中,打印机图形 DLL 只能在用户模式下执行。 有关详细信息,请参阅选择用户模式或内核模式。
第二个图描述了内核模式打印机图形 DLL。
请注意:在这些图中,如果 GDI 的输出格式是增强式元文件 (EMF),则打印机图形 DLL 在 EMF 打印处理器播放 EMF 记录之前不会接收作业。 另请注意,EMF 打印处理器将输出格式更改为非 EMF。
这些图说明了一个完全本地的环境。 如果打印机连接到服务器,则 EMF 记录通常由客户端的 GDI 渲染引擎 (GRE) 副本生成,然后后台处理到发送到服务器的本地文件。 后台处理程序的服务器副本读取文件,并将记录发送到服务器的 EMF 打印处理器,GRE 的服务器副本调用服务器的打印机图形 DLL。