WIA 架構概觀
WIA 會實作為元件物件模型, (COM) 跨進程伺服器,以確保用戶端應用程式的健全作業。
WIA 有三個主要元件:WIA 服務、WIA 驅動程式服務程式庫,以及廠商使用者模式驅動程式。
WIA 服務會列舉映射處理裝置、擷取裝置屬性、設定裝置的事件,以及建立裝置物件。
WIA 驅動程式服務程式庫會實作與裝置無關的所有服務。
廠商使用者模式驅動程式會將 WIA 屬性和命令對應至特定裝置。 WIA 廠商使用者模式驅動程式有兩種類型:
Minidriver:這是最常見的廠商驅動程式類型。 它是實作 WIA 迷你驅動程式介面的 COM 物件。 廠商可以利用這種驅動程式類型的所有 WIA 功能和功能。
Microdriver:此驅動程式比迷你驅動程式更有限,因此開發更簡單。 它主要用於基本掃描器裝置。 此驅動程式不是 COM 物件;它是匯出一些函式的 DLL。 Microdrivers 無法用於相機裝置。
下圖說明 WIA 架構。
映射處理應用程式
映射處理應用程式不會直接與迷你驅動程式通訊,但透過 WIA 應用程式開發介面與 WIA 服務通訊, (API) 存取影像並從 WIA 裝置取得資料。 這些應用程式可以使用一般、系統提供的使用者介面或廠商提供的使用者介面。 如需映射處理應用程式的 WIA API 詳細資訊,請參閱Microsoft Windows SDK檔。
WIA 服務
WIA 服務是系統提供的元件,可與映射應用程式和 WIA 迷你驅動程式通訊。 WIA 服務會在與應用程式和 WIA 迷你驅動程式相同的進程中執行。 應用程式會將其裝置要求導向 WIA 服務,進而透過 WIA 裝置驅動程式介面將要求導向至適當的迷你驅動程式, (DDI) 。
WIA 驅動程式服務程式庫
WIA 驅動程式服務程式庫是系統提供的元件,可為 WIA 迷你驅動程式提供協助程式函式。 minidriver 可以呼叫協助程式函式來執行下列工作:
初始化 WIA 驅動程式專案樹狀結構。
讀取、寫入和驗證裝置屬性。
傳輸資料。
或者,迷你驅動程式可以自行執行這類工作。 藉由利用協助程式函式,您可以減少開發時間和 WIA 迷你驅動程式的大小,同時仍具有開發個別解決方案的彈性。
WIA User-Mode Minidrivers
WIA 迷你驅動程式是廠商提供的使用者模式元件,會將 WIA 屬性變更和命令導向至映射裝置。 minidriver 會實作 WIA DDI,由 WIA 服務呼叫以與迷你驅動程式通訊。
WIA 迷你驅動程式會實作標準 WIA 迷你驅動程式介面。 minidriver 會透過標準 Microsoft Windows 核心模式驅動程式與映射裝置通訊,例如 USB 驅動程式。 minidriver 會呼叫CreateFile、ReadFile、WriteFile和DeviceIoControl Win32 函式,以與核心模式驅動程式通訊, (Microsoft Windows SDK檔) 中所述。
映射處理應用程式無法直接呼叫 WIA 迷你驅動程式。 只允許 WIA 服務直接呼叫驅動程式。
核心 I/O 驅動程式
核心模式仍為映射驅動程式的系統提供或 IHV 提供的元件,可將資料傳送至仍然映射裝置或從中傳遞資料。 核心模式仍為映射驅動程式專用。
Microsoft 為 USB、SCSI 和 IEEE 1394 匯流排提供 WDM 型核心模式的映射驅動程式。 如需詳細資訊,請參閱 存取適用于仍然映射裝置的Kernel-Mode驅動程式 。
只有當核心模式的映射裝置與 Microsoft 提供的核心模式 I/O 驅動程式不相容時,廠商 才 必須提供核心模式的仍映射驅動程式。