Compartir a través de


Función DeletePrinterDriverEx

La función DeletePrinterDriverEx quita el nombre del controlador de impresora especificado de la lista de nombres de controladores admitidos en un servidor y elimina los archivos asociados al controlador. Esta función también puede eliminar versiones específicas del controlador.

Sintaxis

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

Parámetros

pName [in]

Puntero a una cadena terminada en null que especifica el nombre del servidor desde el que se va a eliminar el controlador. Si este parámetro es NULL, la función elimina el controlador de impresora del equipo local.

pEnvironment [in]

Puntero a una cadena terminada en null que especifica el entorno desde el que se va a eliminar el controlador (por ejemplo, Windows NT x86, Windows IA64 o Windows x64). Si este parámetro es NULL, el nombre del controlador se elimina del entorno actual de la aplicación que realiza la llamada y el equipo cliente (no de la aplicación de destino ni del servidor de impresión).

pDriverName [in]

Puntero a una cadena terminada en null que especifica el nombre del controlador que se va a eliminar.

dwDeleteFlag [in]

Las opciones para eliminar archivos y versiones del controlador. Este parámetro puede ser uno o más de los siguientes valores.

Value Significado
DPD_DELETE_SPECIFIC_VERSION
Elimina la versión especificada en dwVersionFlag. Esto no garantiza que el controlador se quite de la lista de controladores admitidos para el servidor.
DPD_DELETE_UNUSED_FILES
Quita los archivos de controladores sin usar.
DPD_DELETE_ALL_FILES
Elimina el controlador solo si se pueden quitar todos sus archivos asociados. Se produce un error en la operación de eliminación si algún otro controlador instalado está usando alguno de los archivos del controlador.

Si no se especifica DPD_DELETE_SPECIFIC_VERSION, la función elimina todas las versiones del controlador si ninguna de ellas está en uso. Si no se especifica ni DPD_DELETE_UNUSED_FILES ni DPD_DELETE_ALL_FILES, la función no elimina los archivos de controlador.

dwVersionFlag [in]

Versión del controlador que se va a eliminar. Este parámetro puede ser 0, 1, 2 o 3. Este parámetro solo se usa si dwDeleteFlag incluye la marca DPD_DELETE_SPECIFIC_VERSION.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un valor distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero.

Comentarios

Nota:

Se trata de una función de bloqueo o sincrónica y podría no devolverse inmediatamente. La rapidez con la que devuelve esta función depende de factores en tiempo de ejecución, como el estado de red, la configuración del servidor de impresión y los factores de implementación de controladores de impresora que son difíciles de predecir al escribir una aplicación. Llamar a esta función desde un subproceso que administra la interacción con la interfaz de usuario podría hacer que la aplicación parezca que no responde.

Antes de que la función elimine los archivos de controlador, llama a la función DrvDriverEvent del controlador, lo que permite al controlador quitar los archivos privados que no se usan. Para obtener más información sobre DrvDriverEvent, consulte el Kit de desarrollo de controladores de Microsoft Windows (DDK).

Si los archivos del controlador están cargados actualmente, la función los mueve a un directorio temporal y los marca para su eliminación al reiniciar.

Antes de llamar a DeletePrinterDriverEx, debe eliminar todos los objetos de impresora que usen el controlador de impresora.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Winspool.h (incluye Windows.h)
Biblioteca
Winspool.lib
Archivo DLL
Winspool.drv
Nombres Unicode y ANSI
DeletePrinterDriverExW (Unicode) y DeletePrinterDriverExA (ANSI)

Consulte también

Impresión

Funciones de la API del administrador de trabajos de impresión

AddPrinterDriverEx