필수 명령

모든 마이크로드라이버에서 다음 필수 명령 집합을 구현해야 합니다.

CMD_GETCAPABILITIES

WIA 플랫베드 드라이버에서 호출되어 단추 이벤트 정보를 가져옵니다. 전달된 VAL 구조체의 세 멤버를 채워야 합니다. lVal은 단추 수로 설정해야 합니다. pGuid는 이벤트 GUID의 배열로 설정해야 합니다. ppButtonNames는 필요에 따라 pGuid와 동일한 순서로 단추 이름을 포함하는 WCHAR* 배열로 설정할 수 있습니다(예: "스캔 단추" 또는 "팩스 단추"). ppButtonNamesNULL로 설정된 경우 WIA 플랫베드 드라이버는 제네릭 단추 이름을 만듭니다. CMD_INITIALIZE 대한 응답으로 배열을 할당하고 CMD_UNINITIALIZE 해제할 수 있습니다.

CMD_INITIALIZE

WIA 플랫베드 드라이버에서 호출되어 마이크로드라이버를 초기화하고 디바이스 I/O 핸들을 유효한 값으로 설정합니다. WIA 서비스가 WIA 플랫베드 드라이버에서 IWiaMiniDrv::d rvInitializeWia 메서드를 호출하면 이 명령이 마이크로드라이버로 전송됩니다.

WIA 플랫베드 드라이버는 자동으로 하나의 디바이스 I/O 핸들을 만들고 인덱스 0에서 전달된 SCANINFO 구조의 DeviceIOHandles 배열 멤버에 배치합니다. 마이크로드라이버가 디바이스와 통신해야 하는 경우 이 핸들을 사용해야 합니다. 마이크로드라이버에 추가 디바이스 핸들(예: 여러 대량 USB 파이프 사용)이 필요한 경우 최대 MAX_IO_HANDLES 수까지 DeviceIOHandles 배열에 만들어 저장할 수 있습니다. WIA 플랫베드 드라이버는 초기화 중에 해당 핸들을 만들었기 때문에 인덱스 0에서 핸들을 자동으로 닫습니다. 다른 핸들은 CMD_UNINITIALIZE 대한 응답으로 마이크로 드라이버에서 닫아야 합니다.

이 명령의 일부로 마이크로드라이버도 SCANINFO 구조체의 모든 값을 초기화해야 합니다. WIA 플랫베드 드라이버가 디바이스의 법적 범위에 대해 이러한 값의 유효성을 자동으로 검사할 수 있도록 마이크로드라이버에서 SCANINFO 구조의 SupportedDataTypes, IntensityRange, ContrastRange, BedWidthBedHeight 멤버를 설정해야 합니다.

CMD_RESETSCANNER

WIA 서비스 요청에 대한 응답으로 디바이스를 다시 설정하기 위해 WIA 플랫베드 드라이버에서 호출됩니다. 마이크로드라이버가 디바이스를 전원 켜기 상태로 설정해야 합니다. Windows Vista에서 WIA 플랫베드 드라이버는 이 명령을 사용하지 않습니다. 그러나 마이크로드라이버는 Windows XP에서 올바른 작업을 보장하기 위해 이 명령을 계속 지원해야 하며, 이 명령을 사용할 수 있는 WIA 플랫베드 드라이버의 향후 버전이 있을 수 있습니다.

CMD_SETDATATYPE

WIA 플랫베드 드라이버에서 호출되어 검사에 대한 데이터 형식을 설정합니다. 다음 값 중 하나는 전달된 VAL 구조체의 lVal 멤버에 전달됩니다.

  • WIA_DATA_THRESHOLD - 1비트 블랙/화이트

  • WIA_DATA_GRAYSCALE - 8비트 회색조

  • WIA_DATA_COLOR - 24비트 색

마이크로 드라이버는 전달된 SCANINFO 구조체의 DataType 멤버에 값을 저장해야 합니다.

CMD_SETCONTRAST

WIA 플랫베드 드라이버에서 호출되어 검사의 대비 값을 설정합니다. 원하는 대비 값은 전달된 VAL 구조체의 lVal 멤버에 전달됩니다. 값 -1000은 디바이스의 최대 대비 값인 가장 낮은 대비 값, 0 명목 및 1000으로 해석되어야 합니다. 마이크로 드라이버는 전달된 SCANINFO 구조체의 Contrast 멤버에 값을 저장해야 합니다.

CMD_SETINTENSITY

WIA 플랫베드 드라이버에서 호출되어 검사의 강도 또는 밝기 값을 설정합니다. 원하는 강도 값은 전달된 VAL 구조체의 lVal 멤버에 전달됩니다. 값 -1000은 디바이스의 최대 밝기 값인 가장 낮은 밝기 값, 0 명목 및 1000으로 해석되어야 합니다. 마이크로 드라이버는 전달된 SCANINFO 구조체의 강도 멤버에 값을 저장해야 합니다.

CMD_SETXRESOLUTION

WIA 플랫베드 드라이버에서 호출되어 수평 스캔 해상도를 설정합니다. 원하는 해상도(픽셀)는 전달된 VAL 구조체의 lVal 멤버에 전달됩니다. 마이크로 드라이버는 전달된 SCANINFO 구조체의 XResolution 멤버에 값을 저장해야 합니다.

CMD_SETYRESOLUTION

WIA 플랫베드 드라이버에서 호출되어 세로 스캔 해상도를 설정합니다. 원하는 해상도(픽셀)는 전달된 VAL 구조체의 lVal 멤버에 전달됩니다. 마이크로 드라이버는 전달된 SCANINFO 구조체의 YResolution 멤버에 값을 저장해야 합니다.

CMD_STI_DEVICERESET

STI(스틸 이미지) 요청에 대한 응답으로 디바이스를 다시 설정하기 위해 WIA 플랫베드 드라이버에서 호출됩니다. 이 명령은 일반적으로 초기화 중에 한 번만 호출됩니다.

CMD_STI_DIAGNOSTIC

사용자가 디바이스 테스트를 요청할 때 WIA 플랫베드 드라이버에서 호출됩니다.

CMD_UNINITIALIZE

마이크로드라이버를 초기화하고 디바이스 I/O 핸들을 닫습니다. WIA 플랫베드 드라이버는 SCANINFO 구조체의 DeviceIOHandles 배열 멤버인 인덱스 0에서 디바이스 I/O 핸들을 자동으로 닫습니다. 이 명령은 WIA 플랫베드 드라이버가 언로드될 때 마이크로드라이버로 전송됩니다.