共用方式為


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 擴充功能。