共用方式為


舊版應用程式和 Windows Vista 驅動程式的對應

這很重要

本文包含適用於過時 Windows作系統的資訊。

本節說明當舊版應用程式需要使用 Windows Vista 驅動程式時,Windows Vista 傳輸訊息和數據流如何對應至舊版傳輸訊息和數據流。

回撥傳輸

下表顯示 Windows Vista 驅動程式的回呼傳輸訊息對應至傳送至舊版應用程式的訊息。

Windows Vista 驅動程式訊息 舊版應用程式訊息 (相容性層轉換之後)
WIA_TRANSFER_MSG_STATUS IT_MSG_STATUS (未翻譯)
WIA_傳輸_信息_錯誤 忽略。
資料傳輸結束訊息 忽略。 此訊息一律會與呼叫 IWiaTransferCallback::GetNextStream一起傳送。 為了避免重複的訊息,此訊息會在 GetNextStream 實作中實作。
傳輸結束訊息 IT_MSG_TERMINATION (驅動程式不會傳送WIA_TRANSFER_MSG_END_OF_TRANSFER)。
WIA_TRANSFER_MSG_設備狀態 如果 hrErrorStatus == WIA_STATUS_WARMING_UP,相容性層會傳送IT_MSG_STATUS與IT_STATUS_TRANSFER_FROM_DEVICE,以便為應用程式提供一些狀態,以及讓 Windows Vista 應用程式能夠取消傳輸。
WIA_TRANSFER_MSG_NEW_PAGE 忽略。 在此情況下,不應該由 Windows Vista 驅動程式傳送,因為我們使用 TYMED_FILE 呼叫 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 傳輸錯誤訊息 忽略。
WIA_TRANSFER_MSG_END_OF_STREAM (資料流結束訊息) 忽略。 此訊息一律會與呼叫 IWiaTransferCallback::GetNextStream一起傳送。 為了避免重複的訊息,此訊息會在 GetNextStream 實作中實作。
傳輸結束訊息 IT_MSG_TERMINATION (驅動程式不會傳送WIA_TRANSFER_MSG_END_OF_TRANSFER)。
WIA_TRANSFER_MSG_DEVICE_STATUS 如果 hrErrorStatus == WIA_STATUS_WARMING_UP,IT_MSG_STATUS會與 IT_STATUS_TRANSFER_FROM_DEVICE 一起傳送,以便為應用程式提供一些狀態,以及讓 Windows Vista 應用程式能夠取消傳輸。
WIA_TRANSFER_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 getNextStream 一次,因為所有頁面都應該進入相同的數據流。
IStream::Write 未傳送任何訊息。 如果是檔傳輸,相容性層不會將驅動程式(影像處理篩選器)寫入的任何數據轉換成舊版傳輸訊息。 相反地,數據只會寫入傳輸結束時傳回給用戶的檔案。

如需舊版傳輸訊息的詳細資訊,請參閱 IWiaMiniDrvCallBack 介面

如需 TYMED 常數的詳細資訊,請參閱 瞭解 TYMED