다음을 통해 공유


Windows Vista에서 데이터 전송 취소

중요

이 문서에는 사용되지 않는 Windows 운영 체제에 적용되는 정보가 포함되어 있습니다.

Windows Vista에는 애플리케이션이 스트림 기반 데이터 전송을 수행하는 데 사용하는 새 인터페이스 IWiaTransfer (Windows SDK 설명서에 설명되어 있습니다)가 있습니다. 이 인터페이스에는 새 전송 메서드 외에도 애플리케이션이 다중 항목 전송을 포함하여 데이터 전송을 취소하는 데 사용할 수 있는 Cancel 메서드가 포함되어 있습니다. 이 메서드를 사용하면 데이터 전송을 비동기적으로 취소할 수 있습니다. 이 절차를 사용하여 데이터 전송을 취소하는 것이 좋습니다. 그러나 Windows Vista 애플리케이션은 콜백 루틴에서 S_FALSE 반환하여 전송을 취소할 수도 있습니다.

따라서 Windows Vista의 WIA 애플리케이션에서 전송을 취소하는 방법에는 두 가지가 있습니다.

  • 콜백 루틴에서 S_FALSE 반환합니다.

  • IWiaTransfer::Cancel을 호출합니다.

Windows Vista 드라이버는 애플리케이션이 전송을 취소한 두 가지 방법으로 알림을 받을 수 있습니다.

  • 드라이버는 WIA_EVENT_CANCEL_IO 이벤트를 사용하여 IWiaMiniDrv::d rvNotifyPnPEvent 에 대한 호출을 받습니다. 모든 커널 모드 읽기 또는 쓰기 작업은 OVERLAPPED I/O를 사용하는 것이 좋습니다. 이 절차를 통해서만 즉시 취소를 보장할 수 있습니다.

  • S_FALSE 두 콜백 함수인 IWiaMiniDrvTransferCallback::GetNextStreamIWiaMiniDrvTransferCallback::SendMessage에서 반환됩니다.

애플리케이션이 IWiaTransfer::Cancel을 호출하면 IWiaMiniDrv::d rvNotifyPnPEvent 메서드가 WIA_EVENT_CANCEL_IO 드라이버에 호출되어야 합니다. 또한 IWiaMiniDrvTransferCallback::GetNextStreamIWiaMiniDrvTransferCallback::SendMessage 콜백 함수는 전송이 취소된 후 항상 S_FALSE 반환해야 합니다.

IWiaTransferCallback::GetNextStream다중 항목 전송 중에 WIA_STATUS_SKIP_ITEM 반환하는 경우 애플리케이션이 현재 항목을 건너뛰고(즉, 전송하지 않음) 됩니다. S_FALSE 반환 값은 전체 전송을 취소해야 했음을 의미합니다.

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

IWiaMiniDrvTransferCallback