Création d’un microdriver WIA
De nombreux scanneurs à plat sont contrôlés de la même manière. Le comportement commun entre les modèles a été résumé dans un pilote commun fourni par Microsoft appelé pilote à plat WIA. Ce pilote appelle une DLL, appelée microdriver, fournie par le fournisseur du scanneur, qui implémente tout comportement nécessaire spécifique à l’appareil. Le pilote à plat WIA et le microdriver peuvent ensuite être utilisés comme minidriver WIA. L’avantage de l’utilisation d’un microdriver est qu’il est très facile à implémenter et à déboguer. Tous les scanneurs ne peuvent pas être pris en charge par un microdriver. Il convient le mieux aux appareils simples (sans duplexeur ou autres fonctionnalités avancées) ou lorsqu’un pilote de fonctionnalité de base est souhaité.
Note Les microdrivers WIA décrits dans cette section sont WIA 1.0. Il n’existe actuellement aucun modèle de microdriver WIA correspondant pour WIA 2.0. Si vous développez un microdriver WIA pour s’exécuter sur un ordinateur doté d’une version Windows prenant en charge WIA 2.0 (Windows Vista ou version ultérieure), ce microdriver WIA fonctionnera comme n’importe quel autre appareil WIA 1.0 et sera utilisé par les applications WIA 2.0 en mode de compatibilité WIA 1.0.
Le diagramme suivant montre les composants de l’architecture du microdriver WIA.
Le pilote à plat WIA gère les requêtes du service WIA en appelant les fonctions de microdriver WIA dans le microdriver. Le microdriver doit implémenter chacune de ces fonctions. Une structure SCANINFO est transmise au microdriver pour stocker et communiquer les paramètres d’analyse tels que la fenêtre d’analyse et la résolution. Le pilote à plat WIA lit les valeurs de la structure SCANINFO, mais ne les écrit jamais. Il incombe au microdriver de définir les membres SCANINFO.
Le microdriver ne doit pas stocker de paramètres pour une analyse, mais doit s’appuyer sur les valeurs stockées dans la structure SCANINFO . Cela est important pour prendre en charge l’accès de plusieurs applications à l’appareil. Si deux applications configurent une analyse sur le même appareil en même temps, il n’y a qu’une seule copie du microdriver en cours d’exécution. Dans ce cas, le microdriver est appelé avec l’une des deux structures SCANINFO différentes en fonction de l’application qui tente d’accéder à l’appareil.