다음을 통해 공유


다중 페이지 전송 중 드라이버 동작

드라이버는 폴더 취득을 직접 지원할 필요가 없습니다. 드라이버가 지원하지 않는 경우 WIA 서비스는 항목 트리를 재귀적으로 안내하고 WIA_IPA_ITEM_FLAGS 속성에 WiaItemTypeTransfer 비트가 설정된 모든 항목에서 IWiaMiniDrv::d rvAcquireItemData를 호출합니다.

폴더 취득을 직접 지원하는 드라이버는 폴더 항목에 WIA_IPS_TRANSFER_CAPABILITIES 속성을 노출해야 합니다. 이 속성은 플래그 속성이며 폴더 획득 기능을 직접 지원함을 나타내기 위해 WIA_TRANSFER_ACQUIRE_CHILDREN_CAPABLE 비트가 설정되어 있어야 합니다. 이 지원은 드라이버 자체가 트리를 따라 관련 항목을 전송하고 WIA 서비스는 폴더에서 IWiaMiniDrv::d rvAcquireItemData 를 호출하기만 하면 됩니다. 드라이버는 WIA_TRANSFER_ACQUIRE_CHILDREN 비트에 대한 lFlags 매개 변수를 테스트하여 일반 전송 요청과 폴더 획득 요청을 구분할 수 있습니다.

드라이버가 폴더 취득을 직접 지원하는 기본 이유 중 하나는 효율성입니다. 드라이버는 WIA 서비스가 각 항목에 대한 전송을 호출하는 것보다 훨씬 더 효율적으로 여러 항목을 전송할 수 있습니다.

이 상황의 좋은 예는 다중Region 검사 중입니다. 스캐너의 플랫베드에서 여러 영역(예: 별도의 사진)이 감지되면 "Flatbed" 항목에서 자식으로 표시될 수 있습니다. 이 상황의 예는 다음 그림에 표시됩니다.

다중 리소스 검사를 위한 항목 트리를 보여 주는 다이어그램.

"Flatbed"의 각 자식 항목에 대해 별도의 전송이 호출된 경우 드라이버는 세 번의 별도 검사를 수행하므로 시간이 오래 걸릴 수 있습니다. 그러나 "Flatbed"에서 폴더 취득이 요청된 경우 드라이버는 한 번의 검색을 수행하고, 분해하고, 세 개의 개별 지역(종종 더 빠른 경우)을 다시 전달합니다.

참고 드라이버가 항목 트리를 걷고 적절한 작업을 수행해야 하므로 보다 정교한 드라이버만 폴더 취득을 직접 지원하는 것이 좋습니다.