Функция AddPrinterDriver

Функция AddPrinterDriver устанавливает локальный или удаленный драйвер принтера и связывает файлы конфигурации, данных и драйверов.

Для повышения гибкости при установке или обновлении драйверов принтера используйте функцию AddPrinterDriverEx , так как она позволяет выполнять строгое обновление, строгую пониженную версию, копирование только новых файлов и копирование всех файлов (независимо от меток времени файла).

Примечание

Установка драйвера принтера без пакета драйверов больше не рекомендуется. Вместо этого используйте InstallPrinterDriverFromPackage .

Синтаксис

BOOL AddPrinterDriver(
  _In_ LPTSTR pName,
  _In_ DWORD  Level,
  _In_ LPBYTE pDriverInfo
);

Параметры

pName [in]

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

Если pName имеет значение NULL, драйвер будет установлен локально.

Level [in]

Версия структуры, на которую указывает pDriverInfo .

Это значение может быть равно 2, 3, 4, 6 или 8.

pDriverInfo [in]

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

Значение Структура диска принтера
2 DRIVER_INFO_2
3 DRIVER_INFO_3
4 DRIVER_INFO_4
6 DRIVER_INFO_6
8 DRIVER_INFO_8

Если элемент pEnvironment структуры, на который указывает pDriverInfo , имеет значение NULL, используется текущая среда вызывающего объекта или клиента (не назначения или сервера).

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

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

Если функция выполняется неудачно, возвращается нулевое значение.

Комментарии

Примечание

Это блокирующая или синхронная функция, возвращаемая не сразу. Скорость возврата этой функции зависит от факторов времени выполнения, таких как состояние сети, конфигурация сервера печати и факторы реализации драйвера принтера, которые трудно предсказать при написании приложения. Вызов этой функции из потока, который управляет взаимодействием с пользовательским интерфейсом, может привести к тому, что приложение не отвечает.

Вызывающий объект должен иметь SeLoadDriverPrivilege.

Прежде чем приложение вызовет функцию AddPrinterDriver , все файлы, необходимые драйверу, должны быть скопированы в каталог драйвера принтера системы. Приложение может получить имя этого каталога, вызвав функцию GetPrinterDriverDirectory .

Приложение может определить, какие драйверы принтера установлены в данный момент, вызвав функцию EnumPrinterDrivers .

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Winspool.h (включая Windows.h)
Библиотека
Winspool.lib
DLL
Winspool.drv
Имя в кодировке Юникод и ANSI
AddPrinterDriverW (Юникод) и AddPrinterDriverA (ANSI)

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

Вывод на печать

Функции API очереди печати принтера

AddPrinterDriverEx

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_6

EnumPrinterDrivers

GetPrinterDriverDirectory