EnumPrinterDrivers-Funktion

Die Funktion EnumPrinterDrivers listet die Druckertreiber auf, die auf einem angegebenen Druckerserver installiert sind.

Syntax

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

Parameter

pName [in]

Ein Zeiger auf eine NULL-Zeichenfolge, die den Namen des Servers angibt, auf dem die Druckertreiber aufgelistet werden.

Wenn pNameNULL ist, listet die Funktion die lokalen Druckertreiber auf.

pEnvironment [in]

Ein Zeiger auf eine NULL-Zeichenfolge, die die Umgebung angibt (z. B. Windows x86, Windows IA64, Windows x64 oder Windows NT R4000). Wenn dieser Parameter NULL ist, verwendet die Funktion die aktuelle Umgebung des Aufrufers/Clients (nicht des Ziels/Servers).

Wenn die pEnvironment-Zeichenfolge "all" angibt, listet EnumPrinterDrivers Druckertreiber für alle Plattformen auf, die auf dem angegebenen Server installiert sind.

Ebene [in]

Der Typ der im pDriverInfo-Puffer zurückgegebenen Informationsstruktur. Dies kann eine der folgenden Sein.

Wert Bedeutung
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]

Ein Zeiger auf einen Puffer, der ein Array von DRIVER_INFO_*-Strukturen empfängt, wie von Level angegeben. Jede Struktur enthält Daten, die einen verfügbaren Druckertreiber beschreiben. Der Puffer muss groß genug sein, um das Array von Strukturen und allen Zeichenfolgen oder anderen Daten zu empfangen, auf die die Strukturmember zeigen.

Um die erforderliche Puffergröße zu ermitteln, rufen Sie EnumPrinterDrivers auf, wobei cbBuf auf Null festgelegt ist. EnumPrinterDrivers schlägt fehl, GetLastError gibt ERROR_INSUFFICIENT_BUFFER zurück, und der pcbNeed-Parameter gibt die Größe des Puffers zurück, der für das Array der Strukturen und deren Daten erforderlich ist.

cbBuf [in]

Die Größe des Puffers in Bytes, auf den pDriverInfo verweist

pcbNeeded [ out]

Ein Zeiger auf eine Variable, die die Anzahl der Bytes empfängt, die in den pDriverInfo-Puffer kopiert wurden, wenn die Funktion erfolgreich ist. 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 im pDriverInfo-Puffer zurückgegebenen Strukturen empfängt. Dies ist die Anzahl der auf dem angegebenen Druckserver installierten Druckertreiber.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Nichtzero-Wert.

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

Bemerkungen

Hinweis

Dies ist eine blockierende oder synchrone Funktion und wird möglicherweise nicht sofort zurückgegeben. 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. Wenn Sie diese Funktion über einen Thread aufrufen, der die Interaktion mit der Benutzeroberfläche verwaltet, kann die Anwendung nicht reagieren.

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ßlich Windows.h)
Bibliothek
Winspool.lib
DLL
Winspool.drv
Unicode- und ANSI-Name
EnumPrinterDriversW (Unicode) und EnumPrinterDriversA (ANSI)

Siehe auch

Drucken

Druckspooler-API-Funktionen

AddPrinterDriver

DRIVER_INFO_1

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_5

DRIVER_INFO_6

GetPrinterDriver