Auswählen eines Treibermodells
Microsoft Windows bietet eine Vielzahl von Treibermodellen, mit denen Sie Treiber schreiben können. Die Strategie für die Auswahl des besten Treibermodells hängt vom Typ des Treibers ab, den Sie schreiben möchten. Hier sind die Optionen:
- Gerätefunktionstreiber
- Gerätefiltertreiber
- Softwaretreiber
- Dateisystemfiltertreiber
- Dateisystemtreiber
Eine Diskussion über die Unterschiede zwischen den verschiedenen Treibertypen finden Sie unter Was ist ein Treiber? und Geräteknoten und Gerätestapel. In den folgenden Abschnitten wird erläutert, wie Sie ein Modell für jeden Treibertyp auswählen.
Auswählen eines Treibermodells für einen Gerätefunktionstreiber
Beim Entwerfen eines Hardwaregeräts ist einer der ersten Punkte zu berücksichtigen, ob Sie einen Funktionstreiber schreiben müssen. Stellen Sie die folgenden Fragen:
Können Sie vermeiden, einen Treiber vollständig zu schreiben? Wenn Sie einen Funktionstreiber schreiben müssen, was ist das beste zu verwendende Treibermodell? Um diese Fragen zu beantworten, bestimmen Sie, wo Ihr Gerät in die Liste der technologien passt, die in Geräte- und Treibertechnologien beschrieben sind. In der Dokumentation zu dieser bestimmten Technologie können Sie ermitteln, ob Sie einen Funktionstreiber schreiben müssen, und um zu erfahren, welche Treibermodelle für Ihr Gerät verfügbar sind.
Einige der einzelnen Technologien verfügen über Minidrivermodelle. In einem Minidriver-Modell besteht der Gerätetreiber aus zwei Teilen: einem, der allgemeine Aufgaben verarbeitet, und eines, das gerätespezifische Aufgaben verarbeitet. In der Regel schreibt Microsoft den allgemeinen Teil, und der Gerätehersteller schreibt den gerätespezifischen Teil. Die gerätespezifischen Teile weisen eine Vielzahl von Namen auf, von denen die meisten das Präfix mini teilen. Hier sind einige der Namen, die in Minidrivermodellen verwendet werden:
- Miniporttreiber anzeigen
- Audio-Miniporttreiber
- Akku-Miniklassentreiber
- Bluetooth-Protokolltreiber
- HID Minidriver
- WIA minidriver
- NDIS-Miniporttreiber
- Speicher-Miniporttreiber
- Streaming-Minidriver
Eine Übersicht über Minidrivermodelle finden Sie unter Minidriver und Treiberpaare.
Nicht jede in den Geräte- und Treibertechnologien aufgeführte Technologie verfügt über ein dediziertes Minidriver-Modell. Die Dokumentation für eine bestimmte Technologie kann Ihnen empfehlen, das Kernelmodus-Treiberframework (KERNEL-Mode Driver Framework, KMDF) zu verwenden. Die Dokumentation für eine andere Technologie kann Ihnen empfehlen, das User-Mode Driver Framework (UMDF) zu verwenden. Der Wichtigste ist, dass Sie beginnen sollten, die Dokumentation für Ihre spezifische Gerätetechnologie zu studieren. Wenn Ihre Gerätetechnologie über ein Minidrivermodell verfügt, müssen Sie das Minidriver-Modell verwenden. Folgen Sie andernfalls den Anweisungen in der technologiespezifischen Dokumentation, ob Sie die UMDF, KMDF oder das Windows Driver Model (WDM) verwenden möchten.
Auswählen eines Treibermodells für einen Gerätefiltertreiber
Häufig nehmen mehrere Treiber an einer einzelnen E/A-Anforderung teil (z. B. das Lesen von Daten von einem Gerät). Die Treiber werden in einem Stapel angeordnet, und die herkömmliche Möglichkeit, den Stapel zu visualisieren, ist mit dem ersten Treiber oben und dem letzten Treiber am unteren Rand. Der Stapel verfügt über einen Funktionstreiber und kann auch Filtertreiber haben. Eine Diskussion zu Funktionstreibern und Filtertreibern finden Sie unter Was ist ein Treiber? und Geräteknoten und Gerätestapel.
Wenn Sie sich darauf vorbereiten, einen Filtertreiber für ein Gerät zu schreiben, bestimmen Sie, wo Ihr Gerät in die Liste der in den Geräte- und Treibertechnologien beschriebenen Technologien passt. Überprüfen Sie, ob die Dokumentation für Ihre jeweilige Gerätetechnologie anleitungen zum Auswählen eines Filtertreibermodells enthält. Wenn die Dokumentation für Ihre Gerätetechnologie diese Anleitung nicht bietet, sollten Sie zunächst UMDF als Treibermodell verwenden. Wenn Ihr Filtertreiber Zugriff auf Datenstrukturen benötigt, die über UMDF nicht verfügbar sind, sollten Sie KMDF als Treibermodell verwenden. In dem seltenen Fall, dass Ihr Treiber Zugriff auf Datenstrukturen benötigt, die nicht über KMDF verfügbar sind, verwenden Sie WDM als Treibermodell.
Auswählen eines Treibermodells für einen Softwaretreiber
Ein Treiber, der keinem Gerät zugeordnet ist, wird als Softwaretreiber bezeichnet. Eine Diskussion zu Softwaretreibern finden Sie unter Was ist ein Treiber?. Softwaretreiber sind nützlich, da sie im Kernelmodus ausgeführt werden können, wodurch sie Zugriff auf geschützte Betriebssystemdaten erhalten. Informationen zu Prozessormodi finden Sie unter "Benutzermodus" und "Kernelmodus".
Bei einem Softwaretreiber sind Ihre beiden Optionen KMDF und das ältere Windows NT-Treibermodell. Mit KMDF und dem älteren Windows NT-Modell können Sie Ihren Treiber schreiben, ohne sich gedanken über Plug & Play (PnP) und die Energieverwaltung zu machen. Sie können sich stattdessen auf die hauptaufgaben Ihres Fahrers konzentrieren. Bei KMDF müssen Sie sich nicht mit PnP und Leistung befassen, da das Framework PnP und Leistung für Sie verarbeitet. Mit dem älteren Windows NT-Modell müssen Sie sich keine Gedanken über PnP und Power machen, da Kernelmodusdienste in einer Umgebung arbeiten, die vollständig unabhängig von PnP und Power Management ist.
Unsere Empfehlung ist, dass Sie KMDF verwenden, insbesondere, wenn Sie bereits damit vertraut sind. Wenn Ihr Treiber vollständig unabhängig von PnP und Energieverwaltung sein soll, verwenden Sie das ältere Windows NT-Modell. Wenn Sie einen Softwaretreiber schreiben müssen, der über Stromübergänge oder PnP-Ereignisse informiert ist, können Sie das ältere Windows NT-Modell nicht verwenden. Sie müssen KMDF verwenden.
Hinweis: In dem sehr seltenen Fall, dass Sie einen Softwaretreiber schreiben müssen, der PnP- oder Stromereignisse kennt, und Ihr Treiber benötigt Zugriff auf Daten, die über KMDF nicht verfügbar sind, müssen Sie WDM verwenden.
Auswählen eines Treibermodells für einen Dateisystemtreiber
Hilfe zum Auswählen eines Modells für einen Dateisystemtreiber finden Sie unter Dateisystemtreiberbeispiele. Beachten Sie, dass Dateisystemtreiber komplex sein können und möglicherweise Kenntnisse über erweiterte Konzepte für die Treiberentwicklung erfordern.
Auswählen eines Treibermodells für einen Dateisystemfiltertreiber
Hilfe zum Auswählen eines Modells für einen Dateisystemfiltertreiber finden Sie unter Dateisystem-Minifiltertreiber und Dateisystemfiltertreiber.
Auswählen eines Treibermodells für einen Dateisystem-Minifiltertreiber
Hilfe beim Auswählen eines Modells für einen Dateisystem-Minifiltertreiber finden Sie unter "Dateisystem-Minifiltertreiber".