Partager via


Comportement du pilote pendant les transferts multipage

Les pilotes n’ont pas besoin de prendre en charge directement l’acquisition de dossiers. Si les pilotes ne le prennent pas en charge, le service WIA parcourra de façon récursive l’arborescence des éléments et appelle IWiaMiniDrv::d rvAcquireItemData sur tous les éléments dont le bit WiaItemTypeTransfer est défini dans la propriété WIA_IPA_ITEM_FLAGS .

Les pilotes qui prennent directement en charge l’acquisition de dossiers doivent exposer la propriété WIA_IPS_TRANSFER_CAPABILITIES sur l’élément de dossier. Cette propriété est une propriété d’indicateur et doit avoir le WIA_TRANSFER_ACQUIRE_CHILDREN_CAPABLE bit défini pour indiquer qu’elle prend directement en charge la fonctionnalité d’acquisition de dossiers. Cette prise en charge signifie que le pilote lui-même parcourra l’arborescence pour transférer les éléments pertinents et que le service WIA appelle simplement IWiaMiniDrv::d rvAcquireItemData sur le dossier. Le pilote peut faire la différence entre une demande de transfert normale et une demande d’acquisition de dossier en testant le paramètre lFlags pour le bit WIA_TRANSFER_ACQUIRE_CHILDREN.

L’une des main raisons pour lesquelles un pilote prend directement en charge l’acquisition de dossiers est l’efficacité. Un pilote peut transférer plusieurs éléments beaucoup plus efficacement que d’avoir le service WIA appeler un transfert sur chacun des éléments.

Un bon exemple de cette situation est lors d’une analyse multirégion. Lorsque plusieurs régions (telles que des images distinctes) sont détectées sur le lit plat d’un scanneur, elles peuvent être représentées en tant qu’enfants de l’élément « Plat ». Un exemple de cette situation est représenté dans la figure suivante.

diagramme illustrant une arborescence d’éléments pour l’analyse multirégion.

Si un transfert distinct a été appelé sur chacun des éléments enfants de « Platbed », le pilote effectue trois analyses distinctes, ce qui peut prendre du temps. Toutefois, si l’acquisition d’un dossier a été demandée sur « Platbed », le pilote effectue une analyse, la décompose et retourne trois régions distinctes (ce qui est souvent plus rapide).

Note Nous recommandons que seuls les pilotes plus sophistiqués prennent directement en charge l’acquisition de dossiers, car le pilote est chargé de parcourir l’arborescence d’éléments et d’effectuer les actions appropriées.