Partilhar via


Comportamento do driver durante transferências de várias páginas

Os drivers não precisam suportar a aquisição de pastas diretamente. Se os drivers não oferecerem suporte, o serviço WIA percorre recursivamente a árvore de itens e chama IWiaMiniDrv::drvAcquireItemData em todos os itens que têm o bit WiaItemTypeTransfer definido na propriedade WIA_IPA_ITEM_FLAGS.

Os drivers que suportam a aquisição de pasta diretamente devem expor a propriedade WIA_IPS_TRANSFER_CAPABILITIES no item de pasta. Essa propriedade é uma propriedade flag e deve ter o bit WIA_TRANSFER_ACQUIRE_CHILDREN_CAPABLE definido para indicar que ela suporta diretamente a funcionalidade de aquisição de pasta. Esse suporte significa que o próprio driver percorrerá a árvore para transferir os itens relevantes e o serviço WIA simplesmente chamará IWiaMiniDrv::d rvAcquireItemData na pasta. O driver pode diferenciar entre uma solicitação de transferência normal e uma solicitação de aquisição de pasta testando o parâmetro lFlags para o bit WIA_TRANSFER_ACQUIRE_CHILDREN.

Uma das principais razões pelas quais um driver apoiaria diretamente a aquisição de pastas é a eficiência. Um driver pode transferir vários itens de forma muito mais eficiente do que fazer com que o serviço WIA chame uma transferência para cada item separadamente.

Um bom exemplo dessa situação é durante uma varredura multirregião. Quando várias regiões (como imagens separadas) são detetadas na mesa digitalizadora de um scanner, elas podem ser representadas como crianças fora do item "Mesa digitalizadora". Um exemplo desta situação está representado na figura seguinte.

Diagrama ilustrando uma árvore de itens para varredura em várias regiões.

Se uma transferência separada fosse chamada em cada um dos itens filho de "Flatbed", o controlador realizaria três análises separadas, o que poderia ser demoroso. No entanto, se uma aquisição de dados a partir de uma pasta for solicitada em "Flatbed", o driver executa uma única digitalização, decompondo-a e retornando três regiões distintas (o que geralmente é mais rápido).

Observação Recomendamos que apenas controladores mais sofisticados suportem diretamente a aquisição de pastas, porque o controlador é responsável por percorrer a árvore de itens e tomar as medidas apropriadas.