GetPrinterDataEx-Funktion

Die GetPrinterDataEx-Funktion ruft Konfigurationsdaten für den angegebenen Drucker oder Druckerserver ab. GetPrinterDataEx kann Werte abrufen, die von der SetPrinterData-Funktion gespeichert wurden. Darüber hinaus kann GetPrinterDataEx Werte abrufen, die die SetPrinterDataEx-Funktion unter einem angegebenen Schlüssel gespeichert hat.

Syntax

DWORD GetPrinterDataEx(
  _In_  HANDLE  hPrinter,
  _In_  LPCTSTR pKeyName,
  _In_  LPCTSTR 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.

pKeyName [ In]

Ein Zeiger auf eine auf NULL endende Zeichenfolge, die den Schlüssel angibt, der den abzurufenden Wert enthält. Verwenden Sie den umgekehrten Schrägstrich \ () als Trennzeichen, um einen Pfad anzugeben, der über einen oder mehrere Unterschlüssel verfügt.

Wenn hPrinter ein Handle für einen Drucker und pKeyName NULL oder eine leere Zeichenfolge ist, gibt GetPrinterDataEx ERROR INVALID _ _ PARAMETER zurück.

Wenn hPrinter ein Handle für einen Druckserver ist, wird pKeyName ignoriert.

pValueName [ In]

Ein Zeiger auf eine auf NULL endende Zeichenfolge, die die abzurufenden Daten identifiziert.

Bei Druckern gibt diese Zeichenfolge den Namen eines Werts unter dem pKeyName-Schlüssel an.

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 den Typ der im Wert gespeicherten Daten empfängt. Die Funktion gibt den Typ zurück, der im SetPrinterDataEx-Aufruf angegeben wurde, als die Daten gespeichert wurden. Dieser Parameter kann NULL sein, wenn Sie die Informationen nicht benötigen. GetPrinterDataEx übergibt pType als lpdwType-Parameter eines RegQueryValueEx-Funktionsaufrufs.

pData [ out]

Ein Zeiger auf einen Puffer, der die Konfigurationsdaten empfängt.

nSize [ In]

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

"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.

GetPrinterDataEx ruft Druckerkonfigurationsdaten ab, die von den Funktionen SetPrinterDataEx und SetPrinterData festgelegt wurden.

Das Aufrufen von GetPrinterDataEx mit dem pKeyName-Parameter, der auf "PrinterDriverData" festgelegt ist, entspricht dem Aufrufen der GetPrinterData-Funktion.

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.

Wenn pKeyName einer der vordefinierten DS-Schlüssel (Directory Service) ist (siehe SetPrinter) und pValueName ein Komma (',') enthält, ist der Teil von pValueName vor dem Komma der Wertname, und der Teil von pValueName rechts neben dem Komma ist die DS-Eigenschaften-OID. Ein Unterschlüssel namens OID wird erstellt, und ein neuer Wert, der aus dem Wertnamen und der OID besteht, wird unter dem OID-Schlüssel eingegeben. SetPrinterDataEx fügt auch den Wertnamen und die Daten unter dem DS-Schlüssel hinzu.

In Windows 7 und höher von Windows werden Druckaufträge, die an einen Druckserver gesendet werden, standardmäßig auf dem Client gerendert. Die Konfiguration des clientseitigen Renderings für einen Drucker kann gelesen werden, indem pKeyName auf "PrinterDriverData" und pValueName auf den Einstellungswert in der folgenden Tabelle festgelegt wird.

Einstellung Datentyp Beschreibung
EMFDespoolingSetting REG _ DWORD Der Wert 0 oder , wenn dieser Wert in der Registrierung nicht vorhanden ist, aktiviert das clientseitige Standardrendering von Druckaufträgen.
Der Wert 1 deaktiviert das clientseitige Rendern von Druckaufträgen.
ForceClientSideRendering REG _ DWORD Der Wert 0 oder , wenn dieser Wert nicht in der Registrierung vorhanden ist, bewirkt, 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 auf dem Server nicht gerendert werden kann, tritt ein Fehler auf.
Der Wert 1 rendert Druckaufträge auf dem Client. Wenn ein Druckauftrag auf dem Client nicht gerendert werden kann, tritt ein Fehler auf.

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
GetPrinterDataExW (Unicode) und GetPrinterDataExA (ANSI)

Siehe auch

Drucken

Druckspooler-API-Funktionen

OpenPrinter

SetPrinterDataEx