Typen von Windows-Treibern

Es gibt zwei grundlegende Typen von Microsoft Windows-Treibern:

  • Benutzermodustreiber werden im Benutzermodus ausgeführt, und sie stellen in der Regel eine Schnittstelle zwischen win32-Anwendungs- und Kernelmodustreibern oder anderen Betriebssystemkomponenten bereit.

    Beispielsweise werden alle Druckertreiber im Benutzermodus ausgeführt. Weitere Informationen zu Druckertreiberkomponenten finden Sie in der Einführung in das Drucken.

  • Kernelmodustreiber werden im Kernelmodus als Teil der Executive ausgeführt, die aus Kernelmodus-Betriebssystemkomponenten besteht, die E/A, Plug-and-Play-Speicher, Prozesse und Threads, Sicherheit usw. verwalten. Kernelmodustreiber werden in der Regel überschichtet. Im Allgemeinen empfangen Treiber auf höherer Ebene Daten aus Anwendungen, filtern die Daten und übergeben sie an einen Treiber auf niedrigerer Ebene, der Gerätefunktionen unterstützt.

    Einige Kernelmodustreiber sind auch WDM-Treiber, die dem Windows-Treibermodell (WDM ) entsprechen. Alle WDM-Treiber unterstützen Plug-and-Play und Energieverwaltung.

    Wie das Betriebssystem selbst werden Kernelmodustreiber als diskrete, modulare Komponenten implementiert, die über einen gut definierten Satz von erforderlichen Funktionen verfügen. Alle Kernelmodustreiber liefern eine Reihe systemdefinierter Standardtreiberroutinen.

In der folgenden Abbildung werden Kernelmodustreiber in mehrere Typen unterteilt.

Diagramm, das die Typen von Kernelmodustreibern veranschaulicht.

Wie in der Abbildung dargestellt, gibt es drei grundlegende Typen von Kernelmodustreibern in einem Treiberstapel: höchste Ebene, Zwischenebene und niedrigste Ebene. Jeder Typ unterscheidet sich nur geringfügig in der Struktur, aber stark in der Funktionalität:

  1. Treiber der höchsten Ebene. Treiber auf höchster Ebene umfassen Dateisystemtreiber (FILE System Drivers, FSDs), die Dateisysteme unterstützen, z. B.:

    • NTFS

    • Dateizuordnungstabelle (FAT)

    • CD-ROM Dateisystem (CDFS)

    Treiber der höchsten Ebene hängen immer von der Unterstützung von zugrunde liegenden Treibern auf niedrigerer Ebene ab, z. B. Funktionstreiber auf mittlerer Ebene und Hardwarebustreiber auf der niedrigsten Ebene.

  2. Zwischentreiber, z. B. virtueller Datenträger, Spiegelung oder gerätetypspezifischer Klassentreiber. Zwischentreiber sind von der Unterstützung von zugrunde liegenden treibern niedrigerer Ebene abhängig. Zwischenfahrer werden wie folgt unterteilt:

    • Funktionstreiber steuern bestimmte Peripheriegeräte in einem E/A-Bus.

    • Filtertreiber fügen sich oberhalb oder unterhalb von Funktionstreibern ein.

    • Softwarebustreiber stellen eine Reihe untergeordneter Geräte dar, an die sich noch höhere Klassen-, Funktions- oder Filtertreiber anfügen können.

      Beispielsweise ist ein Treiber, der einen Multifunktionsadapter mit einem Satz heterogener Geräte steuert, ein Softwarebustreiber.

    • Jeder vom System bereitgestellte Klassentreiber , der eine systemdefinierte Klassen-/Miniklassenschnittstelle exportiert, ist tatsächlich ein Zwischentreiber mit mindestens einem verknüpften Miniklassentreiber (manchmal auch als Minidriver bezeichnet). Jedes verknüpfte Paar aus Klasse und Minidriver bietet Funktionen, die denen eines Funktionstreibers oder eines Softwarebustreibers entsprechen.

  3. Treiber der niedrigsten Ebene steuern einen E/A-Bus, mit dem Peripheriegeräte verbunden sind. Treiber auf der niedrigsten Ebene hängen nicht von Treibern auf niedrigerer Ebene ab.

    • Hardwarebustreiber werden vom System bereitgestellt und steuern in der Regel dynamisch konfigurierbare E/A-Busse.

      Hardware-Bustreiber arbeiten mit dem Plug-and-Play-Manager zusammen, um Systemhardware-Ressourcen für alle mit den vom Treiber gesteuerten I/O-Bussen verbundenen Kindgeräte zu konfigurieren und neu zu konfigurieren. Zu diesen Hardwareressourcen gehören Zuordnungen für den Gerätespeicher und Unterbrechungsanforderungen (IRQs).

    • Ältere Treiber, die ein physisches Gerät direkt steuern, sind niedrigstufige Treiber.