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 |
|
Bibliothek |
|
DLL |
|
Unicode- und ANSI-Name |
EnumPortsW (Unicode) und EnumPortsA (ANSI) |