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


Функция EngSetPrinterData (winddi.h)

Функция EngSetPrinterData устарела в Windows 2000 и более поздних версиях.

В более ранних версиях Windows EngSetPrinterData задает данные конфигурации для указанного принтера.

Синтаксис

ENGAPI DWORD EngSetPrinterData(
  [in] HANDLE hPrinter,
  [in] LPWSTR pType,
  [in] DWORD  dwType,
  [in] LPBYTE lpbPrinterData,
  [in] DWORD  cjPrinterData
);

Параметры

[in] hPrinter

Дескриптор принтера, для которого должны быть заданы данные конфигурации. Это дескриптор, который передается в качестве параметра hDriverdrvEnablePDEV. См. Примечания.

[in] pType

Указатель на строку, завершающуюся нулевым значением, идентифицирующее заданные данные.

[in] dwType

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

Значение Значение
REG_BINARY Двоичные данные в любой форме.
REG_DWORD 32-разрядное число.
REG_DWORD_BIG_ENDIAN 32-разрядное число в формате big-endian, то есть наиболее значимым байтом слова является байт нижнего порядка.
REG_DWORD_LITTLE_ENDIAN 32-разрядное число в малоиджанском формате (то же, что и REG_DWORD). Это означает, что наиболее значимым байтом слова является байт высокого порядка.
REG_EXPAND_SZ Строка, завершающаяся нулевым значением, которая содержит нерасширенные ссылки на переменные среды (например, "%PATH%"). Это будет строка Юникода или ANSI в зависимости от того, используются ли функции Юникода или ANSI.
REG_LINK Символьная ссылка в Юникоде.
REG_MULTI_SZ Массив заканчивающихся нулем строк, завершаемый двумя символами NULL.
REG_NONE Нет определенного типа значения.
REG_RESOURCE_LIST Список ресурсов драйвера устройства.
REG_SZ Строка с нулевым символом в конце. Это будет строка Юникода или ANSI в зависимости от того, используются ли функции Юникод или ANSI.

[in] lpbPrinterData

Указатель на данные конфигурации принтера, которые необходимо задать. Тип данных, на которые указывает , определяется dwType.

[in] cjPrinterData

Указывает размер lpbPrinterData в байтах.

Возвращаемое значение

EngSetPrinterData возвращает последнее зарегистрированное сообщение об ошибке.

Комментарии

Начиная с Microsoft Windows 2000 эта функция устарела. Дескрипторы, используемые в вызовах функций EngSetPrinterData и DrvEnablePDEV , имеют разные права доступа; поэтому эти функции больше не работают вместе. Параметр hDriver, используемый в вызовах функции DrvEnablePDEV , открывается с правом доступа PRINTER_ACCESS_USE. Напротив, параметр hPrinter, используемый в вызовах функции EngSetPrinterData , должен быть открыт с правом доступа PRINTER_ALL_ACCESS. В результате драйвер принтера в режиме ядра (единственный тип драйвера принтера, который может вызывать EngSetPrinterData) не может использовать EngSetPrinterData для записи сведений о принтере в реестр.

Дополнительные сведения о правах доступа к принтеру см. в разделе структура PRINTER_DEFAULTS (описана в документации по Пакету SDK для Windows).

Требования

   
Минимальная версия клиента Доступно в Windows 2000 и более поздних версиях операционных систем Windows.
Целевая платформа Универсальное
Верхняя часть winddi.h (включая Winddi.h)
Библиотека Win32k.lib
DLL Win32k.sys

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

DrvEnablePDEV

EngGetPrinterData