Compartir a través de


Desafío de un escáner desconectado con el challenger de WSD

Importante

La funcionalidad de WSD Challenger ha quedado en desuso y toda la documentación relacionada con WSD Challenger se archivará en la documentación de versiones anteriores.

Un controlador de escáner de servicios web puede desafiar a un escáner desconectado para restablecer la comunicación con el dispositivo cuando el escáner vuelve a estar en línea. Para desafiar un analizador desconectado, el controlador usa el ARCHIVO DLL de WSD Challenger (WSDCHNGR.DLL) que se proporciona con Windows Vista. El servicio Windows Image Acquisition (WIA) también usa WSDCHNGR.DLL para supervisar activamente todos los dispositivos de escáner WSDScan y permitir que los controladores respondan a un desafío después de un error de comunicación del dispositivo.

El desafío de una clase de dispositivos se inicia mediante la función WSDCHNGRChallengeDeviceClass WSD Challenge. Normalmente, un controlador WIA no tiene que llamar directamente a esta función porque el servicio WIA lo llama para todos los dispositivos WIA.

Dado que un controlador WIA se descarga poco después del dispositivo que admite está desconectado, el propio controlador no puede mantener WSDCHNGR.DLL cargado. Por lo tanto, el controlador no puede seguir supervisando WSD desafiante y no puede volver a conectarse al dispositivo cuando vuelve a estar en línea. En su lugar, los controladores WIA que se instalan mediante el controlador en modo kernel deWSDScan.sys pueden usar el servicio WIA para desafiar la clase de dispositivo y permitir que el desafío de la supervisión continúe después de descargar el controlador.

Normalmente, un controlador WIA que usa WSDScan.sys usa solo las siguientes funciones de WSD Challenger:

WSDCHNGRInitialize
Inicializa la interfaz de WSD Challenger que usa el cliente del controlador WIA. Llame a esta función cuando se cargue el controlador.

WSDCHNGRShutdown
Apaga la interfaz de WSD Challenger que usa el cliente del controlador WIA. Llame a esta función cuando se descargue el controlador.

Cuando se produce este apagado, si el dispositivo es un dispositivo de clase WSDScan, el servicio WIA continúa ejecutando la supervisión de desafíos de WSD para el dispositivo después de que el controlador se haya descargado y finalizado su interfaz de desafío de servicios web.

WSDCHNGRRegisterDeviceToChallenge
Registra el dispositivo que se va a impugnar. Llame a esta función después de que el controlador encuentre cualquier posible error de comunicación. El mismo dispositivo se puede registrar para un desafío más de una vez. WSDCHNGRRegisterDeviceToChallenge devuelve S_OK si el primer dispositivo se registra correctamente. Esta función devuelve S_FALSE cuando se llama a para un dispositivo que ya está registrado para ser impugnado.

En los ejemplos de código siguientes se muestra cómo usar estas funciones de desafío de WSD para inicializar el challenger de WSD y cómo registrar el dispositivo del escáner para que sea difícil después de posibles errores de comunicación:

Ejemplo de macro para filtrar códigos de error

Ejemplo de código para desafiar un dispositivo potencialmente desconectado

Ejemplo de código para implementar métodos auxiliares

Para obtener más información sobre las definiciones y variables que se usan en estos ejemplos, vea Definiciones y variables usadas en los ejemplos.