Поделиться через


Функция 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" указывает операционную систему на основе NT, работающей на процессоре Intel. Если pEnvironment имеет значение NULL, используется текущая среда вызывающего драйвера и клиентского компьютера.

[in] dwLevel

Указывает версию структуры, на которую указывает lpbDrvInfo . Этот параметр должен иметь одно из следующих значений:

Значение Значение
1 GDI записывает в буфер структуру DRIVER_INFO_1, на которую указывает lpbDrvInfo .
2 GDI записывает в буфер структуру DRIVER_INFO_2, на которую указывает lpbDrvInfo .
3 GDI записывает в буфер структуру DRIVER_INFO_3, на которую указывает lpbDrvInfo .

[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)
Библиотека Win32k.lib
DLL Win32k.sys

См. также раздел

EngLoadModule