Función EnumPorts
La función EnumPorts enumera los puertos que están disponibles para imprimir en un servidor especificado.
Sintaxis
BOOL EnumPorts(
_In_ LPTSTR pName,
_In_ DWORD Level,
_Out_ LPBYTE pPorts,
_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 cuyos puertos de impresora desea enumerar.
Si pName es NULL, la función enumera los puertos de impresora del equipo local.
-
Nivel [in]
-
Tipo de información devuelta en el búfer de pPorts . Si Level es 1, pPorts recibe una matriz de estructuras de PORT_INFO_1 . Si Level es 2, pPorts recibe una matriz de estructuras de PORT_INFO_2 .
-
pPorts [out]
-
Puntero a un búfer que recibe una matriz de estructuras PORT_INFO_1 o PORT_INFO_2 . Cada estructura contiene datos que describen un puerto de impresora disponible. El búfer debe ser lo suficientemente grande como para almacenar las cadenas a las que apuntan los miembros de la estructura.
Para determinar el tamaño de búfer necesario, llame a EnumPorts con cbBuf establecido en cero. Se produce un error en EnumPorts, 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 pPorts.
-
pcbNeededed [out]
-
Puntero a una variable que recibe el número de bytes copiados en el búfer pPorts . 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 de PORT_INFO_1 o PORT_INFO_2 devueltas en el búfer de pPorts . Este es el número de puertos de impresora que están disponibles en el servidor 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 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.
La función EnumPorts puede realizarse correctamente incluso si el servidor especificado por pName no tiene definida una 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 |
|
Biblioteca |
|
Archivo DLL |
|
Nombres Unicode y ANSI |
EnumPortsW (Unicode) y EnumPortsA (ANSI) |