建立 WIA Microdriver
許多平面掃描器都是以類似的方式控制。 模型之間的常見行為已抽象化為稱為 WIA Flatbed Driver 的 Microsoft 提供的通用驅動程式。 此驅動程式會呼叫 DLL,該 DLL 稱為掃描器廠商提供的 microdriver,可實作任何所需的裝置特定行為。 WIA Flatbed Driver 與 microdriver 可以接著當做 WIA 迷你驅動程式使用。 使用 Microdriver 的優點是實作和偵錯非常簡單。 並非所有掃描器都可以由 Microdriver 支援。 它最適用于不需要雙工器或其他進階功能的簡單 (裝置) ,或需要基底功能驅動程式時。
注意 本節所述的 WIA 微驅動程式是 WIA 1.0。 目前沒有適用于 WIA 2.0 的對應 WIA microdriver 模型。 如果您開發 WIA microdriver 以在 Windows 版本支援 WIA 2.0 (Windows Vista 或) 更新版本的電腦上執行,此 WIA microdriver 的運作方式就像任何其他 WIA 1.0 裝置一樣,而且 WIA 2.0 應用程式將在 WIA 1.0 相容性模式中使用。
下圖顯示 WIA microdriver 架構中的元件。
WIA Flatbed Driver 會呼叫 microdriver 中的 WIA microdriver 函式,以處理來自 WIA 服務的要求。 microdriver 必須實作所有這些函式。 SCANINFO結構會傳遞至 microdriver 來儲存和傳達掃描參數,例如掃描視窗和解析度。 WIA Flatbed Driver 會從 SCANINFO 結構讀取值,但永遠不會寫入這些值。 Microdriver 必須負責設定 SCANINFO 成員。
Microdriver 不應儲存掃描的任何參數,但應該依賴 儲存在 SCANINFO 結構中的值。 這對於支援對裝置的多個應用程式存取很重要。 如果兩個應用程式同時在同一部裝置上設定掃描,則只會有一份執行中的 microdriver 複本。 在此情況下,microdriver 會使用兩個不同的 SCANINFO 結構之一來呼叫,視應用程式嘗試存取裝置而定。