多頁傳輸期間的驅動程式行為
驅動程式不需要直接支援資料夾取得。 如果驅動程式不支援,WIA 服務會遞迴地逐步執行專案樹狀結構,並在所有已設定WIA_IPA_ITEM_FLAGSwiaItemTypeTransfer位的專案上呼叫IWiaMiniDrv::d rvAcquireItemData。
直接支援資料夾取得的驅動程式必須公開資料夾專案上的 WIA_IPS_TRANSFER_CAPABILITIES 屬性。 這個屬性是旗標屬性,而且應該設定WIA_TRANSFER_ACQUIRE_CHILDREN_CAPABLE位,以指出它直接支援資料夾取得功能。 此支援表示驅動程式本身會逐步引導樹狀結構來傳輸相關專案,WIA 服務只會在資料夾上呼叫 IWiaMiniDrv::d rvAcquireItemData 。 驅動程式可以測試WIA_TRANSFER_ACQUIRE_CHILDREN位的 lFlags 參數,以區分一般傳輸要求和資料夾取得要求。
驅動程式直接支援資料夾擷取的主要原因之一是效率。 驅動程式可能會比在每一個專案上來電轉接的 WIA 服務更有效率地傳輸多個專案。
這種情況的一個好範例是在多區域掃描期間。 當掃描器的平面上偵測到多個區域 (例如個別圖片) 時,這些區域可能會以「扁平化」專案的子系來表示。 下圖顯示這種情況的範例。
如果在 「Flatbed」 的每個子專案上呼叫了個別傳輸,則驅動程式會執行三個不同的掃描,這可能會很耗時。 不過,如果在 「Flatbed」 上要求資料夾取得,驅動程式會執行一次掃描、分解它,並將三個不同的區域交回 (,這通常較快) 。
注意 建議您只讓更複雜的驅動程式直接支援資料夾取得,因為驅動程式負責執行專案樹狀結構並採取適當的動作。