Freigeben über


Erstellen eines Windows-Treibers

Sie können Microsoft Visual Studio 2019 in Verbindung mit dem Windows Driver Kit (WDK) Version 2004 zum Erstellen von Windows-Treibern verwenden. Sie können Kits und Tools aus dem Windows Hardware Dev Center herunterladen.

In vielen Fällen können Sie einen veralteten Kernel-Mode-Treiber als Windows-Treiber neu kompilieren, solange der Treiber nicht mit Komponenten des Benutzermodus zusammenarbeitet. Veraltete WDM- und KMDF-Treiber sollten als Windows-Treiber für Windows 10 neu kompiliert werden, ohne dass eine Konvertierung erforderlich ist. Auch wenn die Treiber ohne Konvertierung kompiliert werden können, bedeutet dies nicht, dass der Treiber alle Anforderungen von Windows-Treibern erfüllt. Weitere Informationen zu den Anforderungen von Windows-Treibern finden Sie unter Beginnen Sie mit der Entwicklung von Windows-Treibern.

Bestehende Benutzermodus-Treiber hingegen müssen möglicherweise geändert werden, um als Windows-Treiber kompiliert werden zu können. Insbesondere darf Ihr Treiberpaket keine Abhängigkeiten außerhalb von UWP haben. Zum Beispiel sind nur einige der Win32-APIs Elemente von UWP.

Konvertieren eines bestehenden Treiberprojekts in ein Windows-Treiberprojekt

  1. Öffnen Sie in Visual Studio 2019 das vorhandene Treiberprojekt.
  2. Wählen und halten Sie im Lösungs-Explorer die Lösung (oder klicken Sie mit der rechten Maustaste darauf) und wählen Sie Konfigurationsmanager. Legen Sie das Zielbetriebssystem auf Windows 10 fest.
  3. Wählen und halten Sie das Treiberprojekt (oder klicken Sie mit der rechten Maustaste darauf) und wählen Sie Eigenschaften. Stellen Sie unter Konfigurationseigenschaften->Treiber sicher, dass Zielplattform auf Windows-Treiber festgelegt ist. Um einen Treiber zu erstellen, der nur unter Windows 10 für Desktop-Versionen ausgeführt werden kann, wählen Sie Desktop.
  4. Erstellen Sie den Treiber. Möglicherweise werden Linker-Fehler angezeigt.
  5. Beheben Sie die Fehler einen nach dem anderen, indem Sie die Log-Datei durchgehen. Informieren Sie sich auf den einzelnen Referenzseiten in der Dokumentation über mögliche alternative APIs. Wenn kein Ersatz verfügbar ist, müssen Sie Ihren Treiber möglicherweise neu entwerfen.

Erstellen eines neuen Windows-Treiberprojekts in Microsoft Visual Studio

  1. Erstellen Sie einen neuen Treiber anhand einer Vorlage (Datei->Neues Projekt->Neues Projekt erstellen->Projekttyp->Treiber->Wählen Sie die gewünschte Vorlage).

  2. Nachdem Sie das Projekt erstellt haben, markieren und halten Sie im Lösungs-Explorer die Lösung (oder klicken Sie mit der rechten Maustaste darauf) und wählen Sie Konfigurationsmanager. Setzen Sie Aktive Lösungskonfiguration auf die gewünschte Ziel-Windows-Version und Aktive Lösungsplattform auf Win32 oder x64. Wenn Arm nicht aufgeführt ist, wählen Sie <Neu...>, um für Arm zu erstellen.

    Wenn Sie Windows 10 wählen, ist das Treibermodell standardmäßig auf Universal eingestellt.

    Um das Treibermodell manuell zu ändern, markieren und halten Sie das Treiberprojekt (oder klicken Sie mit der rechten Maustaste darauf) und wählen Sie Eigenschaften. Unter Konfigurationseigenschaften->Treibereinstellungen->Allgemein finden Sie den Eintrag Zielplattform. Wählen Sie Windows-Treiber. Microsoft Visual Studio legt anhand dieser Einstellung fest, mit welchen Bibliotheken gelinkt werden soll.

    Hinweis Sie können keinen Windows-Treiber für Windows-Versionen vor Windows 10 Version 1809 erstellen.

  3. Möglicherweise müssen Sie die .inf Datei ändern, um den Anbieter zu spezifizieren, der als %ManufacturerName% Token angegeben ist, das später im Strings-Abschnitt der INF-Datei erweitert wird. Zum Beispiel:

    Provider="Contoso"
    
  4. Sie können nun die Lösung erstellen. Visual Studio linkt mit den erforderlichen Bibliotheken und generiert eine .cat-Datei, eine .inf-Datei und eine Binärdatei für den Treiber.

Erstellen eines neuen universellen Anwendungs- oder DLL-Projekts in Microsoft Visual Studio

  1. Erstellen Sie einen neuen Treiber aus einer Vorlage (Datei->Neues Projekt->Neues Projekt erstellen->Projekttyp->Treiber->Wählen Sie die gewünschte Vorlage) und wählen Sie Leere Desktop-Anwendung für Treiber (Universal) oder Leere Dll für Treiber (Universal).
  2. Nachdem Sie das Projekt erstellt haben, markieren und halten Sie im Lösungs-Explorer die Lösung (oder klicken Sie mit der rechten Maustaste darauf) und wählen Sie Konfigurationsmanager. Setzen Sie Aktive Lösungskonfiguration auf die gewünschte Ziel-Windows-Version und Aktive Lösungsplattform auf Win32 oder x64. Wenn ARM nicht aufgeführt ist, wählen Sie <Neu...>, um für ARM zu erstellen. Wenn Sie Windows 10 wählen, ist das Anwendungsmodell standardmäßig auf Universal eingestellt. Um die Zielplattform manuell zu ändern, markieren und halten Sie das Treiberprojekt (oder klicken Sie mit der rechten Maustaste darauf) und wählen Sie Eigenschaften. Unter Konfigurationseigenschaften->Treibereinstellungen->Allgemein finden Sie den Eintrag Zielplattform.
  3. Erstellen Sie die Projektmappe.

Informationen über die Konfigurationseinstellungen, die Sie in Visual Studio bei der Erstellung Ihres Treibers festlegen können, finden Sie unter Erstellung eines Treibers mit dem WDK.