打印机图形 DLL 定义的函数

重要

新式打印平台是 Windows 与打印机通信的首选方式。 建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) 来自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。

有关详细信息,请参阅新式打印平台打印支持应用设计指南

与所有图形驱动程序一样,打印机图形 DLL 负责定义以下图形 DDI 函数。 在初始驱动程序入口 DrvEnableDriver 之后,其余函数按字母顺序排列。 请注意,由于 GDI 会通过名称调用 DrvEnableDriver,因此其名称将以粗体显示。 GDI 通过 DrvEnableDriver 返回的函数指针数组来调用所有其他显示驱动程序函数。

函数名称 说明
DrvEnableDriver 允许驱动程序自行进行初始化,并返回指向受支持的图形 DDI 函数的指针。
DrvCompletePDEV 为驱动程序提供设备实例的 GDI 句柄。
DrvDisableDriver (可选)允许驱动程序在卸载前执行清理操作。
DrvDisablePDEV 允许驱动程序删除特定于设备实例的信息。
DrvDisableSurface 允许驱动程序删除绘图图面。
DrvEnablePDEV 允许驱动程序向 GDI 提供物理设备特性,并初始化特定于设备实例的信息。
DrvEnableSurface 允许驱动程序创建绘图图面。
DrvQueryDeviceSupport (可选)返回所请求的设备特定信息。
DrvQueryDriverInfo (可选)返回所请求的驱动程序特定信息。

打印机图形 DLL 还负责定义以下特定于打印的图形 DDI 函数,这些函数会在打印作业呈现过程中的某些时刻被调用。

函数 在调用时
DrvEndDoc 当 GDI 完成向驱动程序发送文档以进行呈现时。
DrvNextBand (可选)当 GDI 完成为物理页面绘制带时,驱动程序可以将该带发送到打印机。
DrvQueryPerBandInfo (可选)在 GDI 开始为物理页面绘制带之前,以便驱动程序向 GDI 提供特定于带的信息。
DrvSendPage 当 GDI 完成绘制物理页面后,驱动程序就可以将页面发送到打印机。
DrvStartBanding (可选)当 GDI 准备好开始向驱动程序发送物理页面的带以进行呈现时。
DrvStartDoc 当 GDI 准备好开始向驱动程序发送文档进行呈现时。
DrvStartPage 当 GDI 准备好开始向驱动程序发送文档页面进行呈现时。

通常,打印机图形 DLL 还定义了完成打印作业呈现所需的其他图形 DDI 函数。 所定义函数的数量和类型取决于:

  • 驱动程序是否支持使用 GDI 管理或设备管理的绘图图面(或两者)。 有关详细信息,请参阅图面类型

  • 绘制操作可由 GDI 处理而不是由驱动程序本身执行的程度。 有关详细信息,请参阅使用图形 DDI

GDI 的内核模式图形呈现引擎 (GRE) 会调用打印机图形 DLL 定义的所有函数。

DrvEnableDriverDrvQueryDriverInfo 函数由图形 DLL 导出。 所有其他支持的图形 DDI 函数的地址都放在 DrvEnableDriver 函数返回的表中。