Funzione GetPrinterData
La funzione GetPrinterData recupera i dati di configurazione per la stampante o il server di stampa specificati.
In Windows 2000 e versioni successive di Windows chiamare GetPrinterData equivale a chiamare GetPrinterDataEx con il parametro pKeyName impostato su "PrinterDriverData".
Sintassi
DWORD GetPrinterData(
_In_ HANDLE hPrinter,
_In_ LPTSTR 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. 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 recuperare.
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.
-
pType [out]
-
Puntatore a una variabile che riceve un valore che indica il tipo di dati recuperati in pData. La funzione restituisce il tipo specificato nella chiamata SetPrinterData o SetPrinterDataEx archiviata. Impostare questo parametro su NULL se non è necessario il tipo di dati.
-
pData [out]
-
Puntatore a un buffer che riceve i dati di configurazione.
-
nSize [in]
-
Dimensioni, in byte, del buffer a cui pData punta.
-
pcbNeeded [out]
-
Puntatore a una variabile che riceve le dimensioni, in byte, dei dati di configurazione. Se le dimensioni del buffer specificate da nSize sono troppo piccole, la funzione restituisce ERROR_MORE_DATA e pcbNeeded indica la dimensione del buffer necessaria.
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.
GetPrinterData recupera i dati di configurazione della stampante impostati dalla funzione SetPrinterDataEx o SetPrinterData .
GetPrinterData potrebbe attivare una chiamata di Windows a GetPrinterDataFromPort, che potrebbe scrivere nel Registro di sistema. In caso contrario, gli effetti collaterali possono verificarsi, ad esempio l'attivazione di un aggiornamento o l'ID evento della stampante 20 nel client, se la stampante è condivisa in una rete.
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_ARCHITECTURE | |
SPLREG_BEEP_ENABLED | |
SPLREG_DEFAULT_SPOOL_DIRECTORY | |
SPLREG_DNS_MACHINE_NAME | |
SPLREG_DS_PRESENT | Al termine della restituzione, pData contiene 0x0001 se il computer si trova in un dominio DS, in caso contrario, 0. |
SPLREG_DS_PRESENT_FOR_USER | Al termine della restituzione, pData contiene 0x0001 se l'utente è connesso a un dominio DS, in caso contrario, 0. |
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 | Al termine della restituzione, pData contiene 0x0001 se il servizio FAX supporta i client remoti, in caso contrario 0. |
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 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 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 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. |
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. I valori seguenti configurano il rendering lato client di un processo di stampa e possono essere letti se si impostano 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, 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 |
GetPrinterDataW (Unicode) e GetPrinterDataA (ANSI) |