다음을 통해 공유


WIA 마이크로드라이버 만들기

많은 플랫베드 스캐너는 비슷한 방식으로 제어됩니다. 모델 간의 일반적인 동작은 WIA 플랫베드 드라이버라는 Microsoft 제공 일반 드라이버로 추상화되었습니다. 이 드라이버는 스캐너 공급업체에서 제공하는 마이크로드라이버라는 DLL을 호출하여 필요한 디바이스별 동작을 구현합니다. WIA 플랫베드 드라이버와 마이크로드라이버를 함께 WIA 미니드라이버로 사용할 수 있습니다. 마이크로 드라이버 사용의 장점은 구현 및 디버그가 매우 쉽다는 것입니다. 마이크로드라이버에서 모든 스캐너를 지원하는 것은 아닙니다. 이중 또는 기타 고급 기능이 없는 간단한 디바이스 또는 기본 기능 드라이버가 필요한 경우에 가장 적합합니다.

참고 이 섹션에 설명된 WIA 마이크로 드라이버는 WIA 1.0입니다. 현재 WIA 2.0에 해당하는 WIA 마이크로드라이버 모델이 없습니다. WIA 2.0(Windows Vista 이상)을 지원하는 Windows 버전이 있는 컴퓨터에서 실행되도록 WIA 마이크로드라이버를 개발하는 경우 이 WIA 마이크로드라이버가 다른 WIA 1.0 디바이스와 마찬가지로 작동하며 WIA 1.0 호환 모드의 WIA 2.0 애플리케이션에서 사용됩니다.

다음 다이어그램은 WIA 마이크로 드라이버 아키텍처의 구성 요소를 보여 줍니다.

wia 마이크로드라이버 아키텍처의 구성 요소를 보여 주는 다이어그램

WIA 플랫베드 드라이버는 마이크로드라이버에서 WIA 마이크로드라이버 함수를 호출하여 WIA 서비스의 요청을 처리합니다. 마이크로 드라이버는 이러한 각 함수를 구현해야 합니다. SCANINFO 구조는 스캔 창 및 해상도와 같은 검사 매개 변수를 저장하고 전달하기 위해 마이크로 드라이버에 전달됩니다. WIA 플랫베드 드라이버는 SCANINFO 구조체에서 값을 읽지만 기록하지는 않습니다. SCANINFO 멤버를 설정하는 것은 마이크로드라이버의 책임입니다.

마이크로 드라이버는 검사에 대한 매개 변수를 저장하지 않아야 하지만 SCANINFO 구조에 저장된 값에 의존해야 합니다. 이는 디바이스에 대한 여러 애플리케이션 액세스를 지원하는 데 중요합니다. 두 애플리케이션이 동일한 디바이스에서 동시에 검사를 설정하는 경우 실행 중인 마이크로드라이버 복사본이 하나만 있습니다. 이 경우 마이크로드라이버가 디바이스에 액세스하려는 애플리케이션에 따라 두 개의 다른 SCANINFO 구조 중 하나로 호출됩니다.