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


Функция DeletePrinterDriverEx

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

Синтаксис

BOOL DeletePrinterDriverEx(
  _In_ LPTSTR pName,
  _In_ LPTSTR pEnvironment,
  _In_ LPTSTR pDriverName,
  _In_ DWORD  dwDeleteFlag,
  _In_ DWORD  dwVersionFlag
);

Параметры

pName [in]

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

pEnvironment [in]

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

pDriverName [in]

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

dwDeleteFlag [in]

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

Значение Значение
DPD_DELETE_SPECIFIC_VERSION
Удаляет версию, указанную в dwVersionFlag. Это не гарантирует, что драйвер будет удален из списка поддерживаемых драйверов для сервера.
DPD_DELETE_UNUSED_FILES
Удаляет все неиспользуемые файлы драйверов.
DPD_DELETE_ALL_FILES
Удаляет драйвер, только если можно удалить все связанные с ним файлы. Операция удаления завершается сбоем, если какой-либо из файлов драйвера используется другим установленным драйвером.

Если DPD_DELETE_SPECIFIC_VERSION не указан, функция удаляет все версии драйвера, если ни одна из них не используется. Если ни DPD_DELETE_UNUSED_FILES, ни DPD_DELETE_ALL_FILES не указаны, функция не удаляет файлы драйверов.

dwVersionFlag [in]

Версия удаляемого драйвера. Этот параметр может иметь значение 0, 1, 2 или 3. Этот параметр используется, только если dwDeleteFlag содержит флаг DPD_DELETE_SPECIFIC_VERSION.

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

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

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

Комментарии

Примечание

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

Прежде чем функция удаляет файлы драйверов, она вызывает функцию DrvDriverEvent драйвера, позволяя драйверу удалить все личные файлы, которые не используются. Дополнительные сведения о DrvDriverEvent см. в разделе Microsoft Windows Driver Development Kit (DDK).

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

Перед вызовом DeletePrinterDriverEx необходимо удалить все объекты принтера, использующие драйвер принтера.

Требования

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

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

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

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

AddPrinterDriverEx