Share via


SetPrinterData-Funktion

Die SetPrinterData-Funktion legt die Konfigurationsdaten für einen Drucker oder Druckserver fest.

Um den Registrierungsschlüssel anzugeben, unter dem die Daten gespeichert werden sollen, rufen Sie die SetPrinterDataEx-Funktion auf. Das Aufrufen von SetPrinterData entspricht dem Aufrufen der SetPrinterDataEx-Funktion , wobei der pKeyName-Parameter auf "PrinterDriverData" festgelegt ist.

Syntax

DWORD SetPrinterData(
  _In_ HANDLE hPrinter,
  _In_ LPTSTR pValueName,
  _In_ DWORD  Type,
  _In_ LPBYTE pData,
  _In_ DWORD  cbData
);

Parameter

hPrinter [in]

Ein Handle für den Drucker oder Druckserver, für den die Funktion Konfigurationsdaten festlegt. Verwenden Sie die Funktion OpenPrinter, OpenPrinter2 oder AddPrinter , um einen Druckerhandle abzurufen.

pValueName [in]

Ein Zeiger auf eine NULL-Zeichenfolge, die die festzulegenden 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.

Geben Sie [in] ein.

Ein Code, der den Datentyp angibt, auf den der pData-Parameter verweist. Eine Liste der möglichen Typcodes finden Sie unter Registrierungswerttypen.

pData [in]

Ein Zeiger auf ein Bytearray, das die Druckerkonfigurationsdaten enthält.

cbData [in]

Die Größe des Arrays in Bytes.

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.

Um vorhandene Konfigurationsdaten für einen Drucker abzurufen, rufen Sie die Funktion GetPrinterDataEx oder GetPrinterData auf.

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_BEEP_ENABLED
SPLREG_DEFAULT_SPOOL_DIRECTORY
SPLREG_EVENT_LOG
SPLREG_NET_POPUP In Windows Server 2003 und höher nicht unterstützt
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_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 bestimmen das Druckverhalten des Pools, 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 RegSetValueEx-Funktion auf, um diese Werte festzulegen.

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. Das clientseitige Rendering eines Druckauftrags kann für jeden Drucker konfiguriert werden, indem die folgenden Werte in pValueName festgelegt werden.

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, 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, 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
SetPrinterDataW (Unicode) und SetPrinterDataA (ANSI)

Siehe auch

Drucken

Druckspooler-API-Funktionen

GetPrinter

GetPrinterData

GetPrinterDataEx

OpenPrinter

SetPrinterDataEx