WIA 구성 요소
WIA는 사용자와 하드웨어 간에 중간되는 여러 계층으로 구성됩니다. 사용자는 선택적 사용자 인터페이스를 가질 수 있는 WIA 애플리케이션과 상호 작용합니다. 이 애플리케이션은 사용자의 요청을 미니드라이버로 보내는 WIA 서비스와 통신합니다. 미니드라이버가 관련 커널 모드 버스 드라이버와 통신합니다. 마지막으로 버스 드라이버는 하드웨어와 통신합니다. 다음 다이어그램에서는 WIA 인터페이스를 구성하는 소프트웨어 구성 요소를 보여 줍니다.
이미징 애플리케이션
이미징 애플리케이션은 미니드라이버와 직접 통신하지 않지만 WIA API(WIA 애플리케이션 프로그래밍 인터페이스)를 통해 WIA 서비스와 통신하여 이미지에 액세스하고 WIA 디바이스에서 데이터를 가져옵니다. 이러한 애플리케이션은 시스템 제공 UI(사용자 인터페이스) 또는 디바이스 제조업체에서 제공하는 인터페이스를 사용할 수 있습니다. UI는 전송할 항목을 선택하고 관련 속성을 설정하는 데 사용됩니다. UI가 해제된 후 선택한 항목을 전송하는 것은 드라이버가 아닌 애플리케이션입니다. 이미징 애플리케이션용 WIA API에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
WIA 서비스
WIA 서비스는 이미징 애플리케이션 및 WIA 미니드라이버와 통신하는 시스템 제공 구성 요소입니다. WIA 서비스는 다음 표에 나열된 COM 인터페이스의 컬렉션이며 모두 Microsoft Windows SDK 설명서에 설명되어 있습니다. WIA 서비스는 애플리케이션과 별도의 프로세스에서 실행되지만 WIA 미니드라이버와 동일한 프로세스에서 실행됩니다. 애플리케이션은 WIA 서비스에 디바이스 요청을 전달합니다. 그런 다음 WIA 서비스는 WIA DDI(WIA 디바이스 드라이버 인터페이스)를 통해 이러한 요청을 적절한 미니드라이버로 전달합니다. 다음 표에서는 WIA 애플리케이션이 구현할 수 있는 API를 나열합니다.
WIA API | Description |
---|---|
IEnumWIA_DEV_CAPS | WIA 하드웨어 디바이스의 기능을 열거합니다. 디바이스 기능에는 디바이스에서 지원하는 명령 및 이벤트가 포함됩니다. |
IEnumWIA_DEV_INFO | WIA 하드웨어 디바이스 및 해당 속성을 열거합니다. 디바이스 정보 속성은 WIA 하드웨어 디바이스의 설치 및 구성을 설명합니다. |
IEnumWIA_FORMAT_INFO | 디바이스의 형식 및 미디어 형식 정보를 열거합니다. |
IEnumWiaItem | 트리의 현재 폴더에 있는 IWiaItem 개체를 열거합니다. WIA 런타임 시스템은 애플리케이션에 대한 모든 WIA 하드웨어 디바이스를 IWiaItem 개체의 계층 트리로 나타냅니다. |
IWiaDataCallback | WIA 하드웨어 디바이스에서 애플리케이션으로 데이터를 전송하는 동안 애플리케이션 콜백 메커니즘을 제공합니다. |
IWiaDataTransfer | 디바이스 개체에서 애플리케이션으로 데이터를 전송하는 공유 메모리 창을 지원하고 마샬링하는 동안 불필요한 데이터 복사본을 제거합니다. |
IWiaDevMgr | 애플리케이션에서 이미지 획득 디바이스를 만들고 관리하는 데 사용됩니다. 또한 디바이스 이벤트를 수신하기 위해 등록하는 데 사용합니다. |
IWiaEventCallback | 애플리케이션에서 WIA 하드웨어 디바이스 이벤트의 알림을 받는 데 사용됩니다. |
IWiaItem | 애플리케이션에서 해당 기능에 대해 디바이스를 쿼리할 수 있습니다. IWiaItem 은 데이터 전송 인터페이스 및 항목 속성에 대한 액세스도 제공합니다. 또한 이 인터페이스는 애플리케이션이 디바이스를 제어할 수 있도록 하는 메서드를 제공합니다. |
IWiaPropertyStorage | IWiaItem 개체의 속성에 대한 정보에 대한 액세스를 제공합니다. |
WIA 드라이버 서비스 라이브러리
WIA 드라이버 서비스 라이브러리는 WIA 미니드라이버에 대한 도우미 기능을 제공하는 시스템 제공 구성 요소입니다. 미니 드라이버는 도우미 함수를 호출하여 다음과 같은 작업을 수행할 수 있습니다.
WIA 드라이버 항목 트리를 초기화합니다.
디바이스 속성을 읽고 쓰고 유효성을 검사합니다.
데이터를 전송합니다.
또는 미니드라이버가 이러한 작업 자체를 수행할 수 있습니다. 도우미 함수를 사용하면 WIA 미니드라이버의 개발 시간과 크기를 줄이고 개별 솔루션을 유연하게 개발할 수 있습니다.
WIA 유틸리티 라이브러리
WIA 유틸리티 라이브러리에는 디버깅 함수 컬렉션(wiauDbgXxx), 일반 유틸리티 도우미 함수 컬렉션 및 CWiauDbgFn 클래스, CWiauFormatConverter 클래스 및 CWiauPropertyList 클래스의 세 가지 클래스가 포함됩니다.
WIA 미니 드라이버
WIA 미니드라이버에서는 WIA 속성 변경 내용 및 명령을 이미징 디바이스로 전송하는 공급업체에서 제공하는 사용자 모드 구성 요소입니다. 미니드라이버에서는 WIA 서비스가 미니드라이버와 통신하기 위해 호출하는 WIA DDI를 구현합니다.
WIA 미니드라이버에서는 커널 모드 스틸 이미지 드라이버에 대한 디바이스별 사용자 모드 인터페이스를 제공하여 USB 드라이버와 같은 드라이버를 통해 이미징 디바이스를 구동합니다. 미니 드라이버는 CreateFile, ReadFile, WriteFile 및 DeviceIoControl Microsoft Win32 함수(Microsoft Windows SDK 설명서에 설명되어 있습니다)를 호출하여 커널 모드 드라이버와 통신합니다.
이미징 애플리케이션은 WIA 미니드라이버를 직접 호출할 수 없습니다. WIA 서비스만 드라이버를 직접 호출할 수 있습니다.
커널 I/O 드라이버
커널 모드 스틸 이미지 드라이버는 시스템 제공 또는 IHV 제공 구성 요소로, 스틸 이미지 디바이스로 배달하고 스틸 이미지 디바이스에서 전송하기 위해 데이터를 패키지합니다. 커널 모드 스틸 이미지 드라이버는 버스에 따라 다릅니다.
Microsoft는 USB, SCSI, 직렬 및 IEEE 1394 버스용 Microsoft WDM(Windows 드라이버 모델) 기반 커널 모드 스틸 이미지 드라이버를 제공합니다. 이러한 드라이버에 대한 자세한 내용은 스틸 이미지 디바이스에 대한 커널 모드 드라이버 액세스를 참조하세요.
공급업체는 이미징 디바이스가 Microsoft 제공 커널 모드 I/O 드라이버와 호환되지 않는 경우에만 커널 모드 스틸 이미지 드라이버를 제공해야 합니다.
드라이버에서 버전 정보를 검색할 수 있습니다. WIA_DIP_WIA_VERSION 속성에는 WIA 버전이 포함되고 WIA_DIP_DRIVER_VERSION 속성에는 드라이버 DLL 버전이 포함됩니다. WIA 서비스는 이러한 속성을 만들고 유지 관리합니다. 드라이버가 로드될 때 WIA 서비스에 의해 자동으로 추가됩니다. Windows Me에는 이러한 속성이 포함되어 있지 않습니다.