取消 Windows XP 中的数据传输
重要
本文包含适用于已过时 Windows 操作系统的信息。
在 Microsoft Windows XP 和 Windows Me 中,WIA 应用程序可通过两种方式取消数据传输:
从传输回调例程 IWiaDataCallback::BandedDataCallback 返回S_FALSE。
调用 IWiaItemExtras::CancelPendingIO。 我们不建议使用此方法,任何内置驱动程序或示例都不使用它。
还有两种方法可让 WIA 驱动程序收到应用程序已取消传输的通知:
在调用 IWiaMiniDrvCallBack::MiniDrvCallback 时接收S_FALSE。
使用 WIA_EVENT_CANCEL_IO 事件接收对其 IWiaMiniDrv::d rvNotifyPnPEvent 的调用。
Windows XP 实现的一个问题是,两种通知方法之间没有连接;也就是说,如果用户调用 IWiaItemExtras::CancelPendingIO ,但驱动程序不支持通过 IWiaMiniDrv::d rvNotifyPnPEvent 异步取消数据传输,则应用程序还必须从 IWiaMiniDrvCallBack::MiniDrvCallback 返回S_FALSE。
Microsoft Windows SDK文档中介绍了 IWiaDataCallback 和 IWiaItemExtras 接口。