Funzione GetPrinterDataEx
La funzione GetPrinterDataEx recupera i dati di configurazione per la stampante o il server di stampa specificato. GetPrinterDataEx può recuperare i valori archiviati dalla funzione SetPrinterData . Inoltre, GetPrinterDataEx può recuperare i valori archiviati nella funzione SetPrinterDataEx in una chiave specificata.
Sintassi
DWORD GetPrinterDataEx(
_In_ HANDLE hPrinter,
_In_ LPCTSTR pKeyName,
_In_ LPCTSTR pValueName,
_Out_ LPDWORD pType,
_Out_ LPBYTE pData,
_In_ DWORD nSize,
_Out_ LPDWORD pcbNeeded
);
Parametri
-
hPrinter [in]
-
Handle per la stampante o il server di stampa per cui la funzione recupera i dati di configurazione. Utilizzare la funzione OpenPrinter, OpenPrinter2 o AddPrinter per recuperare un handle di stampante.
-
pKeyName [in]
-
Puntatore a una stringa con terminazione Null che specifica la chiave contenente il valore da recuperare. Usare il carattere barra rovesciata ( \ ) come delimitatore per specificare un percorso con una o più sottochiavi.
Se hPrinter è un handle per una stampante e pKeyName è NULL o una stringa vuota, GetPrinterDataEx restituisce ERROR_INVALID_PARAMETER.
Se hPrinter è un handle per un server di stampa, pKeyName viene ignorato.
-
pValueName [in]
-
Puntatore a una stringa con terminazione Null che identifica i dati da recuperare.
Per le stampanti, questa stringa specifica il nome di un valore nella chiave pKeyName .
Per i server di stampa, questa stringa è una delle stringhe predefinite elencate nella sezione Osservazioni seguente.
-
pType [out]
-
Puntatore a una variabile che riceve il tipo di dati archiviati nel valore. La funzione restituisce il tipo specificato nella chiamata SetPrinterDataEx quando i dati sono stati archiviati. Questo parametro può essere NULL se non sono necessarie le informazioni. GetPrinterDataEx passa pType su come parametro lpdwType di una chiamata di funzione RegQueryValueEx .
-
pData [out]
-
Puntatore a un buffer che riceve i dati di configurazione.
-
nSize [in]
-
Dimensione, in byte, del buffer a cui punta pData.
-
pcbNeeded [out]
-
Puntatore a una variabile che riceve le dimensioni, in byte, dei dati di configurazione. Se la dimensione del buffer specificata da nSize è troppo piccola, la funzione restituisce ERROR_MORE_DATA e pcbNeeded indica le dimensioni del buffer necessarie.
Valore restituito
Se la funzione ha esito positivo, il valore restituito viene 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à di restituzione di questa funzione 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. Chiamando questa funzione da un thread che gestisce l'interazione con l'interfaccia utente, l'applicazione potrebbe sembrare non rispondente.
GetPrinterDataEx recupera i dati di configurazione della stampante impostati dalle funzioni SetPrinterDataEx e SetPrinterData .
La chiamata a GetPrinterDataEx con il parametro pKeyName impostato su "PrinterDriverData" equivale a chiamare la funzione GetPrinterData .
Se hPrinter è un handle per 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_ARCHITECTURE | |
SPLREG_BEEP_ENABLED | |
SPLREG_DEFAULT_SPOOL_DIRECTORY | |
SPLREG_DNS_MACHINE_NAME | |
SPLREG_DS_PRESENT | In caso di esito positivo, pData contiene 0x0001 se il computer si trova in un dominio DS, 0 in caso contrario. |
SPLREG_DS_PRESENT_FOR_USER | In caso di esito positivo, pData contiene 0x0001 se l'utente è connesso a un dominio DS, 0 in caso contrario. |
SPLREG_EVENT_LOG | |
SPLREG_MAJOR_VERSION | |
SPLREG_MINOR_VERSION | |
SPLREG_NET_POPUP | Non supportato in Windows Server 2003 e versioni successive |
SPLREG_NET_POPUP_TO_COMPUTER | Al termine della restituzione, pData contiene 1 se le notifiche del processo devono essere inviate al computer client o 0 se le notifiche del processo devono essere inviate all'utente. Non supportato in Windows Server 2003 e versioni successive |
SPLREG_OS_VERSION | Windows XP e versioni successive |
SPLREG_OS_VERSIONEX | |
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_REMOTE_FAX | In caso di esito positivo, pData contiene 0x0001 se il servizio FAX supporta i client remoti, 0 in caso contrario. |
SPLREG_RETRY_POPUP | Al termine della restituzione, pData contiene 1 se il server è impostato per riprovare a visualizzare finestre popup per tutti i processi oppure 0 se il server non ritenta 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 indicano il comportamento di stampa del pool quando si verifica un errore.
valore | Commenti |
---|---|
SPLREG_RESTART_JOB_ON_POOL_ERROR | Il valore di pData indica il tempo, in secondi, quando un processo viene riavviato su un'altra porta dopo che si verifica 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'ora minima. 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 RegQueryValueEx per eseguire query su 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. |
Se pKeyName è una delle chiavi DS (Directory Service) predefinite (vedere SetPrinter) e pValueName contiene una virgola (','), la parte dipValueName prima che la virgola sia il nome del valore e la parte di pValueName a destra della virgola sia l'OID della proprietà DS. Viene creata una sottochiave denominata OID e viene immesso un nuovo valore costituito dal nome del valore e dall'OID. SetPrinterDataEx aggiunge anche il nome e i dati del valore nella chiave DS.
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. La configurazione del rendering lato client per una stampante può essere letto impostando pKeyName su "PrinterDriverData" e pValueName sul valore dell'impostazione nella tabella seguente.
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, causerà 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 |
GetPrinterDataExW (Unicode) e GetPrinterDataExA (ANSI) |