Funzione EnumPorts

La funzione EnumPorts enumPorts enumera le porte disponibili per la stampa in un server specificato.

Sintassi

BOOL EnumPorts(
  _In_  LPTSTR  pName,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pPorts,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded,
  _Out_ LPDWORD pcReturned
);

Parametri

pName [in]

Puntatore a una stringa con terminazione Null che specifica il nome del server le cui porte della stampante si desidera enumerare.

Se pName è NULL, la funzione enumera le porte della stampante del computer locale.

Livello [in]

Tipo di informazioni restituite nel buffer pPorts . Se Level è 1, pPorts riceve una matrice di strutture PORT_INFO_1 . Se Level è 2, pPorts riceve una matrice di strutture PORT_INFO_2 .

pPorts [out]

Puntatore a un buffer che riceve una matrice di strutture PORT_INFO_1 o PORT_INFO_2 . Ogni struttura contiene dati che descrivono una porta della stampante disponibile. Il buffer deve essere sufficientemente grande da archiviare le stringhe a cui puntano i membri della struttura.

Per determinare le dimensioni del buffer necessarie, chiamare EnumPorts con cbBuf impostato su zero. EnumPorts ha esito negativo, GetLastError restituisce ERROR_INSUFFICIENT_BUFFER e il parametro pcbNeeded restituisce le dimensioni, in byte, del buffer necessario per contenere la matrice di strutture e i relativi dati.

cbBuf [in]

Dimensione, in byte, del buffer a cui punta pPorts.

pcbNeeded [out]

Puntatore a una variabile che riceve il numero di byte copiati nel buffer pPorts . Se il buffer è troppo piccolo, la funzione ha esito negativo e la variabile riceve il numero di byte necessari.

pcReturned [out]

Puntatore a una variabile che riceve il numero di strutture PORT_INFO_1 o PORT_INFO_2restituite nel buffer pPorts . Si tratta del numero di porte della stampante disponibili nel server specificato.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è un valore diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero.

Commenti

Nota

Si tratta di una funzione di blocco o sincrona e potrebbe non restituire immediatamente. La velocità di restituzione di questa funzione dipende da fattori di runtime come lo stato della rete, la configurazione del server di stampa e i fattori di implementazione del driver della stampante difficili da prevedere durante la scrittura di un'applicazione. Chiamando questa funzione da un thread che gestisce l'interazione con l'interfaccia utente, l'applicazione potrebbe sembrare non rispondente.

La funzione EnumPorts può avere esito positivo anche se il server specificato da pName non dispone di una stampante definita.

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Winspool.h (include Windows.h)
Libreria
Winspool.lib
DLL
Winspool.drv
Nomi Unicode e ANSI
EnumPortsW (Unicode) e EnumPortsA (ANSI)

Vedi anche

Stampa

Funzioni dell'API spooler di stampa

AddPort

DeletePort

PORT_INFO_1

PORT_INFO_2