Share via


Schreiben eines universellen Windows-Treibers (UMDF 2) basierend auf einer Vorlage

In diesem Thema wird beschrieben, wie Sie einen universellen Windows-Treiber mit User-Mode Driver Framework (UMDF) 2 schreiben. Sie beginnen mit einer Microsoft Visual Studio-Vorlage und stellen dann Ihren Treiber auf einem separaten Computer bereit und installieren diesen.

Stellen Sie für den Einstieg sicher, dass Sie über die neueste Version von Microsoft Visual Studio und das Windows Driver Kit (WDK) verfügen. Downloadlinks finden Sie unter Herunterladen des Windows Driver Kit (WDK).

Debugtools für Windows sind bei der Installation des WDK enthalten.

Erstellen und Erstellen eines Treibers

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.

  1. Öffnen Sie Visual Studio. Wählen Sie im Menü Datei die Option Neues > Projekt aus.

  2. Wählen Sie im Dialogfeld Neues Projekt erstellen in der linken Dropdownliste C++ aus, wählen Sie in der mittleren Dropdownliste Windows und in der rechten Dropdownliste Treiber aus.

  3. Wählen Sie in der Liste der Projekttypen benutzermodustreiber (UMDF V2) aus. Wählen Sie Weiter aus.

    Screenshot des Dialogfelds

  4. Geben Sie im Dialogfeld Neues Projekt konfigurieren den Namen "UmdfDriver" in das Feld Projektname ein.

    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.  

  5. Geben Sie im Feld Speicherort das Verzeichnis ein, in dem Sie das neue Projekt erstellen möchten.

  6. Aktivieren Sie Projektmappe und Projekt im gleichen Verzeichnis platzieren , und wählen Sie Erstellen aus.

    Screenshot des Dialogfelds

    Visual Studio erstellt ein Projekt und eine Projektmappe. Diese werden im Fenster Projektmappen-Explorer angezeigt. (Wenn das fenster Projektmappen-Explorer nicht angezeigt wird, wählen Sie im Menü Ansichtdie Option Projektmappen-Explorer aus.) Die Projektmappe verfügt über ein Treiberprojekt mit dem Namen UmdfDriver. Um den Quellcode des Treibers anzuzeigen, öffnen Sie eine der Dateien unter Quelldateien. Driver.c und Device.c sind gute Ausgangspunkte.

    Screenshot des Projektmappen-Explorers mit den Dateien im Treiberprojekt.

  7. Wählen Sie im Projektmappen-Explorer-Fensterprojektmappe "UmdfDriver" (1 von 1 Projekt) und halten Sie sie gedrückt (oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie Configuration Manager aus. Wählen Sie eine Konfiguration und Plattform für das Treiberprojekt aus. Wählen Sie z. B . Debuggen und x64 aus.

  8. Klicken Sie im fenster Projektmappen-Explorer auf UmdfDriver, und halten Sie es gedrückt (oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie Eigenschaften aus. Navigieren Sie zu Konfigurationseigenschaften > Treibereinstellungen > Allgemein, und beachten Sie, dass die Zielplattform standardmäßig universal ist.

  9. Wählen Sie zum Erstellen Ihres Treibers im Menü Erstellen die Option Projektmappeerstellen aus. Microsoft Visual Studio zeigt den Buildstatus im Fenster Ausgabe an. (Wenn das Fenster Ausgabe nicht angezeigt wird, wählen Sie im Menü Ansicht die Option Ausgabe aus.)

    Überprüfen Sie, ob die Buildausgabe Folgendes enthält:

    >    Driver is 'Universal'.
    

    Wenn Sie überprüft haben, ob die Projektmappe erfolgreich erstellt wurde, können Sie Visual Studio schließen.

  10. Um den integrierten Treiber anzuzeigen, wechseln Sie in Explorer zu Ihrem UmdfDriver-Ordner und dann zu x64\Debug\UmdfDriver. Das Verzeichnis enthält die folgenden Dateien:

    • UmdfDriver.dll : Die Treiberdatei für den Benutzermodus
    • UmdfDriver.inf – eine Informationsdatei, die Windows bei der Installation des Treibers verwendet

Bereitstellen und Installieren des universellen Windows-Treibers

Wenn Sie einen Treiber testen und debuggen, werden der Debugger und der Treiber in der Regel auf separaten Computern ausgeführt. Der Computer, auf dem der Debugger ausgeführt wird, wird als Hostcomputer bezeichnet, und der Computer, auf dem der Treiber ausgeführt wird, wird als Zielcomputer bezeichnet. Der Zielcomputer wird auch als Testcomputer bezeichnet.

Bisher haben Sie Visual Studio verwendet, um einen Treiber auf dem Hostcomputer zu erstellen. Jetzt müssen Sie einen Zielcomputer konfigurieren. Befolgen Sie die Anweisungen unter Bereitstellen eines Computers für die Treiberbereitstellung und -tests (WDK 10). Anschließend können Sie Ihren Treiber bereitstellen, installieren, laden und debuggen:

  1. Öffnen Sie auf dem Hostcomputer Ihre Projektmappe in Visual Studio. Sie können in Ihrem UmdfDriver-Ordner auf die Projektmappendatei UmdfDriver.sln doppelklicken.

  2. Klicken Sie im fenster Projektmappen-Explorer auf UmdfDriver, und halten Sie es gedrückt (oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie Eigenschaften aus.

  3. Wechseln Sie im Fenster UmdfDriver-Eigenschaftenseiten zu Konfigurationseigenschaften > Treiberinstallationsbereitstellung>, wie hier gezeigt.

  4. Aktivieren Sie Vorherige Treiberversionen vor der Bereitstellung entfernen.

  5. Wählen Sie unter Name des Zielgeräts den Namen des Computers aus, den Sie zum Testen und Debuggen konfiguriert haben.

  6. Wählen Sie Hardware-ID-Treiberupdate aus, und geben Sie die Hardware-ID für Ihren Treiber ein. In dieser Übung lautet die Hardware-ID Root\UmdfDriver. Klicken Sie auf OK.

    Screenshot der Umdfdriver-Eigenschaftenseiten mit ausgewählter Installation des Bereitstellungstreibers

    Hinweis In dieser Übung identifiziert die Hardware-ID keine echte Hardware. Es identifiziert ein imaginäres Gerät, das einen Platz in der Gerätestruktur als untergeordnetes Element des Stammknotens erhält. Wählen Sie für echte Hardware nicht Hardware-ID-Treiberupdate aus. Wählen Sie stattdessen Installieren und Überprüfen aus. Die Hardware-ID wird in der Inf-Datei (Driver's Information) angezeigt. Navigieren Sie im Projektmappen-Explorer-Fenster zu UmdfDriver-Treiberdateien>, und doppelklicken Sie auf UmdfDriver.inf. Die Hardware-ID befindet sich unter [Standard.NT$ARCH$].

    [Standard.NT$ARCH$]
    %DeviceName%=MyDevice_Install,Root\UmdfDriver
    
  7. Wählen Sie im Menü Debuggendie Option Debuggen starten aus, oder drücken Sie F5 auf der Tastatur.

  8. Warten Sie, bis Ihr Treiber bereitgestellt, installiert und auf dem Zielcomputer geladen wurde. Dies kann einige Minuten dauern.

Verwenden des Treibermodulframeworks (DMF)

Das Driver Module Framework (DMF) ist eine Erweiterung von WDF, die zusätzliche Funktionen für WDF-Treiberentwickler ermöglicht. Es hilft Entwicklern, alle Arten von WDF-Treibern besser und schneller zu schreiben.

DMF als Framework ermöglicht die Erstellung von WDF-Objekten, die als DMF-Module bezeichnet werden. Der Code für diese DMF-Module kann von verschiedenen Treibern gemeinsam verwendet werden. Darüber hinaus bündelt DMF eine Bibliothek von DMF-Modulen, die wir für unsere Treiber entwickelt haben und die anderen Treiberentwicklern einen Mehrwert bieten würden.

DIE DMF ersetzt WDF nicht. DMF ist ein zweites Framework, das mit WDF verwendet wird. Der Entwickler, der DMF nutzt, verwendet weiterhin WDF und alle seine Grundtypen, um Gerätetreiber zu schreiben.

Weitere Informationen finden Sie unter Driver Module Framework (DMF).

Entwickeln, Testen und Bereitstellen von Treibern

Debuggingtools für Windows

Schreiben Des ersten Treibers