DeletePrinterDriverEx 函数

DeletePrinterDriverEx 函数从服务器上受支持驱动程序的名称列表中删除指定的打印机驱动程序名称,并删除与驱动程序关联的文件。 此函数还可以删除特定版本的驱动程序。

语法

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

parameters

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 驱动程序开发工具包 (DDK) 。

如果驱动程序文件当前已加载,则函数会将其移动到临时目录,并将它们标记为在重启时删除。

在调用 DeletePrinterDriverEx 之前,必须删除使用打印机驱动程序的所有打印机对象。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Winspool.h (包括 Windows.h)

Winspool.lib
DLL
Winspool.drv
Unicode 和 ANSI 名称
DeletePrinterDriverExW (Unicode) 和 DeletePrinterDriverExA (ANSI)

另请参阅

打印

打印后台处理程序 API 函数

AddPrinterDriverEx