舊版應用程式和 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。