Freigeben über


Ü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.

Diagramm zur Veranschaulichung der wia-Komponenten.

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.