Typen von WDM-Treibern

Es gibt drei Arten von WDM-Treibern: Bustreiber, Funktionstreiber und Filtertreiber.

  • Ein Bustreiber fährt ein einzelnes E/A-Busgerät an und bietet geräteunabhängige Funktionen pro Slot. Bustreiber erkennen und melden auch untergeordnete Geräte, die mit dem Bus verbunden sind.
  • Ein Funktionstreiber treibt ein einzelnes Gerät an.
  • Ein Filtertreiber filtert E/A-Anforderungen für ein Gerät, eine Geräteklasse oder einen Bus.

In diesem Kontext ist ein Bus jedes Gerät, an das andere physische, logische oder virtuelle Geräte angeschlossen sind. ein Bus umfasst herkömmliche Busse wie SCSI und PCI sowie parallele Ports, serielle Ports und i8042-Ports.

Für Treiberentwickler ist es wichtig, die verschiedenen Arten von WDM-Treibern zu verstehen und zu wissen, welche Art von Treibern sie schreiben. Beispielsweise hängt es davon ab, welche Art von Treiber geschrieben wird (Bustreiber, Funktionstreiber oder Filtertreiber), ob ein Treiber jedes Plug & Play IRP verarbeitet und wie diese IRPs behandelt werden.

Die folgende Abbildung zeigt die Beziehung zwischen Bustreiber, Funktionstreiber und Filtertreibern für ein Gerät.

Diagramm, das mögliche Treiberebenen veranschaulicht.

Jedes Gerät verfügt in der Regel über einen Bustreiber für den übergeordneten E/A-Bus, einen Funktionstreiber für das Gerät und null oder mehr Filtertreiber für das Gerät. Ein Treiberentwurf, der viele Filtertreiber erfordert, ergibt keine optimale Leistung.

Die Treiber in der vorherigen Abbildung sind die folgenden:

  1. Ein Bustreiber verwendet einen Buscontroller, einen Adapter oder eine Brücke. Bustreiber sind erforderliche Treiber; es gibt einen Bustreiber für jeden Bustyp auf einem Computer. Microsoft stellt Bustreiber für die meisten gängigen Busse bereit. IHVs und OEMs können andere Bustreiber bereitstellen.

  2. Ein Busfiltertreiber bietet in der Regel einen Mehrwert für einen Bus und wird von Microsoft oder einem System-OEM bereitgestellt. Es kann eine beliebige Anzahl von Busfiltertreibern für einen Bus geben.

  3. Untere Filtertreiber ändern in der Regel das Verhalten der Gerätehardware. Sie sind optional und werden in der Regel von IHVs bereitgestellt. Es kann eine beliebige Anzahl von Filtertreibern auf niedrigerer Ebene für ein Gerät geben.

  4. Ein Funktionstreiber ist der Standard Treiber für ein Gerät. Ein Funktionstreiber wird in der Regel vom Gerätehersteller geschrieben und ist erforderlich (es sei denn, das Gerät wird im rohen Modus verwendet).

  5. Filtertreiber der oberen Ebene bieten in der Regel zusätzliche Funktionen für ein Gerät. Sie sind optional und werden in der Regel von IHVs bereitgestellt.

In den folgenden Themen werden die drei allgemeinen Typen von WDM-Treibern – Bustreiber, Funktionstreiber, Filtertreiber – ausführlich beschrieben. Außerdem ist ein Beispiel für WDM-Treiberschichtung enthalten, die BEISPIEL-USB-Treiber verwendet.

In diesem Abschnitt