Функция EnumPrinterDrivers

Функция EnumPrinterDrivers перечисляет драйверы принтеров, установленные на указанном сервере принтера.

Синтаксис

BOOL EnumPrinterDrivers(
  _In_  LPTSTR  pName,
  _In_  LPTSTR  pEnvironment,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pDriverInfo,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded,
  _Out_ LPDWORD pcReturned
);

Параметры

pName [in]

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

Если pName имеет значение NULL, функция перечисляет локальные драйверы принтера.

pEnvironment [in]

Указатель на строку, завершающуюся null, которая указывает среду (например, Windows x86, Windows IA64, Windows x64 или Windows NT R4000). Если этот параметр имеет значение NULL, функция использует текущую среду вызывающего объекта или клиента (а не назначения или сервера).

Если строка pEnvironment указывает "all", EnumPrinterDrivers перечисляет драйверы принтеров для всех платформ, установленных на указанном сервере.

Level [in]

Тип структуры информации, возвращаемой в буфере pDriverInfo . Это может быть один из следующих вариантов.

Значение Значение
1
DRIVER_INFO_1
2
DRIVER_INFO_2
3
DRIVER_INFO_3
4
DRIVER_INFO_4
5
DRIVER_INFO_5
6
DRIVER_INFO_6
8
DRIVER_INFO_8

pDriverInfo [out]

Указатель на буфер, получающий массив структур DRIVER_INFO_*, как указано в параметре Level. Каждая структура содержит данные, описывающие доступный драйвер принтера. Буфер должен быть достаточно большим для получения массива структур и любых строк или других данных, на которые указывают элементы структуры.

Чтобы определить требуемый размер буфера, вызовите EnumPrinterDrivers с параметром cbBuf , равным нулю. EnumPrinterDrivers завершается сбоем, GetLastError возвращает ERROR_INSUFFICIENT_BUFFER, а параметр pcbNeeded возвращает размер буфера в байтах, необходимого для хранения массива структур и их данных.

cbBuf [in]

Размер (в байтах) буфера, на который указывает pDriverInfo

pcbNeeded [ out]

Указатель на переменную, которая получает количество байтов, скопированных в буфер pDriverInfo при успешном выполнении функции. Если буфер слишком мал, функция завершается сбоем, и переменная получает необходимое количество байтов.

pcReturned [out]

Указатель на переменную, которая получает количество структур, возвращаемых в буфере pDriverInfo . Это число драйверов принтеров, установленных на указанном сервере печати.

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

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

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

Комментарии

Примечание

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

Требования

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

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

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

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

AddPrinterDriver

DRIVER_INFO_1

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_5

DRIVER_INFO_6

GetPrinterDriver