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
Winspool.h (include Windows.h)
Libreria
Winspool.lib
DLL
Winspool.drv
Nomi Unicode e ANSI
GetPrinterDataExW (Unicode) e GetPrinterDataExA (ANSI)

Vedi anche

Stampa

Funzioni dell'API spooler di stampa

OpenPrinter

SetPrinterDataEx