Compartir a través de


Comportamiento del controlador durante las transferencias de varias páginas

Los controladores no tienen que admitir la adquisición de carpetas directamente. Si los controladores no lo admiten, el servicio WIA recorrerá recursivamente el árbol de elementos y llamará a IWiaMiniDrv::d rvAcquireItemData en todos los elementos que tengan el bit WiaItemTypeTransfer establecido en la propiedad WIA_IPA_ITEM_FLAGS .

Los controladores que admiten la adquisición de carpetas directamente deben exponer la propiedad WIA_IPS_TRANSFER_CAPABILITIES en el elemento de carpeta. Esta propiedad es una propiedad flag y debe tener establecido el bit WIA_TRANSFER_ACQUIRE_CHILDREN_CAPABLE para indicar que admite directamente la funcionalidad de adquisición de carpetas. Esta compatibilidad significa que el propio controlador recorrerá el árbol para transferir los elementos pertinentes y el servicio WIA simplemente llamará a IWiaMiniDrv::d rvAcquireItemData en la carpeta. El controlador puede diferenciar entre una solicitud de transferencia normal y una solicitud de adquisición de carpetas probando el parámetro lFlags para el bit de WIA_TRANSFER_ACQUIRE_CHILDREN.

Una de las principales razones por las que un controlador admitiría la adquisición de carpetas directamente es la eficiencia. Un controlador puede transferir varios elementos de forma mucho más eficaz que hacer que el servicio WIA llame a una transferencia en cada uno de los elementos.

Un buen ejemplo de esta situación es durante un examen de varias regiones. Cuando se detectan varias regiones (como imágenes independientes) en el plano de un escáner, podrían representarse como elementos secundarios del elemento "Plano". En la ilustración siguiente se representa un ejemplo de esta situación.

diagrama que ilustra un árbol de elementos para el examen de varias regiones.

Si se llamó a una transferencia independiente en cada uno de los elementos secundarios de "Flatbed", el controlador realizaría tres exámenes independientes, lo que podría llevar mucho tiempo. Sin embargo, si se solicitó una adquisición de carpetas en "Flatbed", el controlador realizaría un examen, lo descomponía y devolvía tres regiones independientes (lo que suele ser más rápido).

Nota Se recomienda que solo los controladores más sofisticados admitan directamente la adquisición de carpetas, ya que el controlador es responsable de caminar el árbol de elementos y realizar la acción adecuada.