Einführung in E/A-Ziele
In den Themen in diesem Abschnitt wird beschrieben, wie ein WDF-Treiber (Windows Driver Frameworks) eine E/A-Anforderung weiterleiten oder eine neue Anforderung erstellen und an einen anderen Treiber senden kann, der als E/A-Ziel bezeichnet wird.
Wenn ein Funktionstreiber, Filtertreiber oder Miniporttreiber eine E/A-Anforderung empfängt, kann der Treiber die Anforderung möglicherweise selbst verarbeiten oder benötigt die Unterstützung anderer Treiber. Wenn der Fahrer Unterstützung benötigt, kann er die Anforderung an einen anderen Fahrer weiterleiten oder eine oder mehrere neue Anforderungen erstellen und sie an einen anderen Fahrer senden.
In Kernel-Mode Driver Framework stellt ein E/A-Ziel ein Geräteobjekt dar, das das Ziel einer E/A-Anforderung darstellt. Ein Funktions-, Filter- oder Miniporttreiber kann ein E/A-Ziel verwenden, um E/A-Anforderungen an einen anderen Treiber zu senden. Diese Treiber senden ihre E/A-Anforderungen häufig an den nächstniedrigen Treiber im Treiberstapel. Daher verfügt jeder frameworkbasierte Funktions-, Filter- und Miniporttreiber über ein lokales E/A-Ziel für jedes Gerät, bei dem es sich um den nächstniedrigen Treiber des Geräts handelt.
Gelegentlich muss ein Treiber eine E/A-Anforderung an ein anderes Ziel senden– an die Spitze eines anderen Treiberstapels oder selten an einen anderen Treiber innerhalb des Stapels des sendenden Treibers. Daher stellt das Framework auch Remote-E/A-Ziele bereit, die aus allen E/A-Zielen mit Ausnahme des lokalen E/A-Ziels bestehen.
Jedes E/A-Ziel wird durch ein E/A-Zielobjekt dargestellt. Jedes E/A-Zielobjekt ist in erster Linie eine Warteschlange, die steuert, wann eine Anforderung an das Zielgerätobjekt übermittelt wird. Wenn ein Treiber eine Anforderung an ein E/A-Ziel sendet, speichert das Framework die Anforderung in der Warteschlange, bis die Anforderung an das Zielgerätobjekt übermittelt werden kann.
Das Framework unterstützt sowohl allgemeine E/A-Ziele als auch spezialisierte E/A-Ziele:
Allgemeine E/A-Ziele können von allen Funktions-, Filter- und Miniporttreibern verwendet werden, unterstützen jedoch keine speziellen gerätespezifischen Datenformate.
Spezialisierte E/A-Ziele ermöglichen Funktions-, Filter- und Miniporttreibern, um einfach E/A-Anforderungen zu senden, die eine spezielle, zielspezifische Datenformatierung erfordern. Derzeit bietet das Framework Unterstützung für die folgenden spezialisierten E/A-Ziele:
Wenn das Framework spezielle E/A-Ziele bereitstellt, die das Datenformat Ihres Geräts unterstützen, sollte Ihr Treiber die spezialisierten E/A-Ziele verwenden. Andernfalls sollte der Treiber allgemeine E/A-Ziele verwenden.