EngGetPrinterDriver 函数 (winddi.h)

EngGetPrinterDriver 函数检索指定打印机的驱动程序数据。

语法

ENGAPI BOOL EngGetPrinterDriver(
  [in]            HANDLE hPrinter,
  [in, optional]  LPWSTR pEnvironment,
  [in]            DWORD  dwLevel,
  [out, optional] BYTE   *lpbDrvInfo,
  [in]            DWORD  cbBuf,
  [out]           DWORD  *pcbNeeded
);

参数

[in] hPrinter

应为其检索驱动程序数据的打印机的句柄。

[in, optional] pEnvironment

指向以 null 结尾的字符串的指针,该字符串指定环境。 例如,“Windows NT x86”指定在 Intel 处理器上运行的基于 NT 的操作系统。 如果 pEnvironmentNULL,则使用调用驱动程序和客户端计算机的当前环境。

[in] dwLevel

指定 lpbDrvInfo 指向的结构的版本。 此参数必须是以下值之一:

含义
1 GDI 在 lpbDrvInfo 指向的缓冲区中写入DRIVER_INFO_1结构。
2 GDI 在 lpbDrvInfo 指向的缓冲区中写入DRIVER_INFO_2结构。
3 GDI 在 lpbDrvInfo 指向的缓冲区中写入DRIVER_INFO_3结构。

[out, optional] lpbDrvInfo

指向 GDI 在其中放置所请求的 DRIVER_INFO_X 结构的缓冲区的指针。

[in] cbBuf

指定 lpbDrvInfo 指向的缓冲区的大小(以字节为单位)。

[out] pcbNeeded

指向内存位置的指针,其中 GDI 将复制到 lpbDrvInfo 指向的缓冲区中的字节数(如果 cbBuf 太小)放置到该位置。

返回值

成功后,EngGetPrinterDriver 返回 TRUE ;否则,它将报告错误并返回 FALSE

注解

打印机驱动程序 DLL 可以处理多个数据文件,以支持不同的打印机型号。 打印机驱动程序调用 EngGetPrinterDriver 来确定要使用的数据文件。 例如,Unidrv 呈现器调用此函数来确定 GPD 文件的名称,postscript 驱动程序调用此函数来确定 PPD 文件的名称。 DRIVER_INFO_2和DRIVER_INFO_3结构包含指定数据文件位置的完整路径和文件名。 然后,打印机驱动程序可以使用返回的路径和文件名加载数据文件,方法是使用路径和文件名作为单个参数调用 EngLoadModule

DRIVER_INFO_X 结构在 Microsoft Windows SDK 文档中介绍。

要求

要求
最低受支持的客户端 在 Windows 2000 及更高版本的 Windows 操作系统中可用。
目标平台 通用
标头 winddi.h (包括 Winddi.h)
Library Win32k.lib
DLL Win32k.sys

另请参阅

EngLoadModule