Freigeben über


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

In diesem Thema wird beschrieben, wie Sie einen universellen Windows-Treiber mithilfe von 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 sie.

Um zu beginnen, stellen Sie 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)".

Debuggingtools für Windows sind enthalten, wenn Sie den WDK installieren.

Erstellen und Erstellen eines Treibers

Hinweis

Wenn Sie einen neuen KMDF- oder UMDF-Treiber erstellen, müssen Sie einen Treibernamen mit 32 Zeichen oder weniger auswählen. Dieser Längengrenzwert wird 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" im linken Dropdownmenü C++ aus, wählen Sie "Windows" in der mittleren Dropdownliste aus, und wählen Sie "Treiber" in der rechten Dropdownliste aus.

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

    Screenshot des dialogfelds

  4. Geben Sie im Dialogfeld "Neues Projekt konfigurieren" im Feld "Projektname " "UmdfDriver" ein.

    Hinweis

    Wenn Sie einen neuen KMDF- oder UMDF-Treiber erstellen, müssen Sie einen Treibernamen mit 32 Zeichen oder weniger auswählen. Dieser Längengrenzwert wird in wdfglobals.h definiert.  

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

  6. Überprüfen Sie die Projektmappe und das Projekt im selben Verzeichnis, 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 Projektmappen-Explorer Fenster nicht sichtbar ist, wählen Sie im Menü "Ansicht" Projektmappen-Exploreraus.) Die Lösung verfügt über ein Treiberprojekt namens UmdfDriver. Um den Treiberquellcode 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 fenster Projektmappen-Explorer die Lösung "UmdfDriver" (1 von 1 von 1 Projekt) aus 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 beispielsweise "Debuggen" und "x64" aus.

  8. Wählen Sie im fenster Projektmappen-Explorer UmdfDriver aus und halten Sie sie gedrückt (oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie "Eigenschaften" aus. Navigieren Sie zu den Allgemeinen Konfigurationseigenschaftentreibereinstellungen >>, und beachten Sie, dass die Zielplattform standardmäßig auf "Universal" festgelegt ist.

  9. Um Ihren Treiber zu erstellen, wählen Sie im Menü "Erstellen" die Option "Projektmappe erstellen" aus. Microsoft Visual Studio zeigt den Buildfortschritt im Ausgabefenster an. (Wenn Das Ausgabefenster ist nicht sichtbar, wählen Sie "Ausgabe " im Menü "Ansicht " aus.)

    Stellen Sie sicher, dass die Buildausgabe Folgendes umfasst:

    >    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 Benutzermodustreiberdatei
    • UmdfDriver.inf – eine Informationsdatei, die Windows beim Installieren des Treibers verwendet

Bereitstellen und Installieren des universellen Windows-Treibers

Wenn Sie einen Treiber in der Regel testen und debuggen, wird der Debugger und der Treiber 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 zum Erstellen eines Treibers auf dem Hostcomputer verwendet. 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 Den 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 Lösungsdatei UmdfDriver.sln doppelklicken.

  2. Wählen Sie im fenster Projektmappen-Explorer UmdfDriver aus und halten Sie sie 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. Überprüfen Sie vor der Bereitstellung vorherige Treiberversionen entfernen.

  5. Wählen Sie für den Zielgerätenamen 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 ist die Hardware-ID "Root\UmdfDriver". Wählen Sie OK aus.

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

    Beachten Sie in dieser Übung, dass die Hardware-ID keine echte Hardware identifiziert. Es identifiziert ein imaginäres Gerät, das eine Stelle 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. Wechseln Sie im fenster Projektmappen-Explorer 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ü "Debuggen" die 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 in Anspruch nehmen.

Verwenden des Treibermodulframeworks (DMF)

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

DMF als Framework ermöglicht die Erstellung von WDF-Objekten namens DMF Modules. Der Code für diese DMF-Module kann zwischen 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 das Gefühl würde anderen Treiberentwicklern Wert bieten.

DMF ersetzt WDF nicht. DMF ist ein zweites Framework, das mit WDF verwendet wird. Der Entwickler, der DMF nutzt, verwendet weiterhin WDF und alle grundtypen zum Schreiben von Gerätetreibern.

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

Entwickeln, Testen und Bereitstellen von Treibern

Debuggingtools für Windows

Schreiben Des ersten Treibers