Compartir a través de


Función EnumPrinterDrivers

La función EnumPrinterDrivers enumera los controladores de impresora instalados en un servidor de impresora especificado.

Sintaxis

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

Parámetros

pName [in]

Puntero a una cadena terminada en null que especifica el nombre del servidor en el que se enumeran los controladores de impresora.

Si pName es NULL, la función enumera los controladores de impresora locales.

pEnvironment [in]

Puntero a una cadena terminada en null que especifica el entorno (por ejemplo, Windows x86, Windows IA64, Windows x64 o Windows NT R4000). Si este parámetro es NULL, la función usa el entorno actual del autor de la llamada o cliente (no del destino o servidor).

Si la cadena pEnvironment especifica "all", EnumPrinterDrivers enumera los controladores de impresora para todas las plataformas instaladas en el servidor especificado.

Nivel [in]

Tipo de estructura de información devuelta en el búfer pDriverInfo . Puede ser uno de los siguientes.

Valor Significado
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]

Puntero a un búfer que recibe una matriz de estructuras de DRIVER_INFO_*, según lo especificado por Level. Cada estructura contiene datos que describen un controlador de impresora disponible. El búfer debe ser lo suficientemente grande como para recibir la matriz de estructuras y cualquier cadena u otros datos a los que apunten los miembros de la estructura.

Para determinar el tamaño de búfer necesario, llame a EnumPrinterDrivers con cbBuf establecido en cero. Se produce un error en EnumPrinterDrivers, GetLastError devuelve ERROR_INSUFFICIENT_BUFFER y el parámetro pcbNeeded devuelve el tamaño, en bytes, del búfer necesario para contener la matriz de estructuras y sus datos.

cbBuf [in]

Tamaño, en bytes, del búfer al que apunta pDriverInfo

pcbNeeded [ out]

Puntero a una variable que recibe el número de bytes copiados en el búfer pDriverInfo si la función se realiza correctamente. Si el búfer es demasiado pequeño, se produce un error en la función y la variable recibe el número de bytes necesarios.

pcReturned [out]

Puntero a una variable que recibe el número de estructuras devueltas en el búfer pDriverInfo . Este es el número de controladores de impresora instalados en el servidor de impresión especificado.

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 que 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 del controlador 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.

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
EnumPrinterDriversW (Unicode) y EnumPrinterDriversA (ANSI)

Consulte también

Impresión

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

AddPrinterDriver

DRIVER_INFO_1

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_5

DRIVER_INFO_6

GetPrinterDriver