GetPrinterDriver-Funktion

Die GetPrinterDriver-Funktion ruft Treiberdaten für den angegebenen Drucker ab. Wenn der Treiber nicht auf dem lokalen Computer installiert ist, installiert GetPrinterDriver ihn.

Syntax

BOOL GetPrinterDriver(
  _In_  HANDLE  hPrinter,
  _In_  LPTSTR  pEnvironment,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pDriverInfo,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded
);

Parameter

hPrinter [in]

Ein Handle für den Drucker, für den die Treiberdaten abgerufen werden sollen. Verwenden Sie die OpenPrinter - oder AddPrinter-Funktion , um einen Druckerhandle abzurufen.

pEnvironment [in]

Ein Zeiger auf eine NULL-Zeichenfolge, die die Umgebung angibt (z. B. Windows x86, Windows IA64 oder Windows x64). Wenn dieser Parameter NULL ist, wird die aktuelle Umgebung der aufrufenden Anwendung und des Clientcomputers (nicht der Zielanwendung und des Druckservers) verwendet.

Ebene [in]

Die im pDriverInfo-Puffer zurückgegebene Druckertreiberstruktur. Dieser Parameter kann einen der folgenden Werte annehmen.

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 eine Struktur empfängt, die Informationen zum Treiber enthält, wie von Level angegeben. Der Puffer muss groß genug sein, um die Zeichenfolgen zu speichern, auf die von den Strukturelementen verwiesen wird.

Um die erforderliche Puffergröße zu ermitteln, rufen Sie GetPrinterDriver auf, wobei cbBuf auf 0 festgelegt ist. GetPrinterDriver 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 von Strukturen und deren Daten erforderlich ist.

cbBuf [in]

Die Größe des Arrays in Bytes, auf das pDriverInfo verweist.

pcbNeeded [ out]

Ein Zeiger auf einen Wert, der die Anzahl der kopierten Bytes empfängt, wenn die Funktion erfolgreich ist, oder die Anzahl der erforderlichen Bytes, wenn cbBuf zu klein ist.

Rückgabewert

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

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

Für einen nicht vorhandenen Treiber gibt die Funktion ERROR_UNKNOWN_PRINTER_DRIVER zurück.

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.

Die strukturen DRIVER_INFO_2, DRIVER_INFO_3, DRIVER_INFO_4, DRIVER_INFO_5 und DRIVER_INFO_6 enthalten den Dateinamen oder den vollständigen Pfad und Dateinamen des Druckertreibers im pDriverPath-Element . Eine Anwendung kann den Pfad und dateinamen verwenden, um einen Druckertreiber zu laden, indem sie die LoadLibrary-Funktion aufruft und den Pfad und den Dateinamen als einzelnes Argument angibt.

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
GetPrinterDriverW (Unicode) und GetPrinterDriverA (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

EnumPrinterDriver

OpenPrinter