Freigeben über


EnumPorts-Funktion

Die EnumPorts-Funktion listet die Ports auf, die für das Drucken auf einem angegebenen Server verfügbar sind.

Syntax

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

Parameter

pName [in]

Ein Zeiger auf eine NULL-endende Zeichenfolge, die den Namen des Servers angibt, dessen Druckerports Sie aufzählen möchten.

Wenn pNameNULL ist, listet die Funktion die Druckeranschlüsse des lokalen Computers auf.

Ebene [in]

Der Typ der im pPorts-Puffer zurückgegebenen Informationen. Wenn Level 1 ist, empfängt pPorts ein Array von PORT_INFO_1 Strukturen. Wenn Level 2 ist, empfängt pPorts ein Array von PORT_INFO_2 Strukturen.

pPorts [out]

Ein Zeiger auf einen Puffer, der ein Array von PORT_INFO_1 - oder PORT_INFO_2-Strukturen empfängt. Jede Struktur enthält Daten, die einen verfügbaren Druckeranschluss beschreiben. Der Puffer muss groß genug sein, um die Zeichenfolgen zu speichern, auf die die Strukturmember verweisen.

Um die erforderliche Puffergröße zu bestimmen, rufen Sie EnumPorts auf, wobei cbBuf auf 0 festgelegt ist. EnumPorts schlägt fehl, GetLastError gibt ERROR_INSUFFICIENT_BUFFER zurück, und der pcbNeeded-Parameter gibt die Größe des Puffers in Bytes zurück, der zum Aufnehmen des Arrays von Strukturen und deren Daten erforderlich ist.

cbBuf [in]

Die Größe des Puffers in Bytes, auf den pPorts verweisen.

pcbNeeded [ out]

Ein Zeiger auf eine Variable, die die Anzahl der Bytes empfängt, die in den pPorts-Puffer kopiert wurden. Wenn der Puffer zu klein ist, schlägt die Funktion fehl, und die Variable empfängt die erforderliche Anzahl von Bytes.

pcReturned [out]

Ein Zeiger auf eine Variable, die die Anzahl der PORT_INFO_1 oder PORT_INFO_2 Strukturen empfängt, die im pPorts-Puffer zurückgegeben werden. Dies ist die Anzahl der Druckeranschlüsse, die auf dem angegebenen Server verfügbar sind.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Wert ungleich null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.

Bemerkungen

Hinweis

Dies ist eine blockierende oder synchrone Funktion, die möglicherweise nicht sofort zurückgegeben wird. Wie schnell diese Funktion zurückgibt, hängt von Laufzeitfaktoren wie Netzwerk-status, Druckserverkonfiguration und Druckertreiberimplementierungsfaktoren ab, die beim Schreiben einer Anwendung schwer vorherzusagen sind. Das Aufrufen dieser Funktion aus einem Thread, der die Interaktion mit der Benutzeroberfläche verwaltet, könnte dazu führen, dass die Anwendung nicht mehr reagiert.

Die EnumPorts-Funktion kann auch dann erfolgreich ausgeführt werden, wenn auf dem von pName angegebenen Server kein Drucker definiert ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Winspool.h (Einschließen von Windows.h)
Bibliothek
Winspool.lib
DLL
Winspool.drv
Unicode- und ANSI-Name
EnumPortsW (Unicode) und EnumPortsA (ANSI)

Siehe auch

Drucken

Druckspooler-API-Funktionen

AddPort

DeletePort

PORT_INFO_1

PORT_INFO_2