Funzione SetPrinterData
La funzione SetPrinterData imposta i dati di configurazione per una stampante o un server di stampa.
Per specificare la chiave del Registro di sistema in cui archiviare i dati, chiamare la funzione SetPrinterDataEx . La chiamata a SetPrinterData equivale a chiamare la funzione SetPrinterDataEx con il parametro pKeyName impostato su "PrinterDriverData".
Sintassi
DWORD SetPrinterData(
_In_ HANDLE hPrinter,
_In_ LPTSTR pValueName,
_In_ DWORD Type,
_In_ LPBYTE pData,
_In_ DWORD cbData
);
Parametri
-
hPrinter [in]
-
Handle per la stampante o il server di stampa per cui la funzione imposta i dati di configurazione. Usare la funzione OpenPrinter, OpenPrinter2 o AddPrinter per recuperare un handle di stampante.
-
pValueName [in]
-
Puntatore a una stringa con terminazione null che identifica i dati da impostare.
Per le stampanti, questa stringa è il nome di un valore del Registro di sistema nella chiave "PrinterDriverData" della stampante nel Registro di sistema.
Per i server di stampa, questa stringa è una delle stringhe predefinite elencate nella sezione Osservazioni seguenti.
-
Tipo [in]
-
Codice che indica il tipo di dati a cui punta il parametro pData . Per un elenco dei codici di tipo possibili, vedere Tipi di valore del Registro di sistema.
-
pData [in]
-
Puntatore a una matrice di byte che contiene i dati di configurazione della stampante.
-
cbData [in]
-
Dimensioni, in byte, della matrice.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è ERROR_SUCCESS.
Se la funzione ha esito negativo, il valore restituito è un valore di errore.
Commenti
Nota
Si tratta di una funzione di blocco o sincrona e potrebbe non restituire immediatamente. La velocità con cui questa funzione restituisce dipende da fattori di runtime come lo stato della rete, la configurazione del server di stampa e i fattori di implementazione del driver della stampante difficili da prevedere durante la scrittura di un'applicazione. La chiamata a questa funzione da un thread che gestisce l'interazione con l'interfaccia utente potrebbe rendere l'applicazione non rispondente.
Per recuperare i dati di configurazione esistenti per una stampante, chiamare la funzione GetPrinterDataEx o GetPrinterData .
Se hPrinter è un handle a un server di stampa, pValueName può specificare uno dei valori predefiniti seguenti.
valore | Commenti |
---|---|
SPLREG_ALLOW_USER_MANAGEFORMS | Windows XP con Service Pack 2 (SP2) e versioni successive Windows Server 2003 con Service Pack 1 (SP1) e versioni successive |
SPLREG_BEEP_ENABLED | |
SPLREG_DEFAULT_SPOOL_DIRECTORY | |
SPLREG_EVENT_LOG | |
SPLREG_NET_POPUP | Non supportato in Windows Server 2003 e versioni successive |
SPLREG_PORT_THREAD_PRIORITY_DEFAULT | |
SPLREG_PORT_THREAD_PRIORITY | |
SPLREG_PRINT_DRIVER_ISOLATION_GROUPS | Windows 7 e versioni successive |
SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE | Windows 7 e versioni successive |
SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE | Windows 7 e versioni successive |
SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT | Windows 7 e versioni successive |
SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY | Windows 7 e versioni successive |
SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY | Windows 7 e versioni successive |
SPLREG_RETRY_POPUP | Al termine della restituzione, pData contiene 1 se il server è impostato per riprovare a visualizzare le finestre popup per tutti i processi o 0 se il server non riprova le finestre popup per tutti i processi. Non supportato in Windows Server 2003 e versioni successive |
SPLREG_SCHEDULER_THREAD_PRIORITY | |
SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT | |
SPLREG_WEBSHAREMGMT | Windows Server 2003 e versioni successive |
I valori seguenti di pValueName determinano il comportamento di stampa del pool quando si verifica un errore.
valore | Commenti |
---|---|
SPLREG_RESTART_JOB_ON_POOL_ERROR | Il valore di pData indica l'ora, in secondi, quando un processo viene riavviato in un'altra porta dopo un errore. Questa impostazione viene usata con SPLREG_RESTART_JOB_ON_POOL_ENABLED. |
SPLREG_RESTART_JOB_ON_POOL_ENABLED | Un valore diverso da zero in pData indica che SPLREG_RESTART_JOB_ON_POOL_ERROR è abilitato. |
L'ora specificata in SPLREG_RESTART_JOB_ON_POOL_ERROR è un tempo minimo. Il tempo effettivo può essere più lungo, a seconda delle impostazioni di monitoraggio delle porte seguenti, che sono valori del Registro di sistema in questa chiave del Registro di sistema:
HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitor<\MonitorName>\Porte
Chiamare la funzione RegSetValueEx per impostare questi valori.
Impostazione del monitoraggio delle porte | Tipo di dati | Significato |
---|---|---|
StatusUpdateEnabled | REG_DWORD | Se un valore diverso da zero consente al monitoraggio della porta di aggiornare lo spooler con lo stato della porta. |
StatusUpdateInterval | REG_DWORD | Specifica l'intervallo, in minuti, quando il monitoraggio della porta aggiorna lo spooler con lo stato della porta. |
In Windows 7 e versioni successive di Windows, i processi di stampa inviati a un server di stampa vengono visualizzati per impostazione predefinita sul client. Il rendering lato client di un processo di stampa può essere configurato per ogni stampante impostando i valori seguenti in pValueName.
Impostazione | Tipo di dati | Descrizione |
---|---|---|
EMFDespoolingSetting | REG_DWORD | Un valore pari a 0 o se questo valore non è presente nel Registro di sistema, abilita il rendering lato client predefinito dei processi di stampa. Il valore 1 disabilita il rendering lato client dei processi di stampa. |
ForceClientSideRendering | REG_DWORD | Un valore pari a 0 o se questo valore non è presente nel Registro di sistema, causa il rendering dei processi di stampa nel client. Se non è possibile eseguire il rendering di un processo di stampa nel client, verrà eseguito il rendering nel server. Se non è possibile eseguire il rendering di un processo di stampa nel server, avrà esito negativo. Il valore 1 eseguirà il rendering dei processi di stampa nel client. Se non è possibile eseguire il rendering di un processo di stampa nel client, avrà esito negativo. |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 2000 Professional [solo app desktop] |
Server minimo supportato |
Windows 2000 Server [solo app desktop] |
Intestazione |
|
Libreria |
|
DLL |
|
Nomi Unicode e ANSI |
SetPrinterDataW (Unicode) e SetPrinterDataA (ANSI) |