32-Bit- und 64-Bit-WIA-Interoperabilität
Auf Systemen, auf denen Windows 64-Bit Edition für erweiterte Prozessoren ausgeführt wird, sind alle WIA-Komponenten 64-Bit-Komponenten, sodass die WIA-Infrastruktur geändert wurde, um die Interoperabilität zwischen diesen 64-Bit-Treibern und vorhandenen 32-Bit-Anwendungen zu ermöglichen.
Bei 64-Bit-Editionen des Windows-Betriebssystems wird der 64-Bit-WIA-Minidriver in den 64-Bit-Prozess des WIA-Diensts geladen. Allerdings werden WIA-Minidriver-UI-Erweiterungen im Prozessbereich der Anwendung geladen. Der unveränderte 32-Bit-Prozess einer Microsoft Win32-Anwendung, der auf einem x64-basierten Computer ausgeführt wird, kann die 64-Bit-Benutzeroberflächenerweiterung nicht laden.
Um das 32-Bit- bis 64-Bit-Problem zu beheben, stellt Microsoft einen 64-Bit-Erweiterungshost wiawow64.exebereit. Dieser Host stellt eine transparente Interoperabilität zwischen 32-Bit-Anwendungen und 64-Bit-WIA-UI-Erweiterungen sicher. Der wiawow64.exe-Erweiterungshost ist in Windows Server 2003 64-Bit Edition für erweiterte Prozessoren, Windows XP 64-Bit Edition für erweiterte Prozessoren, Windows Vista und höheren Betriebssystemversionen verfügbar.
Der WIA-Dienst bestimmt, wo Benutzeroberflächenerweiterungen physisch geladen werden, je nachdem, ob es sich um eine 64-Bit- oder 32-Bit-Anwendung handelt:
64-Bit-Anwendung. Die 64-Bit-WIA-Minidriver-UI-Erweiterung wird direkt in den Prozessraum der Anwendung geladen. Dies ähnelt dem, was geschieht, wenn Sie eine 32-Bit-Anwendung unter 32-Bit-Versionen des Windows-Betriebssystems ausführen.
32-Bit-Anwendung. WIA startet denwiawow64.exe-Erweiterungshost, in den Benutzeroberflächenerweiterungen geladen werden. Jedes Mal, wenn ein Aufruf einer der Schnittstellenmethoden von einer 32-Bit-Anwendung eingeht, wird ein separater instance vonwiawow64.exeerstellt und gestartet. Der wiawow64.exe Host wird im gleichen Kontext wie die Anwendung ausgeführt und kommuniziert mit der Anwendung über die vorhandenen COM-Schnittstellen.
Obwohl wiawow64.exe sowohl für WIA-Anwendungsautoren als auch für WIA-Treiberentwickler vollständig transparent ist, müssen Treiberentwickler den wiawow64.exe Prozess debuggen und nicht die 32-Bit-Anwendung, um 64-Bit-Ui-Erweiterungen zu debuggen.