驅動程式不需要直接支援資料夾擷取。 如果驅動程式不支援此功能,WIA 服務會遞迴遍歷專案樹,並在 WIA_IPA_ITEM_FLAGS 屬性中設有 WiaItemTypeTransfer 位的所有專案上呼叫 IWiaMiniDrv::drvAcquireItemData。
直接支援資料夾擷取的驅動程序必須公開資料夾專案上的 WIA_IPS_TRANSFER_CAPABILITIES 屬性。 此屬性是旗位屬性,且應設定WIA_TRANSFER_ACQUIRE_CHILDREN_CAPABLE位元,以表示它直接支持資料夾獲取功能。 此支援表示驅動程式本身會逐步遍歷樹狀結構以傳輸相關項目,而 WIA 服務只會在資料夾上呼叫 IWiaMiniDrv::drvAcquireItemData。 驅動程式可以透過測試 lFlags 參數中的 WIA_TRANSFER_ACQUIRE_CHILDREN 位元,來區分一般傳輸要求和資料夾擷取要求。
驅動程式直接支援資料夾擷取的主要原因之一是效率。 驅動程式可能會比讓 WIA 服務為每個項目呼叫傳輸更有效率地傳輸多個項目。
這種情況的一個很好的範例是在多重區域掃描期間。 當掃描器平板上偵測到多個區域(例如個別圖片)時,它們可能會以「平板床」專案外的子系來表示。 下圖顯示這種情況的範例。
如果在 「Flatbed」 的每個子專案上呼叫個別傳輸,則驅動程式會執行三個不同的掃描,這很耗時。 不過,如果在 「Flatbed」 上要求資料夾擷取,驅動程式會執行一次掃描、分解它,並交回三個不同的區域(通常較快)。
注意 我們建議只有更複雜的驅動程式直接支援資料夾獲取,因為驅動程式負責遍歷項目樹狀結構並採取適當的措施。