Freigeben über


Erstellen eines neuen Filtertreibers

In diesem Thema wird erläutert, wie Sie visual Studio verwenden, um mit dem Schreiben eines neuen Filtertreibers zu beginnen. Filtertreiber unterscheiden sich von Gerätefunktionstreibern, Softwaretreibern und Dateisystemtreibern, die in anderen Themen behandelt werden. Informationen zu Filtertreibern und wie sie sich von anderen Treibertypen unterscheiden, finden Sie in den folgenden Themen.

Ermitteln Sie zunächst, welches Treibermodell für Ihren Filtertreiber geeignet ist. Hilfe zum Bestimmen, welches Modell für Sie am besten geeignet ist, finden Sie unter Auswählen eines Treibermodells. Wenn Sie einen Filtertreiber für ein Hardwaregerät schreiben, bestimmen Sie, wo Ihr Gerät in die Liste der Technologien passt, die unter Geräte- und Treibertechnologien beschrieben sind. In der Dokumentation für diese bestimmte Technologie erfahren Sie, ob es Anleitungen für die Auswahl eines Filtertreibermodells gibt. Das empfohlene Filtertreibermodell variiert von Technologie zu Technologie. Für einige Technologien empfiehlt die Dokumentation die Verwendung des User Mode Driver Framework (UMDF), des Kernel Mode Driver Framework (KMDF) oder des Windows-Treibermodells (WDM). Für andere Technologien enthält die Dokumentation explizite Details zum Schreiben eines Filtertreibers. Einige Technologien verfügen über Minifiltermodelle. Für einige Technologien gibt es möglicherweise keine Empfehlung für ein Filtertreibermodell.

Ermitteln Sie als Nächstes, welcher der folgenden Fälle Ihre Treibermodellempfehlung beschreibt, und führen Sie die Folgenden Schritte aus:

Fall 1: Die Dokumentation für Ihre Technologie empfiehlt UMDF.

  1. Wählen Sie in Visual Studio im Menü Datei die Option Neu | Projekt.
  2. Suchen Sie im Dialogfeld Neues Projekt im linken Bereich nach Visual C++, und wählen Sie es aus. Windows-Treiber | WDF.
  3. Wählen Sie im mittleren Bereich Benutzermodustreiber (UMDF) aus.
  4. Füllen Sie die Felder Name und Speicherort aus, und wählen Sie OK aus. Weitere Informationen finden Sie unter Schreiben eines UMDF-Treibers basierend auf einer Vorlage. Hinweis Wenn Sie einen neuen UMDF-Treiber erstellen, müssen Sie einen Treibernamen auswählen, der maximal 32 Zeichen umfasst. Diese Längenbegrenzung ist in wdfglobals.h definiert.
  5. An diesem Punkt verfügen Sie über ein Treiberprojekt, das den allgemeinen Code implementiert, der für die meisten UMDF-Treiber erforderlich ist. Jetzt können Sie den spezifischen Code für Ihren Filter angeben.

Fall 2: Die Dokumentation für Ihre Technologie empfiehlt KMDF.

  1. Wählen Sie in Visual Studio im Menü Datei die Option Neu | Projekt.
  2. Suchen Sie im Dialogfeld Neues Projekt im linken Bereich nach WDF, und wählen Sie ihn aus.
  3. Wählen Sie im mittleren Bereich Kernelmodustreiber (KMDF) aus.
  4. Füllen Sie die Felder Name und Speicherort aus, und wählen Sie OK aus. Weitere Informationen finden Sie unter Schreiben eines KMDF-Treibers basierend auf einer Vorlage. Hinweis Wenn Sie einen neuen KMDF-Treiber erstellen, müssen Sie einen Treibernamen auswählen, der maximal 32 Zeichen umfasst. Diese Längenbegrenzung ist in wdfglobals.h definiert.
  5. An diesem Punkt verfügen Sie über ein Treiberprojekt, das den allgemeinen Code implementiert, der für die meisten KMDF-Treiber erforderlich ist. Jetzt können Sie den spezifischen Code für Ihren Filter angeben.

Fall 3: In der Dokumentation für Ihre Technologie wird ein bestimmtes Filter- oder Minifiltermodell beschrieben.

Wenn Ihre Gerätetechnologie über ein bestimmtes Filter- oder Minifiltermodell verfügt, überprüfen Sie, ob Visual Studio über eine Vorlage für das Modell verfügt.

  1. Wählen Sie in Visual Studio im Menü Datei die Option Neu | Projekt.
  2. Suchen Sie im Dialogfeld Neues Projekt im linken Bereich nach Vorlagen, und wählen Sie sie aus. Visual C++ | Windows-Treiber.
  3. Durchsuchen Sie die Liste der installierten Vorlagen, um festzustellen, ob eine Vorlage für den Typ des Filters vorhanden ist, den Sie schreiben müssen. Sie können beispielsweise unter Netzwerk die Vorlage Filter Driver: NDIS (Filtertreiber: NDIS) auswählen.
  4. Wenn unter Windows-Treiber keine Vorlage für Den Typ des Filtertreibers vorhanden ist, wählen Sie Online aus, und durchsuchen Sie die online verfügbaren Vorlagen.
  5. Wenn Sie eine Vorlage für Den Typ des Filtertreibers finden, wählen Sie die Vorlage aus, füllen Sie die Felder Name und Speicherort aus, und wählen Sie OK aus.
  6. An diesem Punkt verfügen Sie über ein Treiberprojekt, das den allgemeinen Code implementiert, der für Ihren Filtertreiber erforderlich ist. Jetzt können Sie den spezifischen Code für Ihren Filter angeben. Informationen zu den Funktionen, die Sie implementieren müssen, finden Sie in der Dokumentation für Ihre Technologie.

Wenn Ihre Gerätetechnologie über ein bestimmtes Filtermodell oder ein Minifiltermodell verfügt und Sie keine Vorlage für Ihren Typ des Filtertreibers finden können, finden Sie in der technologiespezifischen Dokumentation eine Anleitung, um zu ermitteln, ob UMDF, KMDF oder WDM verwendet werden soll.

Fall 4: Die Dokumentation für Ihre Technologie empfiehlt WDM.

  1. Wählen Sie in Visual Studio im Menü Datei die Option Neu | Projekt.

  2. Wählen Sie in Visual Studio im Dialogfeld Neues Projekt unter Windows-Treiber die Option WDM aus.

  3. Füllen Sie die Felder Name und Speicherort aus, und wählen Sie OK aus.

  4. An diesem Punkt verfügen Sie über ein leeres WDM-Treiberprojekt. Wählen Sie im fenster Projektmappen-Explorer Das Treiberprojekt aus(oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie Hinzufügen | Neues Element.

  5. Wählen Sie im Dialogfeld Neues Element hinzufügen die Option C++-Datei (.cpp) aus, geben Sie einen Namen für Ihre Datei ein, und wählen Sie OK aus.

    Hinweis Wenn Sie anstelle einer CPP-Datei eine C-Datei erstellen möchten, geben Sie einen Namen mit der Erweiterung .c ein.

  6. Implementieren Sie die funktionen, die für Ihren Filter erforderlich sind. Wenn Sie Ihre Funktionen implementieren und organisieren, können Sie sich entscheiden, zusätzliche CPP- oder C-Dateien hinzuzufügen.

Fall 5: Die Dokumentation für Ihre Technologie enthält keine Empfehlung für ein Filtertreibermodell.

  1. Ermitteln Sie, ob UMDF, KMDF oder WDM das beste Modell für Ihren Filtertreiber ist. Hilfe finden Sie unter Auswählen eines Treibermodells.

  2. Wählen Sie in Visual Studio im Menü Datei die Option Neu | Projekt.

  3. Wählen Sie in Visual Studio im Dialogfeld Neues Projekt unter Windows-Treiber eine der folgenden Vorlagen aus:

    • WDF | Benutzermodustreiber (UMDF)
    • WDF | Kernelmodustreiber (KMDF)
    • WDM | Leerer Kerneltreiber

    Hinweis Wenn Sie einen neuen KMDF- oder UMDF-Treiber erstellen, müssen Sie einen Treibernamen auswählen, der maximal 32 Zeichen umfasst. Diese Längenbegrenzung ist in wdfglobals.h definiert.

  4. Implementieren Sie die funktionen, die für Ihren Filter erforderlich sind. Erstellen Sie nach Bedarf neue C- oder CPP-Dateien.

Wenn Sie nicht sicher sind, welche Vorlage Sie verwenden sollen, sollten Sie das Windows Hardware WDK and Driver Development Forum lesen oder posten.