32 位和 64 位 WIA 互通性
在執行適用于擴充處理器的 Windows 64 位版本系統上,所有 WIA 元件都是 64 位,因此 WIA 基礎結構已變更,以允許這些 64 位驅動程式與現有 32 位應用程式之間的互通性。
在 64 位版本的 Windows 作業系統上,64 位 WIA 迷你驅動程式會載入 WIA 服務的 64 位進程。 不過,WIA 迷你驅動程式 UI 延伸模組會載入應用程式的進程空間中。 在 x64 型電腦上執行的 Microsoft Win32 應用程式未修改的 32 位進程將無法載入 64 位 UI 擴充功能。
為了減輕 32 位到 64 位的問題,Microsoft 提供 64 位擴充主機, wiawow64.exe。 此主機可確保 32 位應用程式與 64 位 WIA UI 延伸模組之間的透明互通性。 適用于擴充處理器 的 Windows Server 2003 64 位版本、適用于擴充處理器的 Windows XP 64 位版本、Windows Vista 及更新版本的作業系統版本中將會提供wiawow64.exe擴充主機。
WIA 服務會根據應用程式是 64 位還是 32 位,判斷 UI 延伸模組實際載入的位置:
64 位應用程式。 64 位 WIA 迷你驅動程式 UI 擴充功能會直接載入應用程式的進程空間。 這類似于您在 32 位版本的 Windows 作業系統上執行 32 位應用程式時會發生什麼情況。
32 位應用程式。 WIA 會啟動將載入 UI 擴充功能的 wiawow64.exe 延伸模組主機。 每次呼叫任何介面方法來自 32 位應用程式時,都會建立並啟動個別的 wiawow64.exe 實例。 wiawow64.exe主機會在與應用程式相同的內容中執行,並透過現有的 COM 介面與應用程式通訊。
即使 WIA 應用程式寫入器和 WIA 驅動程式開發人員對wiawow64.exe完全透明,驅動程式開發人員還是必須偵錯 wiawow64.exe 程式,而不是 32 位應用程式來偵錯 64 位 UI 擴充功能。