由打印提供程序定义的函数
警告
从Windows 10开始,支持第三方打印提供程序的 API 已弃用。 Microsoft 不建议对第三方打印提供商进行任何投资。 此外,在提供 v4 打印驱动程序模型的Windows 8和较新的产品上,第三方打印提供程序不得创建或管理使用 v4 打印驱动程序的队列。
本主题列出了打印提供程序可以提供的所有函数。 Microsoft Windows SDK文档中介绍了其中大多数函数。 如果在 Windows 驱动程序工具包 (WDK) 中描述了函数,则函数名称将提供指向关联引用页的链接。
所有打印提供程序都必须为所有列出的函数提供指针。 但是,大多数供应商提供的打印提供程序都是“部分提供程序”,不需要支持函数定义的许多操作。 因此,许多函数指针可以为 NULL。 有关部分打印提供程序的详细信息,请参阅 编写网络打印提供程序。
在以下函数列表中,必须支持的函数标记为“必需”。
所有打印提供程序都必须导出初始化函数 InitializePrintProvidor。 指向所有其他函数的指针必须在 PRINTPROVIDOR 结构中提供。 (请注意,这两个名称拼写错误,但与头文件 Winsplp.h.)
函数分为多个组,并显示在以下部分中:
初始化函数
打印队列管理功能
打印机驱动程序管理功能
打印作业创建函数
打印作业计划函数
表单管理功能
打印处理器管理功能
打印监视器管理功能
端口管理功能
注册表管理功能
其他函数
初始化函数
函数 | 说明 |
---|---|
InitializePrintProvidor (必需) | 初始化打印提供程序并返回指向提供的函数的指针。 |
打印队列管理功能
函数 | 说明 |
---|---|
AddPrinter | 将打印队列添加到由打印提供程序管理的列表,并将打印处理器与打印队列相关联。 |
AddPrinterConnection | 创建与指定打印队列的连接。 |
ClosePrinter (必需) | 禁用调用方对指定打印队列的访问。 |
DeletePrinter | 从打印提供程序管理的打印队列列表中删除打印队列。 |
DeletePrinterConnection | 删除与指定打印队列的连接。 |
EnumPrinters (必需) | 枚举当前由打印提供程序管理的打印队列的列表。 |
FindClosePrinterChangeNotification | 禁用 由 FindFirstPrinterChangeNotification 启用的打印机更改通知。 |
FindFirstPrinterChangeNotification | 返回等待对象的句柄,调用方可以使用该句柄来等待指定的打印机事件。 |
GetPrinter (必需) | 返回指定打印队列的当前参数值。 |
OpenPrinter (必需) | 允许调用方访问指定的打印队列。 |
RefreshPrinterChangeNotification | 如果客户端使用设置了 PRINTER_NOTIFY_OPTIONS_REFRESH 标志调用 FindNextPrinterChangeNotification ,则由路由器调用。 |
ResetPrinter | 修改打印队列的数据类型或 DEVMODEW 结构。 |
SetPrinter (必需) | 设置指定打印队列的参数。 |
WaitForPrinterChange | 已过时。 |
打印机驱动程序管理功能
函数 | 说明 |
---|---|
AddPrinterDriver | 将指定打印机的驱动程序文件添加到指定的服务器。 |
AddPrinterDriverEx | 与 AddPrinterDriver 相同,具有其他参数。 |
DeletePrinterDriver | 删除对指定服务器上指定打印机驱动程序文件的访问权限。 |
DeletePrinterDriverEx | 与 DeletePrinterDriver 相同,具有其他参数。 |
EnumPrinterDrivers | 返回已通过调用 AddPrinterDriver 或 AddPrinterDriverEx 添加到指定服务器的打印机驱动程序的列表。 |
GetPrinterDriver | 返回有关打印机驱动程序的信息,调用方随后可以将其传递给 AddPrinterDriver。 (通常从 INF 文件获取返回的信息。) |
[GetPrinterDriverEx | 与 GetPrinterDriver 相同,具有其他参数。 |
GetPrinterDriverDirectory | 返回服务器的打印机驱动程序目录的名称。 |
打印作业创建函数
函数 | 说明 |
---|---|
AbortPrinter (必需) | 尝试从指定的打印队列中删除当前作业。 |
AddJob (必需) | 返回作业标识符和后台打印文件路径。 调用方使用 CreateFile 和 WriteFile 将数据发送到后台处理程序文件。 |
EndDocPrinter (必需) | 执行作业完成操作。 |
EndPagePrinter | 执行页面完成操作。 |
ReadPrinter | 从双向打印机获取状态信息。 |
ScheduleJob (必需) | 通知提供程序可以计划指定的作业。 作业由 之前由 AddJob 返回的作业标识符指定。 |
StartDocPrinter (必需) | 准备打印提供程序以开始后台打印作业。 |
StartPagePrinter | 准备打印提供程序以接收打印作业页。 |
WritePrinter (必需) | 接收打印作业数据流的一部分。 |
注意
AddJob...ScheduleJob 序列是 StartDocPrinter 的替代方法...EndDocPrinter 序列。
打印作业计划函数
函数 | 说明 |
---|---|
EnumJobs (必需) | 返回计划打印作业的列表。 |
GetJob (必需) | 返回作业参数。 |
SetJob (必需) | 取消、暂停、恢复或重启打印作业,或设置作业参数。 |
表单管理功能
函数 | 说明 |
---|---|
AddForm | 将指定窗体添加到可用于指定打印机的窗体列表中。 |
DeleteForm | 从可用于指定打印机的表单列表中删除指定窗体。 |
EnumForms | 返回可用于指定打印机的窗体列表。 |
GetForm | 返回指定窗体的特征。 |
SetForm | 修改指定窗体的特征。 |
打印处理器管理功能
函数 | 说明 |
---|---|
AddPrintProcessor | 在指定的服务器上安装打印处理器,并将其添加到打印提供程序可以调用的打印处理器列表中。 |
DeletePrintProcessor | 从打印提供程序可以调用的打印处理器列表中删除打印处理器。 |
EnumPrintProcessorDataTypes | 返回打印提供程序可调用的打印处理器支持的数据类型的列表。 |
EnumPrintProcessors | 返回打印提供程序可以调用的打印处理器列表。 |
GetPrintProcessorDirectory | 返回必须存储打印处理器文件的目录路径。 |
打印监视器管理功能
函数 | 说明 |
---|---|
AddMonitor | 将打印监视器添加到打印提供程序可以调用的那些列表。 |
DeleteMonitor | 从打印提供程序可以调用的打印监视器列表中删除打印监视器。 |
EnumMonitors | 返回打印提供程序可以调用的打印监视器的列表。 |
端口管理功能
函数 | 说明 |
---|---|
AddPort | 将打印机端口添加到可用端口列表中,通常通过调用指定端口监视器的 AddPortUI 函数。 |
AddPortEx (/previous-versions/ff545025 (v%3dvs.85) ) | 与 AddPort 相同,具有其他参数。 |
ConfigurePort (必需) | 配置打印机端口,通常通过调用指定端口监视器的 ConfigurePortUI 函数。 |
DeletePort (必需) | 从可用端口列表中删除打印机端口,通常通过调用指定端口监视器的 DeletePortUI 函数。 |
EnumPorts (必需) | 返回可用打印机端口的列表。 |
SetPort | 设置指定打印机端口的参数。 |
注册表管理功能
函数 | 说明 |
---|---|
DeletePrinterData | 删除当前在指定打印机的 PrinterDriverData 键下分配给指定值名称的值。 |
DeletePrinterDataEx | 与 DeletePrinterData 相同,具有其他参数。 |
DeletePrinterKey | 如果指定项及其子项当前存储在注册表中的指定打印机 的 PrinterDriverData 密钥下,则删除这些项。 |
EnumPrinterData | 返回存储在注册表中指定打印机的 PrinterDriverData 键下的每个值名称和当前分配的值。 |
EnumPrinterDataEx | 与 EnumPrinterData 相同,具有其他参数。 |
EnumPrinterKey | 返回当前包含在注册表中的指定项名称下的子项列表。 |
GetPrinterData | 返回当前分配给指定值名称的值,该值存储在注册表中的指定打印机的 PrinterDriverData 键下。 |
GetPrinterDataEx | 与 GetPrinterData 相同,具有其他参数。 |
SetPrinterData | 将指定的值名称和值存储在注册表中的指定打印机 的 PrinterDriverData 键下。 |
SetPrinterDataEx | 与 SetPrinterData 相同,具有其他参数。 |
其他函数
函数 | 说明 |
---|---|
XcvData | 提供端口监视器 UI DLL 和端口监视器服务器 DLL 之间的通信路径。 |