GetPrinterDataEx-Funktion
Die GetPrinterDataEx-Funktion ruft Konfigurationsdaten für den angegebenen Drucker oder Druckserver 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 Druckserver, für den die Funktion Konfigurationsdaten abruft. Verwenden Sie die Funktion OpenPrinter, OpenPrinter2 oder AddPrinter , um einen Druckerhandle abzurufen.
-
pKeyName [in]
-
Ein Zeiger auf eine 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 mit einem oder mehreren Unterschlüsseln anzugeben.
Wenn hPrinter ein Handle für einen Drucker ist und pKeyNameNULL oder eine leere Zeichenfolge ist, gibt GetPrinterDataExERROR_INVALID_PARAMETER zurück.
Wenn hPrinter ein Handle für einen Druckserver ist, wird pKeyName ignoriert.
-
pValueName [in]
-
Ein Zeiger auf eine NULL-endende Zeichenfolge, die die abzurufenden Daten identifiziert.
Für Drucker gibt diese Zeichenfolge den Namen eines Werts unter dem Schlüssel pKeyName 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 für 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 verweist.
-
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, die möglicherweise nicht sofort zurückgegeben wird. 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. Das Aufrufen dieser Funktion aus einem Thread, der die Interaktion mit der Benutzeroberfläche verwaltet, könnte dazu führen, dass die Anwendung nicht mehr 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_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 server so festgelegt ist, dass Popupfenster für alle Aufträge wiederholt werden, oder 0, wenn der Server popupfenster nicht für alle Aufträge 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 ungleich 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 je nach den folgenden Portmonitoreinstellungen länger sein, 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 ungleich null ist, kann der Portmonitor den Spooler mit dem Port status aktualisieren. |
StatusUpdateInterval | REG_DWORD | Gibt das Intervall in Minuten an, in dem der Portmonitor den Spooler mit dem Port status aktualisiert. |
Wenn pKeyName einer der vordefinierten Verzeichnisdienstschlüssel (DS) ist (siehe SetPrinter) und pValueName ein Komma (",") enthält, dann ist der Teil von pValueName vor dem Komma der Wertname und der Teil von pValueName rechts neben dem Komma die DS-Eigenschafts-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öheren Versionen 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 werden.
Einstellung | Datentyp | BESCHREIBUNG |
---|---|---|
EMFDespoolingSetting | REG_DWORD | Der Wert 0 oder, wenn dieser Wert nicht in der Registrierung vorhanden ist, aktiviert das standardmäßige clientseitige Rendering 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, bewirkt, 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, schlägt er fehl. Der Wert 1 rendert Druckaufträge auf dem Client. Wenn ein Druckauftrag nicht auf dem Client gerendert werden kann, schlägt er fehl. |
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 |
GetPrinterDataExW (Unicode) und GetPrinterDataExA (ANSI) |