Comandos necessários
O seguinte conjunto de comandos necessários deve ser implementado por cada microdriver.
CMD_GETCAPABILITIES
Chamado pelo Driver de Flatbed wia para obter informações de evento de botão. Três membros da estrutura val passada devem ser preenchidos: lVal deve ser definido como o número de botões; pGuid deve ser definido como uma matriz de GUIDs de evento; PpButtonNames podem, opcionalmente, ser definidos como uma matriz WCHAR* que contém os nomes de botão na mesma ordem em que estão em pGuid (por exemplo, "Botão Digitalizar" ou "Botão Fax"). Se ppButtonNames estiver definido como NULL, o Driver de Flatbed wia criará nomes de botão genéricos. As matrizes podem ser alocadas em resposta a CMD_INITIALIZE e liberadas em CMD_UNINITIALIZE.
CMD_INITIALIZE
Chamado pelo Driver de Flatbed do WIA para inicializar o microdriver e definir identificadores de E/S do dispositivo como valores válidos. Esse comando será enviado para o microdriver quando o serviço WIA chamar o método IWiaMiniDrv::d rvInitializeWia no Driver flatbed do WIA.
O Driver de Flatbed wia criará automaticamente um identificador de E/S de dispositivo e o colocará no membro da matriz DeviceIOHandles da estrutura SCANINFO passada no índice 0. O microdriver deve usar esse identificador quando precisar se comunicar com o dispositivo. Se o microdriver precisar de identificadores de dispositivo adicionais (por exemplo, para usar vários pipes USB em massa), eles poderão ser criados e armazenados na matriz DeviceIOHandles até um número máximo de MAX_IO_HANDLES. O Driver de Flatbed wia fechará automaticamente o identificador no índice 0, pois ele criou esse identificador durante a inicialização. Os outros identificadores devem ser fechados pelo microdriver em resposta a CMD_UNINITIALIZE.
Como parte desse comando, o microdriver também deve inicializar todos os valores na estrutura SCANINFO . O microdriver deve definir os membros SupportedDataTypes, IntensityRange, ContrastRange, BedWidth e BedHeight da estrutura SCANINFO, para que o Driver de Flatbed wia possa validar automaticamente esses valores em relação aos intervalos legais para o dispositivo.
CMD_RESETSCANNER
Chamado pelo Driver de Flatbed wia para redefinir o dispositivo em resposta a uma solicitação de serviço WIA. O microdriver deve definir o dispositivo como seu estado de ativação. No Windows Vista, o WiA Flatbed Driver não usa esse comando. No entanto, os microdrivers devem continuar a dar suporte a esse comando para garantir a operação correta no Windows XP e, possivelmente, com uma versão futura do Driver Flatbed wia que pode usar esse comando.
CMD_SETDATATYPE
Chamado pelo Driver de Flatbed wia para definir o tipo de dados para a verificação. Um dos seguintes valores é passado no membro lVal da estrutura val passada:
WIA_DATA_THRESHOLD – preto/branco de 1 bit
WIA_DATA_GRAYSCALE – escala de cinza de 8 bits
WIA_DATA_COLOR – cor de 24 bits
O microdriver deve armazenar o valor no membro DataType da estrutura SCANINFO passada.
CMD_SETCONTRAST
Chamado pelo Driver de Flatbed wia para definir o valor de contraste para a verificação. O valor de contraste desejado é passado no membro lVal da estrutura val passada. O valor −1000 deve ser interpretado como o menor valor de contraste, 0 nominal e 1000 o contraste máximo do dispositivo. O microdriver deve armazenar o valor no membro Contrast da estrutura SCANINFO passada.
CMD_SETINTENSITY
Chamado pelo Driver de Flatbed wia para definir o valor de intensidade ou brilho para a verificação. O valor de intensidade desejado é passado no membro lVal da estrutura val passada. O valor −1000 deve ser interpretado como o menor valor de brilho, 0 nominal e 1000 o brilho máximo do dispositivo. O microdriver deve armazenar o valor no membro Intensity da estrutura SCANINFO passada.
CMD_SETXRESOLUTION
Chamado pelo Driver de Flatbed wia para definir a resolução de verificação horizontal. A resolução desejada em pixels é passada no membro lVal da estrutura val passada. O microdriver deve armazenar o valor no membro XResolution da estrutura SCANINFO passada.
CMD_SETYRESOLUTION
Chamado pelo Driver de Flatbed wia para definir a resolução de verificação vertical. A resolução desejada em pixels é passada no membro lVal da estrutura val passada. O microdriver deve armazenar o valor no membro YResolution da estrutura SCANINFO passada.
CMD_STI_DEVICERESET
Chamado pelo Driver de Flatbed do WIA para redefinir o dispositivo em resposta a uma solicitação de Imagem Parada (STI). Esse comando normalmente é chamado apenas uma vez, durante a inicialização.
CMD_STI_DIAGNOSTIC
Chamado pelo WiA Flatbed Driver quando o usuário solicita um teste do dispositivo.
CMD_UNINITIALIZE
Não inicialize o microdriver e feche os identificadores de E/S do dispositivo. O WiA Flatbed Driver fechará automaticamente o identificador de E/S do dispositivo no membro da matriz DeviceIOHandles da estrutura SCANINFO , no índice 0. Esse comando será enviado para o microdriver quando o driver wia flatbed estiver descarregando.