Partager via


Comportement du pilote pendant les transferts multipage

Les pilotes n’ont pas besoin de prendre en charge l’acquisition de dossiers directement. Si les pilotes ne le prennent pas en charge, le service WIA parcourra de manière récursive l’arborescence d’éléments et appellera 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 en charge l’acquisition de dossiers directement 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 bit WIA_TRANSFER_ACQUIRE_CHILDREN_CAPABLE défini pour indiquer qu’elle supporte directement la fonctionnalité d’acquisition de dossiers. Cette capacité fonctionnelle signifie que le pilote procédera lui-même à la navigation dans l’arborescence pour effectuer le transfert des éléments pertinents, et que le service WIA effectue simplement un appel à IWiaMiniDrv::drvAcquireItemData sur le dossier. Le pilote peut différencier 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 principales raisons pour lesquelles un pilote prend en charge directement l’acquisition de dossiers est l’efficacité. Un pilote peut transférer plusieurs éléments de manière bien plus efficace que le service WIA qui appelle un transfert pour 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 une acquisition de dossiers a été demandée sur « Platbed », le pilote effectuerait une analyse, la décomposerait et renvoyer 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 responsable de parcourir l’arborescence d’éléments et de prendre les mesures appropriées.