레거시 애플리케이션 및 Windows Vista 드라이버에 대한 매핑

이 섹션에서는 레거시 애플리케이션이 Windows Vista 드라이버와 함께 작동해야 하는 경우 Windows Vista 전송 메시지 및 데이터 흐름을 레거시 전송 메시지 및 데이터 흐름에 매핑하는 방법을 설명합니다.

콜백 전송

이 표에서는 Windows Vista 드라이버의 콜백 전송 메시지를 레거시 애플리케이션으로 전송된 메시지로 매핑하는 방법을 보여 줍니다.

Windows Vista 드라이버 메시지

레거시 애플리케이션 메시지(호환성 계층 변환 후)

WIA_TRANSFER_MSG_STATUS

IT_MSG_STATUS

WIA_TRANSFER_MSG_ERROR

무시됩니다.

WIA_TRANSFER_MSG_END_OF_STREAM

무시됩니다. 이 메시지는 항상 IWiaTransferCallback::GetNextStream에 대한 호출과 함께 진행됩니다. 메시지를 복제하지 않고 대신 GetNextStream 구현에서 구현됩니다.

WIA_TRANSFER_MSG_END_OF_TRANSFER

IT_MSG_TERMINATION(드라이버가 보내지지 않는 WIA_TRANSFER_MSG_END_OF_TRANSFER 유의하세요).

WIA_TRANSFER_MSG_DEVICE_STATUS

hrErrorStatus == WIA_STATUS_WARMING_UP 경우 호환성 계층은 애플리케이션에 일부 상태를 제공하고 Windows Vista 애플리케이션에 전송을 취소할 수 있는 가능성을 제공하기 위해 IT_STATUS_TRANSFER_FROM_DEVICE IT_MSG_STATUS 보냅니다.

WIA_TRANSFER_MSG_NEW_PAGE

무시됩니다. 이 경우 TYMED_FILE Windows Vista 드라이버를 호출하므로 이 경우 Windows Vista 드라이버에 의해 전송되지 않아야 합니다.

IWiaTransferCallback::GetNextStream

첫 페이지: IT_MSG_DATA_HEADER

후속 페이지: IT_MSG_NEW_PAGE

IStream::Write

IT_MSG_DATA

파일 전송

이 표에서는 Windows Vista 드라이버의 파일 전송 메시지를 레거시 애플리케이션으로 전송된 메시지로 매핑하는 방법을 보여 줍니다.

Windows Vista 드라이버 메시지

레거시 애플리케이션 메시지(호환성 계층 변환 후)

WIA_TRANSFER_MSG_STATUS

IT_MSG_STATUS

WIA_TRANSFER_MSG_ERROR

무시됩니다.

WIA_TRANSFER_MSG_END_OF_STREAM

무시됩니다. 이 메시지는 항상 IWiaTransferCallback::GetNextStream에 대한 호출과 함께 진행됩니다. 중복 메시지를 방지하기 위해 이 메시지는 대신 GetNextStream 구현에서 구현됩니다.

WIA_TRANSFER_MSG_END_OF_TRANSFER

IT_MSG_TERMINATION(드라이버가 보내지지 않는 WIA_TRANSFER_MSG_END_OF_TRANSFER 유의하세요).

WIA_TRANSFER_MSG_DEVICE_STATUS

hrErrorStatus == WIA_STATUS_WARMING_UP 경우 IT_MSG_STATUS 애플리케이션에 일부 상태를 제공하고 Windows Vista 애플리케이션에 전송을 취소할 수 있는 가능성을 제공하기 위해 IT_STATUS_TRANSFER_FROM_DEVICE 함께 전송됩니다.

WIA_TRANSFER_MSG_NEW_PAGE

IT_MSG_NEW_PAGE

참고: wiasWritePageBufToFile 에서 IT_MSG_NEW_PAGE 보내지 않으므로 이 동작은 현재 다중 페이지 파일 전송과 다소 다릅니다.

IWiaTransferCallback::GetNextStream

첫 페이지: IT_MSG_FILE_PREVIEW_DATA_HEADER

후속 페이지: 오류(WIA_ERROR_GENERAL_ERROR 드라이버에 다시 전달됨). IWiaTransferCallback::GetNextStream은 TYMED_FILE 한 페이지만 전송할 수 있고 TYMED_MULTIPAGE_FILE 전송하는 동안 모든 페이지가 동일한 스트림으로 이동해야 하므로 Windows Vista 드라이버는 GetNextStream을 한 번만 호출해야 하므로 한 번만 호출해야 합니다.

IStream::Write

메시지를 보내지 않았습니다. 파일 전송의 경우 호환성 계층은 드라이버(이미지 처리 필터)가 기록하는 데이터를 레거시 전송 메시지로 변환하지 않습니다. 대신 데이터는 전송이 끝날 때 사용자에게 반환되는 파일에 기록됩니다.

레거시 전송 메시지에 대한 자세한 내용은 IWiaMiniDrvCallBack 인터페이스를 참조하세요.

TYMED 상수에 대한 자세한 내용은 TYMED 이해를 참조하세요.

IStream 인터페이스는 Microsoft Windows SDK 설명서에 설명되어 있습니다.