Pembatalan transfer data di Windows Vista

Penting

Artikel ini berisi informasi yang berlaku untuk sistem operasi Windows usang.

Di Windows Vista, ada antarmuka baru, IWiaTransfer (yang dijelaskan dalam dokumentasi Windows SDK) yang digunakan aplikasi untuk melakukan transfer data berbasis aliran. Antarmuka ini, selain metode transfer baru, berisi metode Batal yang dapat digunakan aplikasi untuk membatalkan transfer data, termasuk transfer multi-item. Dengan metode ini, Anda dapat membatalkan transfer data secara asinkron. Kami menyarankan agar Anda menggunakan prosedur ini untuk membatalkan transfer data. Namun, aplikasi Windows Vista juga dapat mengembalikan S_FALSE dari rutinitas panggilan baliknya untuk membatalkan transfer.

Dengan demikian, ada dua cara agar aplikasi WIA di Windows Vista membatalkan transfer:

  • Kembalikan S_FALSE dari rutinitas panggilan baliknya.

  • Hubungi IWiaTransfer::Cancel.

Pengandar Windows Vista dapat diberi tahu dengan dua cara berbeda bahwa aplikasi telah membatalkan transfer:

  • Driver menerima panggilan ke IWiaMiniDrv::d rvNotifyPnPEvent dengan peristiwa WIA_EVENT_CANCEL_IO. Kami menyarankan agar semua operasi baca atau tulis mode kernel menggunakan I/O YANG TUMPANG TINDIH. Hanya dengan prosedur ini Anda dapat menjamin pembatalan segera .

  • S_FALSE dikembalikan dari dua fungsi panggilan balik: IWiaMiniDrvTransferCallback::GetNextStream dan IWiaMiniDrvTransferCallback::SendMessage.

Ketika aplikasi memanggil metode IWiaTransfer::Cancel, metode IWiaMiniDrv::d rvNotifyPnPEvent harus dipanggil ke driver dengan WIA_EVENT_CANCEL_IO. Selain itu, fungsi panggilan balik IWiaMiniDrvTransferCallback::GetNextStream dan IWiaMiniDrvTransferCallback::SendMessage harus selalu mengembalikan S_FALSE setelah transfer dibatalkan.

Jika IWiaTransferCallback::GetNextStream mengembalikan WIA_STATUS_SKIP_ITEM selama transfer multi-item, aplikasi melompati (yaitu, tidak mentransfer) item saat ini. Nilai pengembalian S_FALSE masih berarti bahwa seluruh transfer harus dibatalkan.

Antarmuka IWiaTransfer dan IWiaTransferCallback dijelaskan dalam dokumentasi Microsoft Windows SDK.

IWiaMiniDrvTransferCallback