Erstellen eines neuen Gerätefunktionstreibers
In diesem Artikel wird erläutert, wie Sie mit Visual Studio mit dem Schreiben eines neuen Gerätefunktionstreibers beginnen. Gerätefunktionstreiber unterscheiden sich von Filtertreibern, Softwaretreibern und Dateisystemtreibern, die wir in anderen Artikeln behandeln. Informationen zu Gerätefunktionstreibern und deren Unterschiede zu anderen Treibertypen finden Sie unter Was ist ein Treiber?, Auswählen eines Treibermodells und Geräteknoten und Gerätestapel.
Legen Sie zunächst fest, wo Ihr Gerät in die Liste der Technologien passt, die unter Geräte- und Treibertechnologien beschrieben sind. Informationen dazu, welche Treibermodelle für Ihr Gerät verfügbar sind, finden Sie in der Dokumentation zu dieser bestimmten Technologie. Das empfohlene Treibermodell variiert von Technologie zu Technologie. Für einige Technologien empfiehlt die Dokumentation die Verwendung des Benutzermodustreiberframeworks (UMDF) oder des Kernelmodustreiberframeworks (KMDF). Für andere Technologien wird in der Dokumentation erläutert, wie ein Minidriver erstellt wird, der Teil eines Treiberpaars ist. Minidriver werden unter verschiedenen Namen verwendet, einschließlich Miniport und Miniklasse.
Ermitteln Sie, 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
- Starten Sie Visual Studio.
- Wählen Sie im Startdialogfeld Neues Projekt erstellen aus, oder wählen Sie Neu | Projekt im Visual Studio-Menü Datei .
- Suchen Sie im rechten Bereich des Dialogfelds Neues Projekt erstellen nach Benutzermodustreiber (UMDF V2) und wählen Sie ihn aus.
- Wählen Sie Weiter aus.
- Füllen Sie die Felder Projektname, Speicherort und Projektmappenname aus, und wählen Sie Erstellen 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 mit maximal 32 Zeichen auswählen. Diese Längenbegrenzung ist in wdfglobals.h definiert.
- 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 für Ihr Gerät spezifischen Code bereitstellen. Informationen zu den Schnittstellen, die Sie implementieren müssen, finden Sie in der Dokumentation für Ihre Technologie.
Fall 2: Die Dokumentation für Ihre Technologie empfiehlt KMDF
- Starten Sie Visual Studio.
- Wählen Sie im Startdialogfeld Neues Projekt erstellen aus, oder wählen Sie Neu | Projekt im Visual Studio-Menü Datei .
- Suchen Sie im rechten Bereich des Dialogfelds Neues Projekt erstellen nach Kernelmodustreiber (KMDF), und wählen Sie ihn aus.
- Wählen Sie Weiter aus.
- Füllen Sie die Felder Projektname, Speicherort und Projektmappenname aus, und wählen Sie Erstellen 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.
- 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 für Ihr Gerät spezifischen Code bereitstellen. Weitere Informationen zu den Methoden, die Sie implementieren müssen, finden Sie in der Dokumentation für Ihre Technologie.
Fall 3: In der Dokumentation für Ihre Technologie wird ein Minidriver-Modell beschrieben.
Wenn Ihre Gerätetechnologie über einen Miniport, eine Miniklasse oder ein anderes Minidriver-Modell verfügt, überprüfen Sie, ob Visual Studio über eine bestimmte Vorlage für das Modell verfügt.
- Starten Sie Visual Studio.
- Wählen Sie im Startdialogfeld Neues Projekt erstellen aus, oder wählen Sie Neu | Projekt im Visual Studio-Menü Datei .
- Durchsuchen Sie im rechten Bereich des Dialogfelds Neues Projekt erstellen die Liste der installierten Vorlagen, um eine Vorlage für den Treibertyp zu finden, den Sie schreiben müssen.
- Wenn Sie eine Vorlage für Ihren Treibertyp finden, wählen Sie sie aus.
- Wählen Sie Weiter aus.
- Füllen Sie die Felder Projektname, Speicherort und Projektmappenname aus, und wählen Sie Erstellen aus.
- Wenn Ihnen ein Treiber-Assistent angezeigt wird, durchlaufen Sie den Assistenten, um Ihr Treiberprojekt zu erstellen.
- An diesem Punkt verfügen Sie über ein Treiberprojekt, das den allgemeinen Code implementiert, der für Ihren Treiber erforderlich ist. Jetzt können Sie den für Ihr Gerät spezifischen Code bereitstellen. Weitere Informationen zu den Funktionen, die Sie implementieren müssen, finden Sie in der Dokumentation für Ihre Technologie.
Wenn Ihre Gerätetechnologie über ein Minidriver-Modell verfügt und Sie keine bestimmte Vorlage für Ihren Minidrivertyp finden können, wird die WdM-Vorlage (Windows Driver Model) höchstwahrscheinlich Ihr Ausgangspunkt sein. Anleitungen finden Sie in Ihrer technologiespezifischen Dokumentation. In seltenen Fällen können Sie KMDF verwenden, um einen Minidriver zu schreiben, aber normalerweise ist der Ausgangspunkt WDM.
- Starten Sie Visual Studio.
- Wählen Sie im Startdialogfeld Neues Projekt erstellen aus, oder wählen Sie Neu | Projekt im Visual Studio-Menü Datei .
- Suchen Sie im rechten Bereich des Dialogfelds Neues Projekt erstellen nach leerem WDM-Treiber, und wählen Sie ihn aus.
- Wählen Sie Weiter aus.
- Füllen Sie die Felder Projektname, Speicherort und Projektmappenname aus, und wählen Sie Erstellen aus.
- An diesem Punkt haben Sie ein leeres WDM-Treiberprojekt. Klicken Sie im Projektmappen-Explorer Fenster mit der rechten Maustaste auf Ihr Treiberprojekt, und wählen Sie Hinzufügen | Neues Element.
- Geben Sie im Dialogfeld Neues Element hinzufügen einen Namen für Ihre .cpp-Datei ein, und wählen Sie Hinzufügen aus.
Hinweis
Wenn Sie eine C-Datei anstelle einer .cpp-Datei erstellen möchten, geben Sie einen Namen mit der Erweiterung .c ein.
- Weitere Informationen zu den Funktionen, die Sie implementieren müssen, finden Sie in der Dokumentation für Ihre Technologie. Wenn Sie Ihre Funktionen implementieren und organisieren, können Sie weitere .cpp- oder C-Dateien hinzufügen.