Commandes requises
L’ensemble de commandes requis suivant doit être implémenté par chaque microdriver.
CMD_GETCAPABILITIES
Appelé par le pilote WIA Flatbed pour obtenir des informations sur l’événement de bouton. Trois membres de la structure VAL passée doivent être renseignés : lVal doit être défini sur le nombre de boutons ; pGuid doit être défini sur un tableau de GUID d’événements ; ppButtonNames peut éventuellement être défini sur un tableau WCHAR* qui contient les noms de boutons dans le même ordre que dans pGuid (par exemple, « Bouton Analyser » ou « Bouton Télécopie »). Si ppButtonNames a la valeur NULL, le pilote à plat WIA crée des noms de boutons génériques. Les tableaux peuvent être alloués en réponse à CMD_INITIALIZE et libérés dans CMD_UNINITIALIZE.
CMD_INITIALIZE
Appelé par le pilote à plat WIA pour initialiser le microdriver et définir les poignées d’E/S d’appareil sur des valeurs valides. Cette commande est envoyée au microdriver lorsque le service WIA appelle la méthode IWiaMiniDrv::d rvInitializeWia sur le pilote à plat WIA.
Le pilote à plat WIA crée automatiquement un handle d’E/S d’appareil et le place dans le tableau DeviceIOHandles membre de la structure SCANINFO passée à l’index 0. Le microdriver doit utiliser cette poignée lorsqu’il doit communiquer avec l’appareil. Si le microdriver a besoin de poignées d’appareil supplémentaires (par exemple, pour utiliser plusieurs canaux USB en bloc), ils peuvent être créés et stockés dans le tableau DeviceIOHandles jusqu’à un nombre maximal de MAX_IO_HANDLES. Le pilote à plat WIA ferme automatiquement le handle à l’index 0, car il a créé ce handle lors de l’initialisation. Les autres poignées doivent être fermées par le microdriver en réponse à CMD_UNINITIALIZE.
Dans le cadre de cette commande, le microdriver doit également initialiser toutes les valeurs de la structure SCANINFO . Le microdriver doit définir les membres SupportedDataTypes, IntensityRange, ContrastRange, BedWidth et BedHeight de la structure SCANINFO, afin que le pilote à plat WIA puisse valider automatiquement ces valeurs par rapport aux plages légales de l’appareil.
CMD_RESETSCANNER
Appelé par le pilote à plat WIA pour réinitialiser l’appareil en réponse à une demande de service WIA. Le microdriver doit définir l’état de mise sous tension de l’appareil. Dans Windows Vista, le pilote à plat WIA n’utilise pas cette commande. Toutefois, les microdrivers doivent continuer à prendre en charge cette commande pour garantir un fonctionnement correct dans Windows XP et, éventuellement, avec une version ultérieure du pilote à plat WIA qui pourrait utiliser cette commande.
CMD_SETDATATYPE
Appelé par le pilote à plat WIA pour définir le type de données pour l’analyse. L’une des valeurs suivantes est transmise dans le membre lVal de la structure VAL passée :
WIA_DATA_THRESHOLD − noir/blanc 1 bits
WIA_DATA_GRAYSCALE − nuances de gris 8 bits
WIA_DATA_COLOR − couleur 24 bits
Le microdriver doit stocker la valeur dans le membre DataType de la structure SCANINFO passée.
CMD_SETCONTRAST
Appelé par le pilote à plat WIA pour définir la valeur de contraste de l’analyse. La valeur de contraste souhaitée est transmise dans le membre lVal de la structure VAL passée. La valeur −1000 doit être interprétée comme la valeur de contraste la plus faible, 0 nominale et 1000 le contraste maximal de l’appareil. Le microdriver doit stocker la valeur dans le membre Contrast de la structure SCANINFO passée.
CMD_SETINTENSITY
Appelé par le pilote à plat WIA pour définir la valeur d’intensité ou de luminosité de l’analyse. La valeur d’intensité souhaitée est passée dans le membre lVal de la structure VAL passée. La valeur −1000 doit être interprétée comme la valeur de luminosité la plus faible, 0 nominale et 1 000 la luminosité maximale de l’appareil. Le microdriver doit stocker la valeur dans le membre Intensity de la structure SCANINFO passée.
CMD_SETXRESOLUTION
Appelé par le pilote à plat WIA pour définir la résolution d’analyse horizontale. La résolution souhaitée en pixels est passée dans le membre lVal de la structure VAL passée. Le microdriver doit stocker la valeur dans le membre XResolution de la structure SCANINFO passée.
CMD_SETYRESOLUTION
Appelé par le pilote à plat WIA pour définir la résolution d’analyse verticale. La résolution souhaitée en pixels est passée dans le membre lVal de la structure VAL passée. Le microdriver doit stocker la valeur dans le membre YResolution de la structure SCANINFO passée.
CMD_STI_DEVICERESET
Appelé par le pilote à plat WIA pour réinitialiser l’appareil en réponse à une demande d’image fixe (STI). Cette commande n’est généralement appelée qu’une seule fois, lors de l’initialisation.
CMD_STI_DIAGNOSTIC
Appelé par le pilote à plat WIA lorsque l’utilisateur demande un test de l’appareil.
CMD_UNINITIALIZE
Annulez l’initialisation du microdriver et fermez les poignées d’E/S de l’appareil. Le pilote à plat WIA ferme automatiquement le handle d’E/S de l’appareil dans le membre du tableau DeviceIOHandles de la structure SCANINFO , à l’index 0. Cette commande est envoyée au microdriver lorsque le pilote WIA Flatbed est déchargé.