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 einen Druckerhandle abzurufen.
-
Ebene [in]
-
Die Ebene oder der Typ der Struktur, die die Funktion in dem Puffer speichert, auf den pPrinter verweist.
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 pcbNeeded-Parameter die erforderliche Puffergröße zurück.
Der Typ der Struktur wird durch den Wert von Level bestimmt.
Ebene Struktur - 1
Eine PRINTER_INFO_1 Struktur, die allgemeine Druckerinformationen enthält. - 2
Eine PRINTER_INFO_2 Struktur mit detaillierten Informationen zum Drucker. - 3
Eine PRINTER_INFO_3 Struktur, die die Sicherheitsinformationen des Druckers enthält. - 4
Eine PRINTER_INFO_4 Struktur, die minimale Druckerinformationen enthält, einschließlich des Druckernamens, des Namens des Servers und der Angabe, ob der Drucker remote oder lokal ist. - 5
Eine PRINTER_INFO_5 Struktur, die Druckerinformationen wie Druckerattribute und Timeouteinstellungen enthält. - 6
Eine PRINTER_INFO_6 Struktur, die den status Wert 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 Standardeinstellungen des Druckers pro Benutzer angibt. -
cbBuf [in]
-
Die Größe des Puffers in Bytes, auf den pPrinter verweist.
-
pcbNeeded [ 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 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.
Das pDevMode-Element in den strukturen PRINTER_INFO_2, PRINTER_INFO_8 und PRINTER_INFO_9 kann NULL sein. In diesem Fall ist der Drucker nicht verwendbar, bis der Treiber erfolgreich neu installiert wurde.
Für die PRINTER_INFO_2 - und PRINTER_INFO_3-Strukturen , die einen Zeiger auf einen Sicherheitsdeskriptor enthalten, ruft die Funktion nur die Komponenten des Sicherheitsdeskriptors ab, die der Aufrufer lesen darf. Zum Abrufen bestimmter Sicherheitsbeschreibungskomponenten 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 | Sicherheitsdeskriptorkomponente |
---|---|
READ_CONTROL |
Besitzer Primäre Gruppe Diskretionäre Zugriffssteuerungsliste (DACL) |
ACCESS_SYSTEM_SECURITY |
Systemzugriffssteuerungsliste (SACL) |
Wenn Sie Ebene 7 angeben, gibt der dwAction-Member 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 Dem Drucker zugeordneten Verzeichnisdienste-Druckwarteschlangenobjekts. |
DSPRINT_UNPUBLISH | Der Drucker wird nicht veröffentlicht. |
DSPRINT_PENDING | Gibt an, dass das System versucht, einen Veröffentlichungs- oder Veröffentlichungsvorgang aufzuheben. Wenn ein SetPrinter-Aufruf einen Drucker nicht veröffentlichen oder 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 Druckserver gehostet wird und mindestens eine offene Verbindung mit dem Druckserver besteht. In allen anderen Konfigurationen werden die Druckerdaten vom Druckserver 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) |