共用方式為


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

重要

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

本節說明當舊版應用程式需要使用 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,相容性層會傳送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_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會以 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 一次,因為所有頁面都應該進入相同的數據流。
IStream::Write 未傳送任何訊息。 如果是檔案傳輸,相容性層不會轉換驅動程式 (影像處理篩選的任何數據,) 寫入舊版傳輸訊息。 相反地,數據只會寫入傳送結束時傳回給用戶的檔案。

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

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