Partager via


Challenger un scanneur déconnecté avec le WSD Challenger

Important

La fonctionnalité WSD Challenger a été déconseillée et toute la documentation liée à WSD Challenger sera archivée dans la documentation des versions précédentes.

Un pilote de scanneur de services web peut mettre au défi un scanneur déconnecté de rétablir la communication avec l’appareil lorsque le scanneur revient en ligne. Pour contester un scanneur déconnecté, le pilote utilise la DLL Challenger WSD (WSDCHNGR.DLL) fournie avec Windows Vista. Le service d’acquisition d’images Windows (WIA) utilise également WSDCHNGR.DLL pour surveiller activement tous les appareils de scanneur WSDScan et permettre aux pilotes de répondre à un défi suite à un échec de communication de l’appareil.

Le défi d’une classe d’appareils est lancé par la fonction WSDCHNGRChallengeDeviceClass WSD Challenge. Un pilote WIA n’a généralement pas besoin d’appeler directement cette fonction, car le service WIA l’appelle pour tous les appareils WIA.

Étant donné qu’un pilote WIA est déchargé peu de temps après la déconnexion de l’appareil qu’il prend en charge, le pilote lui-même ne peut pas conserver WSDCHNGR.DLL chargé. Le pilote, par conséquent, ne peut pas continuer à surveiller WSD difficile et ne peut pas se reconnecter à l’appareil lorsqu’il revient en ligne. Au lieu de cela, les pilotes WIA installés à l’aide du pilote en mode noyauWSDScan.syspeuvent utiliser le service WIA pour remettre en question la classe d’appareil et permettre à la surveillance difficile de continuer après le déchargement du pilote.

En règle générale, un pilote WIA qui utilise WSDScan.sys utilise uniquement les fonctions WSD Challenger suivantes :

WSDCHNGRInitialize
Initialise l’interface WSD Challenger que le client de pilote WIA utilise. Appelez cette fonction lorsque le pilote est chargé.

WSDCHNGRShutdown
Arrête l’interface WSD Challenger utilisée par le client de pilote WIA. Appelez cette fonction lorsque le pilote est déchargé.

Lorsque cet arrêt se produit, si l’appareil est un appareil de classe WSDScan, le service WIA continue d’exécuter la surveillance des défis WSD pour l’appareil une fois que le pilote a été déchargé et a arrêté son interface de défi des services web.

WSDCHNGRRegisterDeviceToChallenge
Enregistre l’appareil à contester. Appelez cette fonction une fois que le pilote rencontre un échec de communication potentiel. Le même appareil peut être inscrit pour un défi plusieurs fois. WSDCHNGRRegisterDeviceToChallenge retourne S_OK si le premier appareil est inscrit avec succès. Cette fonction retourne S_FALSE lorsqu’elle est appelée pour qu’un appareil déjà inscrit soit remis en question.

Les exemples de code suivants montrent comment utiliser ces fonctions WSD Challenge pour initialiser le WSD Challenger et comment inscrire l’appareil scanneur en cas de problème après des échecs de communication potentiels :

Exemple de macro pour filtrer les codes d’erreur

Exemple de code pour la mise en question d’un appareil potentiellement déconnecté

Exemple de code pour l’implémentation de méthodes d’assistance

Pour plus d’informations sur les définitions et variables utilisées dans ces exemples, consultez Définitions et variables utilisées dans les exemples.