Condividi tramite


Creazione di un microdriver WIA

Molti scanner flatbed sono controllati in modo simile. Il comportamento comune tra i modelli è stato astrazione in un driver comune fornito da Microsoft denominato WIA Flatbed Driver. Questo driver chiama una DLL, denominata microdriver, fornita dal fornitore dello scanner, che implementa qualsiasi comportamento specifico del dispositivo necessario. Il driver flat WIA insieme al microdriver può quindi essere usato come minidriver WIA. Il vantaggio di usare un microdriver è che è molto facile implementare e eseguire il debug. Non tutti gli scanner possono essere supportati da un microdriver. È più appropriato per i dispositivi semplici (senza un duplex o altre funzionalità avanzate) o quando è desiderato un driver di funzionalità di base.

Nota I microdriver WIA descritti in questa sezione sono WIA 1.0. Attualmente non esiste alcun modello di microdriver WIA corrispondente per WIA 2.0. Se si sviluppa un microdriver WIA da eseguire in un computer con una versione di Windows che supporta WIA 2.0 (Windows Vista o versione successiva), questo microdriver WIA funzionerà come qualsiasi altro dispositivo WIA 1.0 e verrà usato dalle applicazioni WIA 2.0 in modalità di compatibilità WIA 1.0.

Il diagramma seguente illustra i componenti nell'architettura del microdriver WIA.

diagramma che illustra i componenti nell'architettura del microdriver wia.

Il driver WIA Flatbed gestisce le richieste dal servizio WIA chiamando le funzioni di microdriver WIA nel microdriver. Il microdriver deve implementare ognuna di queste funzioni. Una struttura SCANINFO viene passata al microdriver per archiviare e comunicare i parametri di analisi, ad esempio la finestra di analisi e la risoluzione. Il driver WIA Flatbed legge i valori dalla struttura SCANINFO, ma non li scrive mai. È responsabilità del microdriver impostare i membri SCANINFO.

Il microdriver non deve archiviare parametri per un'analisi, ma deve basarsi sui valori archiviati nella struttura SCANINFO . Questo è importante per supportare l'accesso a più applicazioni al dispositivo. Se due applicazioni configurano un'analisi nello stesso dispositivo contemporaneamente, esiste solo una copia del microdriver in esecuzione. In questa situazione il microdriver viene chiamato con una delle due strutture SCANINFO diverse a seconda della quale l'applicazione sta tentando di accedere al dispositivo.