Bereitstellen einer IStiUSD-Schnittstelle
WIA baut auf STI auf. Um die Integration eines WIA-Minitreibers mit STI sicherzustellen, muss der Minidriver eine Schnittstelle implementieren, die von den IStiUSD-Schnittstellenmethoden abgeleitet ist. Diese Schnittstelle muss in einem WIA-Minitreiber vorhanden sein. Die IStiUSD-Schnittstelle wird zum Verwalten von Geräten (z. B. zum Laden eines Treibers) verwendet und ist das Mittel, mit dem die IStiDevice-Schnittstellenmethoden mit Standbildgeräten kommunizieren. Ein Minidriver muss eine von der IStiUSD::Initialize-Methode abgeleitete Schnittstelle vollständig implementieren, um vom WIA-Dienst geladen zu werden.
IStiUSD-Schnittstellenmethoden werden in der Regel von ähnlich benannten Methoden aufgerufen, die von der IStiDevice-Schnittstelle definiert werden. Minidriver implementieren in der Regel IStiUSD-Schnittstellenmethoden , indem sie den entsprechenden Kernelmodustreiber aufrufen. Jeder Minitreiber muss alle Schnittstellenmethoden definieren, aber wenn eine Methode nicht benötigt wird, kann sie einfach STIERR_UNSUPPORTED zurückgeben.
Ein Beispiel für die Implementierung der IStiUSD-Schnittstelle durch einen Minitreiber finden Sie in der wiacam-Kamerabeispieldatei IStiUSD.cpp.
In der folgenden Tabelle sind alle von der IStiUSD-Schnittstelle definierten Methoden aufgeführt und beschrieben. Methoden, die von WIA-Minitreibern implementiert oder bedingt implementiert werden müssen, werden identifiziert.
Methode | BESCHREIBUNG |
---|---|
IStiUSD::D eviceReset | Setzt ein Standbildgerät in einen bekannten initialisierten Zustand zurück. |
IStiUSD::D iagnostisch | Führt Diagnosetests auf einem Standbildgerät aus. Ein WIA-Minitreiber muss diese Methode implementieren. |
IStiUSD::Escape | Führt einen herstellerspezifischen E/A-Vorgang auf einem Standbildgerät aus. |
IStiUSD::GetCapabilities | Gibt die Funktionen eines Standbildgeräts zurück. |
IStiUSD::GetLastErrorInfo | Gibt Informationen zum letzten bekannten Fehler zurück, der einem Standbildgerät zugeordnet ist. |
IStiUSD::GetNotificationData | Gibt eine Beschreibung des letzten Ereignisses zurück, das auf einem Standbildgerät aufgetreten ist. |
IStiUSD::GetStatus | Gibt die status eines Standbildgeräts zurück. Ein WIA-Minitreiber muss diese Methode implementieren, wenn sein Gerät Über Objekte wie Schaltflächen verfügt, die Ereignisse generieren können. |
IStiUSD::Initialize | Initialisiert eine instance des COM-Objekts, das die IStiUSD-Schnittstelle definiert. Ein WIA-Minitreiber muss diese Methode implementieren. |
IStiUSD::LockDevice | Sperrt ein Gerät für die exklusive Verwendung durch den Aufrufer. Ein WIA-Minitreiber muss diese Methode implementieren. |
IStiUSD::RawReadCommand | Liest Befehlsinformationen von einem Standbildgerät. |
IStiUSD::RawReadData | Liest Daten von einem Standbildgerät. |
IStiUSD::RawWriteCommand | Schreibt Befehlsinformationen auf ein Standbildgerät. |
IStiUSD::RawWriteData | Schreibt Daten auf ein Standbildgerät. |
IStiUSD::SetNotificationHandle | Gibt ein Ereignishandle an, das der Minitreiber verwenden soll, um den Aufrufer über Geräteereignisse zu informieren. Ein WIA-Minitreiber muss diese Methode implementieren, wenn sein Gerät Über Objekte wie Schaltflächen verfügt, die Ereignisse generieren können. |
IStiUSD::UnLockDevice | Schließt den Geräteport. Ein WIA-Minitreiber muss diese Methode implementieren. |