GetPrinterData-Funktion
Die GetPrinterData-Funktion ruft Konfigurationsdaten für den angegebenen Drucker oder Druckerserver ab.
In Windows 2000 und höher von Windows entspricht der Aufruf von GetPrinterData dem Aufrufen von GetPrinterDataEx, wobei der Parameter pKeyName auf "PrinterDriverData" festgelegt ist.
Syntax
DWORD GetPrinterData(
_In_ HANDLE hPrinter,
_In_ LPTSTR pValueName,
_Out_ LPDWORD pType,
_Out_ LPBYTE pData,
_In_ DWORD nSize,
_Out_ LPDWORD pcbNeeded
);
Parameter
-
hPrinter [ In]
-
Ein Handle für den Drucker oder Druckerserver, für den die Funktion Konfigurationsdaten abruft. Verwenden Sie die Funktion OpenPrinter, OpenPrinter2oder AddPrinter, um ein Druckerhandle abzurufen.
-
pValueName [ In]
-
Ein Zeiger auf eine auf NULL endende Zeichenfolge, die die abzurufenden Daten identifiziert.
Bei Druckern ist diese Zeichenfolge der Name eines Registrierungswerts unter dem Druckerschlüssel "PrinterDriverData" in der Registrierung.
Bei Druckservern ist diese Zeichenfolge eine der vordefinierten Zeichenfolgen, die im folgenden Abschnitt "Hinweise" aufgeführt sind.
-
pType [ out]
-
Ein Zeiger auf eine Variable, die einen Wert empfängt, der den Typ der in pData abgerufenen Daten angibt. Die Funktion gibt den im SetPrinterData- oder SetPrinterDataEx-Aufruf angegebenen Typ zurück, der die Daten gespeichert hat. Legen Sie diesen Parameter auf NULL fest, wenn Sie den Datentyp nicht benötigen.
-
pData [ out]
-
Ein Zeiger auf einen Puffer, der die Konfigurationsdaten empfängt.
-
nSize [ In]
-
Die Größe des Puffers in Bytes, auf den pData verweist.
-
"Needed" [ out]
-
Ein Zeiger auf eine Variable, die die Größe der Konfigurationsdaten in Bytes empfängt. Wenn die von nSize angegebene Puffergröße zu klein ist, gibt die Funktion ERROR _ MORE _ DATA zurück, und "pwNeeded" gibt die erforderliche Puffergröße an.
Rückgabewert
Wenn die Funktion erfolgreich ist, lautet der Rückgabewert ERROR _ SUCCESS. Wenn die Funktion fehlschlägt, ist der Rückgabewert ein Fehlerwert.
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.
GetPrinterData ruft Druckerkonfigurationsdaten ab, die von der SetPrinterDataEx- oder SetPrinterData-Funktion festgelegt wurden.
GetPrinterData löst möglicherweise einen Windows Aufruf von GetPrinterDataFromPort aus,der möglicherweise in die Registrierung schreibt. Wenn dies der Fall ist, können Nebeneffekte auftreten, z. B. das Auslösen eines Updates oder ein Upgrade der Druckerereignis-ID 20 auf dem Client, wenn der Drucker in einem Netzwerk freigegeben ist.
Wenn hPrinter ein Handle für einen Druckserver ist, kann pValueName einen der folgenden vordefinierten Werte angeben.
| Wert | Kommentare |
|---|---|
| SPLREG _ ALLOW _ USER _ MANAGEFORMS | Windows XP mit Service Pack 2 (SP2) und höher Windows Server 2003 mit Service Pack 1 (SP1) und höher |
| _SPLREG-ARCHITEKTUR | |
| SPLREG _ BEEP _ AKTIVIERT | |
| SPLREG _ DEFAULT _ SPOOL _ DIRECTORY | |
| NAME DES _ SPLREG-DNS-COMPUTERS _ _ | |
| SPLREG _ DS _ PRESENT | Bei erfolgreicher Rückgabe enthält pData 0x0001, wenn sich der Computer in einer DS-Domäne befindet, andernfalls 0. |
| SPLREG _ DS _ PRESENT _ FOR _ USER | Bei erfolgreicher Rückgabe enthält pData 0x0001, wenn der Benutzer bei einer DS-Domäne angemeldet ist, andernfalls 0. |
| _SPLREG-EREIGNISPROTOKOLL _ | |
| _SPLREG-HAUPTVERSION _ | |
| _SPLREG-NEBENVERSION _ | |
| SPLREG _ NET _ POPUP | In Windows Server 2003 und höher nicht unterstützt |
| SPLREG _ NET _ POPUP _ TO _ COMPUTER | Bei erfolgreicher Rückgabe enthält pData 1, wenn Auftragsbenachrichtigungen an den Clientcomputer gesendet werden sollen, oder 0, wenn Auftragsbenachrichtigungen an den Benutzer gesendet werden sollen. In Windows Server 2003 und höher nicht unterstützt |
| _SPLREG-BETRIEBSSYSTEMVERSION _ | Windows XP und höher |
| SPLREG _ OS _ VERSIONEX | |
| SPLREG _ PORT _ THREAD _ PRIORITY _ DEFAULT | |
| PRIORITÄT DES _ SPLREG-PORTTHREADS _ _ | |
| ISOLATIONSGRUPPEN FÜR _ SPLREG-DRUCKERTREIBER _ _ _ | Windows 7 und höher |
| _ISOLATIONSZEIT DES SPLREG-DRUCKERTREIBERS _ VOR DEM _ _ _ _ WIEDERVERWENDEN | Windows 7 und höher |
| SPLREG _ PRINT _ DRIVER _ ISOLATION _ MAX _ OBJECTS _ BEFORE _ RECYCLE | Windows 7 und höher |
| ISOLATION DES _ SPLREG-DRUCKERTREIBERS _ _ IM _ _ LEERLAUFTIMEOUT | Windows 7 und höher |
| _ _ _ _ ISOLATIONSAUSFÜHRUNGSRICHTLINIE FÜR _ SPLREG-DRUCKERTREIBER | Windows 7 und höher |
| SPLREG _ PRINT _ DRIVER _ ISOLATION _ OVERRIDE _ POLICY | Windows 7 und höher |
| SPLREG _ REMOTE _ FAX | Bei erfolgreicher Rückgabe enthält pData 0x0001, wenn der FAX-Dienst Remoteclients unterstützt, andernfalls 0. |
| SPLREG _ RETRY _ POPUP | Bei erfolgreicher Rückgabe enthält pData 1, wenn der Server so festgelegt ist, dass popupfenster für alle Aufträge erneut versucht werden, oder 0, wenn der Server keine Popupfenster für alle Aufträge erneut versucht. In Windows Server 2003 und höher nicht unterstützt |
| PRIORITÄT DES SPLREG _ _ SCHEDULER-THREADS _ | |
| SPLREG _ SCHEDULER _ THREAD _ PRIORITY _ DEFAULT | |
| SPLREG _ WEBSHAREMGMT | Windows Server 2003 und höher |
Die folgenden Werte von pValueName geben das Druckverhalten des Pools an, wenn ein Fehler auftritt.
| Wert | Kommentare |
|---|---|
| SPLREG _ RESTART JOB ON POOL ERROR _ (SPLREG-NEUSTARTAUFTRAG _ BEI _ _ POOLFEHLER) | Der Wert von pData gibt die Zeit in Sekunden an, zu der ein Auftrag nach einem Fehler an einem anderen Port neu gestartet wird. Diese Einstellung wird mit SPLREG _ RESTART JOB ON POOL _ _ _ _ ENABLED verwendet. |
| _SPLREG-NEUSTARTAUFTRAG _ _ FÜR POOL _ _ AKTIVIERT | Ein Wert ungleich 0 (null) in pData gibt an, dass SPLREG _ RESTART JOB ON _ POOL _ _ _ ERROR aktiviert ist. |
Die in SPLREG _ RESTART JOB ON POOL _ _ _ _ ERROR angegebene Zeit ist eine Mindestzeit. Die tatsächliche Zeit kann abhängig von den folgenden Portmonitoreinstellungen länger sein, bei denen es sich um Registrierungswerte unter diesem Registrierungsschlüssel handelt:
HKLM \ SYSTEM \ CurrentControlSet-Steuerelement \ \ \ \ < Druckmonitore MonitorName-Ports > \
Rufen Sie die RegQueryValueEx-Funktion auf, um diese Werte abzufragen.
| Portmonitoreinstellung | Datentyp | Bedeutung |
|---|---|---|
| StatusUpdateEnabled | REG _ DWORD | Wenn ein Wert ungleich 0 (null) ist, kann der Portmonitor den Spooler mit dem Portstatus aktualisieren. |
| StatusUpdateInterval | REG _ DWORD | Gibt das Intervall in Minuten an, in dem der Portmonitor den Spooler mit dem Portstatus aktualisiert. |
In Windows 7 und neueren Versionen von Windows werden Druckaufträge, die an einen Druckerserver gesendet werden, standardmäßig auf dem Client gerendert. Die folgenden Werte konfigurieren das clientseitige Rendering eines Druckauftrags und können gelesen werden, wenn Sie die folgenden Werte in pValueName festlegen.
| Einstellung | Datentyp | BESCHREIBUNG |
|---|---|---|
| EMFDespoolingSetting | REG _ DWORD | Der Wert 0 oder , wenn dieser Wert nicht in der Registrierung vorhanden ist, aktiviert das clientseitige Standardrendering von Druckaufträgen. Der Wert 1 deaktiviert das clientseitige Rendering von Druckaufträgen. |
| ForceClientSideRendering | REG _ DWORD | Der Wert 0 oder , wenn dieser Wert nicht in der Registrierung vorhanden ist, verursacht, dass die Druckaufträge auf dem Client gerendert werden. Wenn ein Druckauftrag auf dem Client nicht gerendert werden kann, wird er auf dem Server gerendert. Wenn ein Druckauftrag nicht auf dem Server gerendert werden kann, wird ein Fehler angezeigt. Der Wert 1 rendert Druckaufträge auf dem Client. Wenn ein Druckauftrag nicht auf dem Client gerendert werden kann, wird ein Fehler angezeigt. |
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 |
GetPrinterDataW (Unicode) und GetPrinterDataA (ANSI) |