Comportamento do driver durante transferências de várias páginas
Os drivers não precisam dar suporte diretamente à aquisição de pastas. Se os drivers não derem suporte a ele, o serviço WIA percorrerá recursivamente a árvore de itens e chamará IWiaMiniDrv::d rvAcquireItemData em todos os itens que têm o bit WiaItemTypeTransfer definido na propriedade WIA_IPA_ITEM_FLAGS .
Os drivers que dão suporte diretamente à aquisição de pasta devem expor a propriedade WIA_IPS_TRANSFER_CAPABILITIES no item de pasta. Essa propriedade é uma propriedade de sinalizador e deve ter a WIA_TRANSFER_ACQUIRE_CHILDREN_CAPABLE bit definida para indicar que ela dá suporte diretamente à 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 WIA_TRANSFER_ACQUIRE_CHILDREN bit.
Um dos motivos main que um driver daria suporte diretamente à aquisição de pastas é a eficiência. Um driver pode transferir vários itens com muito mais eficiência do que fazer com que o serviço WIA chame uma transferência em cada um dos itens.
Um bom exemplo dessa situação é durante uma verificação de várias regiões. Quando várias regiões (como imagens separadas) são detectadas no flatbed de um scanner, elas podem ser representadas como filhos fora do item "Flatbed". Um exemplo dessa situação é representado na figura a seguir.
Se uma transferência separada fosse chamada em cada um dos itens filho de "Flatbed", o driver executaria três verificações separadas, o que poderia ser demorado. No entanto, se uma aquisição de pasta fosse solicitada em "Flatbed", o driver executaria uma verificação, a decomporia e devolveria três regiões separadas (o que geralmente é mais rápido).
Nota Recomendamos que apenas motoristas mais sofisticados ofereçam suporte direto à aquisição de pastas, pois o motorista é responsável por percorrer a árvore de itens e tomar as medidas apropriadas.