Freigeben über


Erstellen eines neuen Softwaretreibers

In diesem Thema wird erläutert, wie Sie mit Visual Studio mit dem Schreiben eines neuen Softwaretreibers beginnen. Softwaretreiber unterscheiden sich von Gerätefunktionstreibern, Filtertreibern und Dateisystemtreibern, die wir in anderen Themen behandeln. Weitere Informationen zu Softwaretreibern und wie sie sich von anderen Treibertypen unterscheiden, finden Sie unter Was ist ein Treiber? und Auswählen eines Treibermodells.

Ermitteln Sie zunächst, welches Treibermodell für Ihren Softwaretreiber geeignet ist. Die drei Optionen sind das Kernel mode Driver Framework (KMDF), das legacy NT-Treibermodell und das Windows-Treibermodell (WDM). Hilfe zum Ermitteln des für Sie am besten geeigneten Modells finden Sie unter Auswählen eines Treibermodells.

Fall 1: Sie möchten KMDF verwenden

  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. Geben Sie die Felder Name und Speicherort ein, 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 mit maximal 32 Zeichen auswählen. 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 Code bereitstellen, der für Ihren Softwaretreiber spezifisch ist.

Fall 2: Sie möchten das Nt-Legacymodell verwenden

  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-Treiberdie Option WDM | Leerer WDM-Treiber.

    Hinweis

    Sie schreiben keinen WDM-Treiber, benötigen jedoch die Vorlage "Leerer WDM-Treiber ".

  3. Geben Sie die Felder Name und Speicherort ein, und wählen Sie OK aus.

  4. An diesem Punkt haben Sie ein leeres WDM-Treiberprojekt. Wählen Sie im Projektmappen-Explorer Fenster Ihr Treiberprojekt aus, halten Sie es gedrückt (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. Schließen Sie ntddk.h ein.

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

Fall 3: Sie möchten WDM verwenden

Es ist äußerst unwahrscheinlich, dass Sie WDM für einen Softwaretreiber verwenden möchten. Wenn Sie dies jedoch tun, führen Sie die folgenden Schritte aus.

  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-Treiberdie Option WDM aus.

  3. Geben Sie die Felder Name und Speicherort ein, und wählen Sie OK aus.

  4. An diesem Punkt haben Sie ein leeres WDM-Treiberprojekt. Wählen Sie im Projektmappen-Explorer Fenster Ihr Treiberprojekt aus, halten Sie es gedrückt (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. Schließen Sie wdm.h ein.

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