Vorteile des Schreibens von UMDF-Treibern
In diesem Thema werden die Vorteile des Schreibens eines User-Mode Driver Framework-Treibers (UMDF) anstelle eines Kernelmodustreibers beschrieben.
Wenn Sie einen UMDF-Treiber schreiben, profitieren Sie von folgenden Vorteilen:
UMDF-Treiber tragen zu einer höheren Betriebssystemstabilität bei, da sie nur Zugriff auf den Adressraum des Prozesses haben, in dem sie ausgeführt werden.
Da UMDF-Treiber unter dem LocalService-Konto ausgeführt werden, haben sie nur eingeschränkten Zugriff auf die Daten eines Benutzers oder auf Systemdateien.
Benutzermodustreiber funktionieren in einer viel einfacheren Umgebung als Kernelmodustreiber. Kernelmodustreiber müssen beispielsweise IRQL, Seitenfehler und Threadkontext berücksichtigen. Im Benutzermodus sind diese Probleme jedoch nicht vorhanden. Benutzermodustreiber werden immer in einem anderen Thread als der anfordernde Prozess ausgeführt und können immer Seitenfehler annehmen.
UMDF Version 2 bietet in den meisten Bereichen Featureparität mit KMDF. Einen vollständigen Vergleich finden Sie unter Vergleich der UMDF 2-Funktionalität mit KMDF.
UMDF Version 2 erleichtert die Konvertierung zwischen KMDF und UMDF. Weitere Informationen finden Sie unter Konvertieren eines KMDF-Treibers in einen UMDF 2-Treiber (und umgekehrt).
Sie können UMDF-Treiber mithilfe eines Debuggers im Benutzermodus oder ab UMDF Version 2 mit einem Kernelmodusdebugger debuggen.
Sie können die Wdfkd.dll Debuggererweiterungsbefehle mit KMDF und ab UMDF Version 2 verwenden. Weitere Informationen finden Sie unter Debuggererweiterungen.
Ein grundlegendes Ziel des gesamten WDF-Modells besteht darin, intelligente Standardwerte bereitzustellen, sodass Sie sich auf Ihre Gerätehardware konzentrieren und vermeiden können, Code zu schreiben, um Aufgaben auszuführen, die für die meisten Treiber üblich sind.
Um dieses Ziel zu erreichen, ist das Framework so konzipiert, dass es mit Treibern auf "Opt-In"-Basis arbeitet. Wenn Sie einen UMDF-Treiber schreiben, stellen Sie Rückrufroutinen nur für die Ereignisse bereit, die sich auf Ihr Gerät auswirken. Beispielsweise müssen einige Geräte unmittelbar nach dem Einschalten und kurz vor dem Ausschalten eingreifen. Der Treiber für ein solches Gerät kann Rückruffunktionen implementieren, die das Framework zu diesen Zeiten aufruft.
Der Treiber enthält Code, um nur die Ereignisse zu behandeln, für die sein Gerät gerätespezifische Unterstützung erfordert. Alle anderen Ereignisse können durch Framework-Standardeinstellungen behandelt werden.
Darüber hinaus kann ein Treiber seine E/A-Anforderungswarteschlangen so konfigurieren, dass das Framework das Senden von Anforderungen beendet, während sich das Gerät in einem Zustand mit geringer Leistung befindet, und die Verteilung fortgesetzt wird, nachdem das Gerät in den Betriebszustand zurückgekehrt ist. Wenn eine E/A-Anforderung eingeht, während sich das Gerät in einem Energiesparzustand befindet, kann das Framework das Gerät automatisch einschalten.