Freigeben über


Treiberverhalten bei mehrseitigen Übertragungen

Treiber müssen den Ordnerabruf nicht direkt unterstützen. Wenn die Treiber dies nicht unterstützen, führt der WIA-Dienst rekursiv die Elementstruktur durch und ruft IWiaMiniDrv::d rvAcquireItemData für alle Elemente auf, für die das WiaItemTypeTransfer-Bit in der WIA_IPA_ITEM_FLAGS-Eigenschaft festgelegt ist.

Treiber, die den Ordnerabruf direkt unterstützen, müssen die eigenschaft WIA_IPS_TRANSFER_CAPABILITIES für das Ordnerelement verfügbar machen. Bei dieser Eigenschaft handelt es sich um eine Flageigenschaft, und das bit WIA_TRANSFER_ACQUIRE_CHILDREN_CAPABLE sollte festgelegt sein, um anzugeben, dass sie die Ordnererfassungsfunktionalität direkt unterstützt. Diese Unterstützung bedeutet, dass der Treiber selbst die Struktur durchlaufen wird, um die relevanten Elemente zu übertragen, und der WIA-Dienst ruft einfach IWiaMiniDrv::d rvAcquireItemData für den Ordner auf. Der Treiber kann zwischen einer normalen Übertragungsanforderung und einer Ordnererwerbsanforderung unterscheiden, indem er den lFlags-Parameter für das WIA_TRANSFER_ACQUIRE_CHILDREN Bit testet.

Einer der Standard Gründe, warum ein Treiber die Ordnererfassung direkt unterstützen würde, ist die Effizienz. Ein Treiber kann mehrere Elemente weitaus effizienter übertragen, als der WIA-Dienst eine Übertragung für jedes element aufrufen zu lassen.

Ein gutes Beispiel für diese Situation ist eine Überprüfung in mehreren Regionen. Wenn mehrere Regionen (z. B. separate Bilder) auf dem Flachbett eines Scanners erkannt werden, können sie als untergeordnete Bereiche aus dem Flatbed-Element dargestellt werden. Ein Beispiel für diese Situation ist in der folgenden Abbildung dargestellt.

Diagramm, das eine Elementstruktur für die Überprüfung in mehreren Regionen veranschaulicht.

Wenn für jedes der untergeordneten Elemente von "Flatbed" eine separate Übertragung aufgerufen wird, führt der Treiber drei separate Überprüfungen durch, was zeitaufwändig sein kann. Wenn jedoch ein Ordnerabruf für "Flatbed" angefordert wurde, führt der Treiber einen Scan durch, zerlegt ihn und gibt drei separate Regionen zurück (was oft schneller ist).

Hinweis Es wird empfohlen, dass nur komplexere Treiber den Ordnererwerb direkt unterstützen, da der Treiber dafür verantwortlich ist, die Elementstruktur zu durchlaufen und die entsprechenden Maßnahmen zu ergreifen.