Freigeben über


GetPrinterData-Funktion

Die GetPrinterData-Funktion ruft Konfigurationsdaten für den angegebenen Drucker oder Druckserver ab.

In Windows 2000 und höheren Versionen von Windows entspricht das Aufrufen von GetPrinterData dem Aufrufen von GetPrinterDataEx , wobei der pKeyName-Parameter 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 Druckserver, für den die Funktion Konfigurationsdaten abruft. Verwenden Sie die Funktion OpenPrinter, OpenPrinter2 oder AddPrinter , um einen Druckerhandle abzurufen.

pValueName [in]

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

Bei Druckern ist diese Zeichenfolge der Name eines Registrierungswerts unter dem Druckerschlüssel "PrinterDriverData" in der Registrierung.

Für Druckserver 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 Typ zurück, der im SetPrinterData - oder SetPrinterDataEx-Aufruf angegeben ist, in dem die Daten gespeichert wurden. 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, auf den pData verweist, in Bytes.

pcbNeeded [ 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 pcbNeeded gibt die erforderliche Puffergröße an.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert ERROR_SUCCESS. Wenn die Funktion fehlschlägt, ist der Rückgabewert ein Fehlerwert.

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.

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 in die Registrierung schreibt. Wenn dies der Fall ist, können Nebenwirkungen auftreten, z. B. das Auslösen einer Update- oder Upgradedruckerereignis-ID 20 im Client, wenn der Drucker in einem Netzwerk freigegeben wird.

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_ARCHITECTURE
SPLREG_BEEP_ENABLED
SPLREG_DEFAULT_SPOOL_DIRECTORY
SPLREG_DNS_MACHINE_NAME
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_EVENT_LOG
SPLREG_MAJOR_VERSION
SPLREG_MINOR_VERSION
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_OS_VERSION Windows XP und höher
SPLREG_OS_VERSIONEX
SPLREG_PORT_THREAD_PRIORITY_DEFAULT
SPLREG_PORT_THREAD_PRIORITY
SPLREG_PRINT_DRIVER_ISOLATION_GROUPS Windows 7 und höher
SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE Windows 7 und höher
SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE Windows 7 und höher
SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT Windows 7 und höher
SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY 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 auf Wiederholungsfenster für alle Aufträge festgelegt ist, oder 0, wenn der Server popupfenster für alle Aufträge nicht wiederholt.
In Windows Server 2003 und höher nicht unterstützt
SPLREG_SCHEDULER_THREAD_PRIORITY
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 Der Wert von pData gibt die Zeit in Sekunden an, zu der ein Auftrag an einem anderen Port neu gestartet wird, nachdem ein Fehler aufgetreten ist. Diese Einstellung wird mit SPLREG_RESTART_JOB_ON_POOL_ENABLED verwendet.
SPLREG_RESTART_JOB_ON_POOL_ENABLED Ein wert nonzero 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 länger sein, abhängig von den folgenden Portüberwachungseinstellungen, bei denen es sich um Registrierungswerte unter diesem Registrierungsschlüssel handelt:

HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\<MonitorName>\Ports

Rufen Sie die RegQueryValueEx-Funktion auf, um diese Werte abzufragen.

Portmonitoreinstellung Datentyp Bedeutung
StatusUpdateEnabled REG_DWORD Wenn ein wert ungleicher Wert ist, kann der Portmonitor den Spooler mit dem Port status aktualisieren.
StatusUpdateInterval REG_DWORD Gibt das Intervall in Minuten an, wenn der Portmonitor den Spooler mit dem Port status aktualisiert.

In Windows 7 und höheren Versionen von Windows werden Druckaufträge, die an einen Druckserver 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, führt dazu, dass die Druckaufträge auf dem Client gerendert werden. Wenn ein Druckauftrag nicht auf dem Client gerendert werden kann, wird er auf dem Server gerendert. Wenn ein Druckauftrag nicht auf dem Server gerendert werden kann, tritt ein Fehler auf.
Der Wert 1 rendert Druckaufträge auf dem Client. Wenn ein Druckauftrag nicht auf dem Client 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 (einschließlich Windows.h)
Bibliothek
Winspool.lib
DLL
Winspool.drv
Unicode- und ANSI-Name
GetPrinterDataW (Unicode) und GetPrinterDataA (ANSI)

Siehe auch

Drucken

Druckspooler-API-Funktionen

GetPrinterDataEx

OpenPrinter

SetPrinter

SetPrinterData

SetPrinterDataEx

PRINTPROCESSOR_CAPS_1