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