Übersicht über die WIA-Architektur
WIA wird als Out-of-Process-Server (Component Object Model, COM) implementiert, um den stabilen Betrieb von Clientanwendungen sicherzustellen.
WIA verfügt über drei Standard Komponenten: den WIA-Dienst, die WIA-Treiberdienstbibliothek und einen Anbieterbenutzermodustreiber.
Der WIA-Dienst listet Imagegeräte auf, ruft Geräteeigenschaften ab, richtet Ereignisse für Geräte ein und erstellt Geräteobjekte.
Die WIA-Treiberdienstbibliothek implementiert alle Geräte unabhängigen Dienste.
Der Anbieterbenutzermodustreiber ordnet WIA-Eigenschaften und Befehle dem jeweiligen Gerät zu. Es gibt zwei Arten von WIA-Anbieter-Benutzermodustreibern:
Minidriver: Dies ist der häufigste Typ von Anbietertreibern. Es handelt sich um ein COM-Objekt, das die WIA-Minitreiberschnittstellen implementiert. Ein Anbieter kann alle WIA-Funktionen und -Features mit diesem Treibertyp nutzen.
Microdriver: Dieser Treiber ist viel eingeschränkter als ein Minitreiber und daher einfacher zu entwickeln. Es wird hauptsächlich für einfache Scannergeräte verwendet. Dieser Treiber ist kein COM-Objekt. Es handelt sich um eine DLL, die einige Funktionen exportiert. Microdriver können nicht für Kamerageräte verwendet werden.
Das folgende Diagramm veranschaulicht die WIA-Architektur.
Imaging-Anwendungen
Imaging-Anwendungen kommunizieren nicht direkt mit dem Minidriver, sondern kommunizieren mit dem WIA-Dienst über die WIA-Api (Application Programming Interface), um auf Bilder zuzugreifen und Daten von WIA-Geräten zu erhalten. Diese Anwendungen können eine allgemeine, vom System bereitgestellte Benutzeroberfläche oder eine vom Anbieter bereitgestellte Benutzeroberfläche verwenden. Weitere Informationen zur WIA-API für Imageerstellungsanwendungen finden Sie in der Microsoft Windows SDK-Dokumentation.
WIA-Dienst
Der WIA-Dienst ist eine vom System bereitgestellte Komponente, die mit Imaging-Anwendungen und WIA-Minitreibern kommuniziert. Der WIA-Dienst wird in einem separaten Prozess von Anwendungen und im gleichen Prozess wie WIA-Minitreiber ausgeführt. Anwendungen leiten ihre Geräteanforderungen an den WIA-Dienst weiter, der die Anforderungen wiederum über die WIA-Gerätetreiberschnittstelle (DDI) an den entsprechenden Minitreiber weitergibt.
WIA-Treiberdienstbibliothek
Die WIA-Treiberdienstbibliothek ist eine vom System bereitgestellte Komponente, die Hilfsfunktionen für WIA-Minitreiber bereitstellt. Ein Minidriver kann Hilfsfunktionen aufrufen, um Aufgaben wie die folgenden auszuführen:
Initialisieren Sie die ELEMENTstruktur des WIA-Treibers.
Lesen, Schreiben und Überprüfen von Geräteeigenschaften.
Übertragen von Daten.
Alternativ kann ein Minitreiber solche Aufgaben selbst ausführen. Durch die Nutzung der Hilfsfunktionen können Sie die Entwicklungszeit und die Größe eines WIA-Minidrivers reduzieren und gleichzeitig die Flexibilität haben, individuelle Lösungen zu entwickeln.
WIA User-Mode Minidriver
WIA-Minitreiber sind vom Anbieter bereitgestellte Benutzermoduskomponenten, die WIA-Eigenschaftsänderungen und Befehle an ein Imageerstellungsgerät weiterleiten. Ein Minidriver implementiert den WIA DDI, der vom WIA-Dienst aufgerufen wird, um mit dem Minitreiber zu kommunizieren.
Ein WIA-Minitreiber implementiert die standardmäßigen WIA-Minitreiberschnittstellen. Der Minidriver kommuniziert mit dem Imageerstellungsgerät über einen Standardmäßigen Microsoft Windows-Kernelmodustreiber, z. B. den USB-Treiber. Der Minidriver kommuniziert mit dem Kernelmodustreiber, indem die Win32-Funktionen CreateFile, ReadFile, WriteFile und DeviceIoControl aufgerufen werden (siehe Microsoft Windows SDK Dokumentation).
Eine Imageerstellungsanwendung kann keine direkten Aufrufe an den WIA-Minitreiber tätigen. Nur der WIA-Dienst darf den Treiber direkt aufrufen.
Kernel-E/A-Treiber
Treiber für Standbilder im Kernelmodus sind vom System bereitgestellte oder von IHV bereitgestellte Komponenten, die Daten an oder von dem Standbildgerät übermitteln. Ein Kernelmodus-Imagetreiber ist busspezifisch.
Microsoft stellt WDM-basierte, Kernelmodus-Imagetreiber für die USB-, SCSI- und IEEE 1394-Busse bereit. Weitere Informationen finden Sie unter Zugreifen auf Kernel-Mode-Treiber für Standbildgeräte .
Ein Anbieter muss nur dann einen Kernelmodus-Imagetreiber bereitstellen, wenn sein Imagegerät nicht mit von Microsoft bereitgestellten Kernelmodus-E/A-Treibern kompatibel ist.