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 的操作系统。 如果 pEnvironment 为 NULL,则使用调用驱动程序和客户端计算机的当前环境。
[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 |