Condividi tramite


Sfidare uno scanner disconnesso con WSD Challenger

Importante

La funzionalità WSD Challenger è stata deprecata e tutte le documentazioni correlate a WSD Challenger verranno archiviate nella documentazione delle versioni precedenti.

Un driver dello scanner di servizi Web può sfidare uno scanner disconnesso per ripristinare la comunicazione con il dispositivo quando lo scanner torna online. Per sfidare uno scanner disconnesso, il driver usa la DLL WSD Challenger (WSDCHNGR.DLL) fornita con Windows Vista. Il servizio Windows Image Acquisition (WIA) usa anche WSDCHNGR.DLL per monitorare attivamente tutti i dispositivi scanner WSDScan e consentire ai driver di rispondere a una sfida dopo un errore di comunicazione del dispositivo.

La sfida per una classe di dispositivi viene avviata dalla funzione WSDCHNGRChallengeDeviceClass WSD Challenge. Un driver WIA in genere non deve chiamare direttamente questa funzione perché il servizio WIA lo chiama per tutti i dispositivi WIA.

Poiché un driver WIA viene scaricato poco dopo la disconnessione del dispositivo supportato, il driver stesso non può mantenere WSDCHNGR.DLL caricato. Il driver, pertanto, non può continuare a monitorare WSD impegnativo e non può riconnettersi al dispositivo quando torna online. Al contrario, i driver WIA installati usando il driver in modalità kernel WSDScan.sys possono usare il servizio WIA per sfidare la classe del dispositivo e abilitare la sfida del monitoraggio per continuare dopo il caricamento del driver.

In genere, un driver WIA che usa WSDScan.sys usa solo le funzioni WSD Challenger seguenti:

WSDCHNGRInitialize
Inizializza l'interfaccia WSD Challenger usata dal client del driver WIA. Chiamare questa funzione quando il driver viene caricato.

WSDCHNGRShutdown
Arresta l'interfaccia WSD Challenger usata dal client del driver WIA. Chiamare questa funzione quando il driver viene scaricato.

Quando si verifica questo arresto, se il dispositivo è un dispositivo di classe WSDScan, il servizio WIA continua a eseguire il monitoraggio delle sfide WSD per il dispositivo dopo che il driver è stato scaricato e terminato l'interfaccia Challenge dei servizi Web.

WSDCHNGRRegisterDeviceToChallenge
Registra il dispositivo da contestare. Chiamare questa funzione dopo che il driver rileva eventuali potenziali errori di comunicazione. Lo stesso dispositivo può essere registrato per una sfida più di una volta. WSDCHNGRRegisterDeviceToChallenge restituisce S_OK se il primo dispositivo viene registrato correttamente. Questa funzione restituisce S_FALSE quando viene chiamato per un dispositivo già registrato per essere richiesto.

Gli esempi di codice seguenti illustrano come usare queste funzioni WSD Challenge per inizializzare WSD Challenger e come registrare il dispositivo scanner per problemi dopo potenziali errori di comunicazione:

Esempio di macro per filtrare i codici di errore

Esempio di codice per un dispositivo potenzialmente disconnesso

Esempio di codice per l'implementazione di metodi helper

Per altre informazioni sulle definizioni e le variabili usate in questi esempi, vedere Definizioni e variabili usate negli esempi.