Comandos necesarios
Cada microdriver debe implementar el siguiente conjunto de comandos necesarios.
CMD_GETCAPABILITIES
Llamado por el controlador WIA Flatbed para obtener información de eventos de botón. Se deben rellenar tres miembros de la estructura VAL pasada: lVal debe establecerse en el número de botones; pGuid debe establecerse en una matriz de GUID de eventos; PpButtonNames se puede establecer opcionalmente en una matriz WCHAR* que contenga los nombres de los botones en el mismo orden que están en pGuid (por ejemplo, "Botón de examen" o "Botón de fax"). Si ppButtonNames está establecido en NULL, el controlador wia plano creará nombres de botón genéricos. Las matrices se pueden asignar en respuesta a CMD_INITIALIZE y liberarse en CMD_UNINITIALIZE.
CMD_INITIALIZE
Lo llama el controlador wia plano para inicializar el microdriver y establecer los identificadores de E/S del dispositivo en valores válidos. Este comando se enviará al microdriver cuando el servicio WIA llame al método IWiaMiniDrv::d rvInitializeWia en el controlador WIA Flatbed.
El controlador wia plano creará automáticamente un identificador de E/S de dispositivo y lo colocará en el miembro de la matriz DeviceIOHandles de la estructura SCANINFO pasada en el índice 0. El microdriver debe usar este identificador cuando necesite comunicarse con el dispositivo. Si el microdriver necesita controladores de dispositivo adicionales (por ejemplo, para usar varias canalizaciones USB masivas), se pueden crear y almacenar en la matriz DeviceIOHandles hasta un número máximo de MAX_IO_HANDLES. WiA Flatbed Driver cerrará automáticamente el identificador en el índice 0, ya que creó ese identificador durante la inicialización. El microdriver debe cerrar los demás identificadores en respuesta a CMD_UNINITIALIZE.
Como parte de este comando, el microdriver también debe inicializar todos los valores de la estructura SCANINFO . El microdriver debe establecer los miembros SupportedDataTypes, IntensityRange, ContrastRange, BedWidth y BedHeight de la estructura SCANINFO, para que el controlador WIA Flatbed pueda validar automáticamente estos valores con respecto a los intervalos legales del dispositivo.
CMD_RESETSCANNER
Llamado por el controlador wia plano para restablecer el dispositivo en respuesta a una solicitud de servicio WIA. El microdriver debe establecer el dispositivo en su estado de encendido. En Windows Vista, el controlador WIA flatbed no usa este comando. Sin embargo, los microdrivers deben seguir admitiendo este comando para garantizar una operación correcta en Windows XP y, posiblemente, con una versión futura del controlador WIA Flatbed que podría usar este comando.
CMD_SETDATATYPE
Llamado por el controlador wia plano para establecer el tipo de datos para el examen. Uno de los siguientes valores se pasa en el miembro lVal de la estructura VAL pasada:
WIA_DATA_THRESHOLD – blanco/negro de 1 bits
WIA_DATA_GRAYSCALE : escala de grises de 8 bits
WIA_DATA_COLOR : color de 24 bits
El microdriver debe almacenar el valor en el miembro DataType de la estructura SCANINFO pasada.
CMD_SETCONTRAST
Llamado por el controlador wia plano para establecer el valor de contraste para el examen. El valor de contraste deseado se pasa en el miembro lVal de la estructura VAL pasada. El valor −1000 debe interpretarse como el valor de contraste más bajo, 0 nominal y 1000 el contraste máximo del dispositivo. El microdriver debe almacenar el valor en el miembro Contrast de la estructura SCANINFO pasada.
CMD_SETINTENSITY
Llamado por el controlador wia plano para establecer el valor de intensidad o brillo del examen. El valor de intensidad deseado se pasa en el miembro lVal de la estructura VAL pasada. El valor −1000 debe interpretarse como el valor de brillo más bajo, 0 nominal y 1000 el brillo máximo del dispositivo. El microdriver debe almacenar el valor en el miembro Intensidad de la estructura SCANINFO pasada.
CMD_SETXRESOLUTION
Llamado por el controlador wia plano para establecer la resolución de examen horizontal. La resolución deseada en píxeles se pasa en el miembro lVal de la estructura VAL pasada. El microdriver debe almacenar el valor en el miembro XResolution de la estructura SCANINFO pasada.
CMD_SETYRESOLUTION
Llamado por el controlador wia plano para establecer la resolución de examen vertical. La resolución deseada en píxeles se pasa en el miembro lVal de la estructura VAL pasada. El microdriver debe almacenar el valor en el miembro YResolution de la estructura SCANINFO pasada.
CMD_STI_DEVICERESET
Lo llama el controlador de wia plana para restablecer el dispositivo en respuesta a una solicitud still image (STI). Normalmente, este comando se llama solo una vez durante la inicialización.
CMD_STI_DIAGNOSTIC
Lo llama el controlador wia plano cuando el usuario solicita una prueba del dispositivo.
CMD_UNINITIALIZE
Desinicialice el microdriver y cierre los identificadores de E/S del dispositivo. El controlador wia plano cerrará automáticamente el identificador de E/S del dispositivo en el miembro de la matriz DeviceIOHandles de la estructura SCANINFO , en el índice 0. Este comando se enviará al microdriver cuando se descargue el controlador WIA Flatbed.