Visão geral da arquitetura WIA
O WIA é implementado como um servidor fora do processo do COM (Component Object Model) para garantir a operação robusta dos aplicativos cliente.
O WIA tem três componentes main: o serviço WIA, a biblioteca de serviços de driver WIA e um driver de modo de usuário do fornecedor.
O serviço WIA enumera dispositivos de geração de imagens, recupera propriedades do dispositivo, configura eventos para dispositivos e cria objetos de dispositivo.
A biblioteca de serviços de driver WIA implementa todos os serviços que são independentes do dispositivo.
O driver de modo de usuário do fornecedor mapeia as propriedades e os comandos do WIA para o dispositivo específico. Há dois tipos de drivers de modo de usuário do fornecedor wia:
Minidriver: esse é o tipo mais comum de driver de fornecedor. É um objeto COM que implementa as interfaces do minidriver WIA. Um fornecedor pode aproveitar todos os recursos e funcionalidades do WIA com esse tipo de driver.
Microdriver: esse driver é muito mais limitado do que um minidriver e, portanto, mais simples de desenvolver. Ele é usado principalmente para dispositivos de scanner básicos. Este driver não é um objeto COM; é uma DLL que exporta algumas funções. Os microdrivers não podem ser usados para dispositivos de câmera.
O diagrama a seguir ilustra a arquitetura wia.
Aplicativos de geração de imagens
Os aplicativos de imagem não se comunicam diretamente com o minidriver, mas se comunicam com o serviço WIA por meio da API (interface de programação de aplicativo) WIA para acessar imagens e adquirir dados de dispositivos WIA. Esses aplicativos podem usar uma interface do usuário comum fornecida pelo sistema ou uma interface do usuário fornecida pelo fornecedor. Para obter mais informações sobre a API wia para aplicativos de geração de imagens, consulte a documentação do SDK do Microsoft Windows.
Serviço WIA
O serviço WIA é um componente fornecido pelo sistema que se comunica com aplicativos de imagem e minidrivers WIA. O serviço WIA é executado em um processo separado dos aplicativos e no mesmo processo que os minidrivers WIA. Os aplicativos direcionam suas solicitações de dispositivo para o serviço WIA, que, por sua vez, direciona as solicitações para o minidriver apropriado por meio da DDI (interface do driver de dispositivo) WIA.
Biblioteca de Serviços de Driver wia
A biblioteca de serviços de driver WIA é um componente fornecido pelo sistema que fornece funções auxiliares para minidrivers WIA. Um minidriver pode chamar funções auxiliares para executar tarefas como as seguintes:
Inicialize a árvore de itens do driver WIA.
Ler, gravar e validar propriedades do dispositivo.
Transferir dados.
Como alternativa, um minidriver pode executar essas tarefas em si. Aproveitando as funções auxiliares, você pode reduzir o tempo de desenvolvimento e o tamanho de um minidriver WIA enquanto ainda tem a flexibilidade de desenvolver soluções individuais.
WIA User-Mode Minidrivers
Os minidrivers WIA são componentes de modo de usuário fornecidos pelo fornecedor que direcionam alterações de propriedade wia e comandos para um dispositivo de geração de imagens. Um minidriver implementa o WIA DDI, que é chamado pelo serviço WIA para se comunicar com o minidriver.
Um minidriver WIA implementa as interfaces de minidriver WIA padrão. O minidriver se comunica com o dispositivo de geração de imagens por meio de um driver padrão do modo kernel do Microsoft Windows, como o driver USB. O minidriver se comunica com o driver do modo kernel chamando as funções CreateFile, ReadFile, WriteFile e DeviceIoControl Win32 (descritas na documentação do SDK do Microsoft Windows).
Um aplicativo de imagens não pode fazer chamadas diretas para o minidriver WIA. Somente o serviço WIA tem permissão para chamar o driver diretamente.
Drivers de E/S de kernel
Os drivers de imagem ainda no modo kernel são componentes fornecidos pelo sistema ou fornecidos por IHV que fornecem dados de ou para o dispositivo de imagem parada. Um driver de imagem ainda no modo kernel é específico do barramento.
A Microsoft fornece drivers de imagem ainda no modo kernel baseados em WDM para os ônibus USB, SCSI e IEEE 1394. Consulte Acessando drivers de Kernel-Mode para dispositivos de imagem ainda para obter mais informações.
Um fornecedor deve fornecer um driver de imagem ainda no modo kernel somente se seu dispositivo de geração de imagens for incompatível com drivers de E/S no modo kernel fornecidos pela Microsoft.