Herausfordern eines nicht verbundenen Scanners mit dem WSD Challenger

Wichtig

Die WSD-Challenger-Funktionalität ist veraltet, und die gesamte WSD Challenger-bezogene Dokumentation wird in der Dokumentation zu früheren Versionen archiviert.

Ein Webdienstscannertreiber kann einen nicht verbundenen Scanner auffordern, die Kommunikation mit dem Gerät wiederherzustellen, wenn der Scanner wieder online ist. Um einen nicht verbundenen Scanner anzufordern, verwendet der Treiber die WSD Challenger-DLL (WSDCHNGR.DLL), die mit Windows Vista bereitgestellt wird. Der WIA-Dienst (Windows Image Acquisition) verwendet auch WSDCHNGR.DLL , um alle WSDScan-Scannergeräte aktiv zu überwachen und Treibern zu ermöglichen, auf eine Herausforderung nach einem Gerätekommunikationsfehler zu reagieren.

Die Herausforderung für eine Geräteklasse wird von der WSDCHNGRChallengeDeviceClass WSD Challenge-Funktion initiiert. Ein WIA-Treiber muss diese Funktion in der Regel nicht direkt aufrufen, da der WIA-Dienst sie für alle WIA-Geräte aufruft.

Da ein WIA-Treiber kurz nach dem Trennen des unterstützten Geräts entladen wird, kann der Treiber selbst nichtWSDCHNGR.DLL geladen werden. Der Treiber kann daher WSD-Herausforderungen nicht weiter überwachen und kann keine erneute Verbindung mit dem Gerät herstellen, wenn es wieder online ist. Stattdessen können WIA-Treiber, die mithilfe des WSDScan.sys Kernelmodustreibers installiert werden, den WIA-Dienst verwenden, um die Geräteklasse herauszufordern und die Herausforderung der Überwachung zu ermöglichen, die Fortsetzung nach dem Entladen des Treibers zu ermöglichen.

In der Regel verwendet ein WIA-Treiber, derWSDScan.sys verwendet, nur die folgenden WSD-Challenger-Funktionen:

WSDCHNGRInitialize
Initialisiert die WSD-Challenger-Schnittstelle, die vom WIA-Treiberclient verwendet wird. Rufen Sie diese Funktion auf, wenn der Treiber geladen wird.

WSDCHNGRShutdown
Beendet die WSD Challenger-Schnittstelle, die vom WIA-Treiberclient verwendet wird. Rufen Sie diese Funktion auf, wenn der Treiber entladen wird.

Wenn es sich beim Herunterfahren um ein Gerät der WSDScan-Klasse handelt, führt der WIA-Dienst weiterhin die WSD-Anforderungsüberwachung für das Gerät aus, nachdem der Treiber entladen und seine Webdienst-Challenge-Schnittstelle beendet wurde.

WSDCHNGRRegisterDeviceToChallenge
Registriert das Anfechtungsgerät. Rufen Sie diese Funktion auf, nachdem für den Treiber ein potenzieller Kommunikationsfehler aufgetreten ist. Dasselbe Gerät kann mehrmals für eine Challenge registriert werden. WSDCHNGRRegisterDeviceToChallenge gibt S_OK zurück, wenn das erste Gerät erfolgreich registriert wurde. Diese Funktion gibt S_FALSE zurück, wenn sie für ein bereits registriertes Gerät aufgerufen wird, um eine Anfechtung zu erhalten.

Die folgenden Codebeispiele zeigen, wie Sie diese WSD-Challenge-Funktionen verwenden, um den WSD-Challenger zu initialisieren und das Scannergerät für herausforderungen nach potenziellen Kommunikationsfehlern zu registrieren:

Makrobeispiel zum Filtern von Fehlercodes

Codebeispiel für die Herausforderung eines potenziell getrennten Geräts

Codebeispiel für die Implementierung von Hilfsmethoden

Weitere Informationen zu den Definitionen und Variablen, die in diesen Beispielen verwendet werden, finden Sie unter Definitionen und Variablen, die in den Beispielen verwendet werden.