Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der WIA-Dienst benachrichtigt einen WIA-Minidriver über ein unterstütztes Geräteereignis, indem er die IWiaMiniDrv::d rvNotifyPnpEvent-Methode aufruft . Bei dieser Methode implementiert der Minidriver die gerätespezifische Funktionalität, die zum Reagieren auf das Ereignis erforderlich ist. Der WIA-Dienst ruft die IWiaMiniDrv::d rvNotifyPnpEvent-Methode nur für ein Ereignis auf, das der Minitreiber angegeben hat, dass das Gerät in der IWiaMiniDrv::d rvGetCapabilities-Methode unterstützt werden kann.
Der Minidriver initiiert ein Ereignis entweder über den STI-Ereignismechanismus oder mithilfe von wiasQueueEvent , um der Ereigniswarteschlange eine Ereignisbenachrichtigung von diesem Gerät hinzuzufügen.
Asynchrones Verhalten: Energieverwaltung und E/A-Abbruch
In den meisten Fällen stellt der WIA-Dienst sicher, dass jeweils nur ein Aufruf an den Treiber erfolgt. Einige Methoden sind jedoch von Natur aus asynchron und reentrant. Ein gutes Beispiel hierfür ist die IWiaMiniDrv::d rvNotifyPnpEvent-Methode .
Der WIA-Dienst verwendet diese Methode, um den Treiber über Ereignisse zu benachrichtigen, die möglicherweise sofortige Maßnahmen erfordern. Wenn der WIA-Dienst beispielsweise ein Plug & Play-Ereignis empfängt, das angibt, dass das Gerät entfernt wurde, wird der Treiber sofort benachrichtigt. Weitere Beispiele sind Energieverwaltungsereignisse und E/A-Abbruchanforderungen von Anwendungen.
Eine Beispielimplementierung der IWiaMiniDrv::d rvNotifyPnpEvent-Methode , die veranschaulicht, wie sie auf verschiedene Arten von Ereignissen reagieren sollte, finden Sie unter Hinzufügen der Interruptereignisunterstützung.