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