GetPrinter-Funktion

Die GetPrinter-Funktion ruft Informationen zu einem angegebenen Drucker ab.

Syntax

BOOL GetPrinter(
  _In_  HANDLE  hPrinter,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pPrinter,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded
);

Parameter

hPrinter [ In]

Ein Handle für den Drucker, für den die Funktion Informationen abruft. Verwenden Sie die OpenPrinter- oder AddPrinter-Funktion, um ein Druckerhandle abzurufen.

Ebene [ In]

Die Ebene oder der Typ der Struktur, die die Funktion in dem Puffer speichert, auf den pPrinter zeigt.

Dieser Wert kann 1, 2, 3, 4, 5, 6, 7, 8 oder 9 sein.

pPrinter [ out]

Ein Zeiger auf einen Puffer, der eine -Struktur empfängt, die Informationen zum angegebenen Drucker enthält. Der Puffer muss groß genug sein, um die -Struktur und alle Zeichenfolgen oder andere Daten zu empfangen, auf die die Strukturmember zeigen. Wenn der Puffer zu klein ist, gibt der Parameter "pwNeeded" die erforderliche Puffergröße zurück.

Der Typ der Struktur wird durch den Wert von Ebene bestimmt.

Ebene Struktur
1
Eine PRINTER _ INFO _ 1-Struktur, die allgemeine Druckerinformationen enthält.
2
Eine PRINTER _ INFO _ 2-Struktur, die ausführliche Informationen zum Drucker enthält.
3
Eine PRINTER _ INFO _ 3-Struktur, die die Sicherheitsinformationen des Druckers enthält.
4
Eine PRINTER _ INFO _ 4-Struktur mit minimalen Druckerinformationen, einschließlich des Druckernamens, des Servernamens und der Angabe, ob der Drucker remote oder lokal ist.
5
Eine PRINTER _ INFO _ 5-Struktur, die Druckerinformationen wie Druckerattribute und Time out-Einstellungen enthält.
6
Eine PRINTER _ INFO _ 6-Struktur, die den Statuswert eines Druckers angibt.
7
Eine PRINTER _ INFO _ 7-Struktur, die angibt, ob der Drucker im Verzeichnisdienst veröffentlicht wird.
8
Eine PRINTER _ INFO _ 8-Struktur, die die globalen Standarddruckereinstellungen angibt.
9
Eine PRINTER _ INFO _ 9-Struktur, die die Standarddruckereinstellungen pro Benutzer angibt.

cbBuf [ In]

Die Größe des Puffers in Bytes, auf den pPrinter zeigt.

"Needed" [ out]

Ein Zeiger auf eine Variable, die die Funktion auf die Größe der Druckerinformationen in Bytes festlegt. Wenn cbBuf kleiner als dieser Wert ist, schlägt GetPrinter fehl, und der Wert stellt die erforderliche Puffergröße dar. Wenn cbBuf gleich oder größer als dieser Wert ist, ist GetPrinter erfolgreich, und der Wert stellt die Anzahl der im Puffer gespeicherten Bytes dar.

Rückgabewert

Wenn die Funktion erfolgreich ausgeführt wird, ist der Rückgabewert ein Wert ungleich 0 (null).

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

Hinweise

Hinweis

Dies ist eine blockierende oder synchrone Funktion und wird möglicherweise nicht sofort zurückgegeben. Wie schnell diese Funktion zurückgegeben wird, hängt von Laufzeitfaktoren wie Netzwerkstatus, Druckerserverkonfiguration und Implementierungsfaktoren für Druckertreiber ab, die beim Schreiben einer Anwendung schwer vorherzusagen sind. Das Aufrufen dieser Funktion über einen Thread, der die Interaktion mit der Benutzeroberfläche verwaltet, kann dazu bringen, dass die Anwendung scheinbar nicht reagiert.

Der pDevMode-Member in den Strukturen PRINTER INFO _ _ 2, PRINTER INFO _ _ 8und PRINTER INFO _ _ 9 kann NULL sein. In diesem Fall kann der Drucker erst verwendet werden, wenn der Treiber erfolgreich neu installiert wurde.

Für die Strukturen PRINTER _ INFO _ 2 und PRINTER INFO _ _ 3, die einen Zeiger auf einen Sicherheitsdeskriptor enthalten, ruft die Funktion nur die Komponenten des Sicherheitsdeskriptors ab, die der Aufrufer lesen darf. Um bestimmte Sicherheitsbeschreibungskomponenten abzurufen, müssen Sie die erforderlichen Zugriffsrechte angeben, wenn Sie die OpenPrinter-Funktion aufrufen, um ein Handle für den Drucker abzurufen. In der folgenden Tabelle sind die Zugriffsrechte aufgeführt, die zum Lesen der verschiedenen Sicherheitsbeschreibungskomponenten erforderlich sind.

Zugriffsrecht Sicherheitsbeschreibungskomponente
_READ-STEUERELEMENT
Besitzer
Primäre Gruppe
Dacl (Discretionary Access Control List)
ZUGREIFEN AUF _ _ SYSTEMSICHERHEIT
Systemzugriffssteuerungsliste (SACL)

Wenn Sie Ebene 7 angeben, gibt das dwAction-Element von PRINTER INFO _ _ 7 einen der folgenden Werte zurück, um anzugeben, ob der Drucker im Verzeichnisdienst veröffentlicht wird.

dwAction-Wert Bedeutung
DSPRINT _ PUBLISH Der Drucker wird veröffentlicht. Das pszObjectGUID-Element enthält die GUID des Druckwarteschlangenobjekts der Verzeichnisdienste, das dem Drucker zugeordnet ist.
DSPRINT _ UNPUBLISH Der Drucker wird nicht veröffentlicht.
DSPRINT _ AUSSTEHEND Gibt an, dass das System versucht, einen Veröffentlichungs- oder Nichtveröffentlichungsvorgang abzuschließen. Wenn ein SetPrinter-Aufruf einen Drucker nicht veröffentlichen oder die Veröffentlichung aufheben kann, unternimmt das System weitere Versuche, den Vorgang im Hintergrund abzuschließen.

Ab Windows Vista werden die von GetPrinter zurückgegebenen Druckerdaten aus einem lokalen Cache abgerufen, wenn hPrinter auf einen Drucker verweist, der von einem Druckerserver gehostet wird und mindestens eine offene Verbindung mit dem Druckerserver besteht. In allen anderen Konfigurationen werden die Druckerdaten vom Druckerserver abgefragt.

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 (include Windows.h)
Bibliothek
Winspool.lib
DLL
Winspool.drv
Unicode- und ANSI-Name
GetPrinterW (Unicode) und GetPrinterA (ANSI)

Siehe auch

Drucken

Druckspooler-API-Funktionen

AbortPrinter

AddPrinter

ClosePrinter

DeletePrinter

EnumPrinters

DRUCKERINFORMATIONEN _ _ 1

DRUCKERINFORMATIONEN _ _ 2

DRUCKERINFORMATIONEN _ _ 3

DRUCKERINFORMATIONEN _ _ 4

DRUCKERINFORMATIONEN _ _ 5

DRUCKERINFORMATIONEN _ _ 7

DRUCKERINFORMATIONEN _ _ 8

DRUCKERINFORMATIONEN _ _ 9

OpenPrinter

SetPrinter