Videos: Debuggen von UMDF-Treibern
Dieses Thema enthält eine Reihe von Videos von Abhishek Ram, die das Debuggen von User-Mode Treiberframeworktreibern (UMDF) veranschaulichen.
Nachdem Sie sich die Videos angeschaut haben, sind Sie mit den UMDF-Debuggererweiterungen vertraut und wissen, wie Sie sie in grundlegenden Debugszenarien verwenden können.
Die Videos veranschaulichen das Debuggen eines UMDF Version 1-Treibers unter älteren Windows-Versionen, sie können jedoch weiterhin die gleichen Techniken mit einem UMDF-Treiber der Version 2 verwenden, der unter aktuellen Windows-Versionen ausgeführt wird.
Hinweis In diesem Video werden die Debuggererweiterungsbefehle in Wudfext.dll beschrieben, die Sie nur zum Debuggen von TREIBERn der UMDF-Version 1 verwenden können. Zum Debuggen von UMDF-Treibern ab UMDF Version 2.0 müssen Sie stattdessen die Wdfkd.dll Debuggererweiterungsbibliothek verwenden. Es gibt Entsprechungen in Wdfkd.dll für alle Erweiterungen in Wudfext.dll. Weitere Informationen finden Sie unter Zusammenfassung der Debuggererweiterungen in Wudfext.dll und Zusammenfassung der Debuggererweiterungen in Wdfkd.dll.
Weitere Informationen zum Debuggen von UMDF finden Sie unter Debuggen von WDF-Treibern.
Voraussetzungen
Um diese Inhalte optimal nutzen zu können, sollten Sie über kenntnisse von UMDF und den Debugtools für Windows verfügen. Da jede Sitzung auf der vorherigen Sitzung basiert, wird empfohlen, diese Demonstrationen in der aufgeführten Reihenfolge anzuzeigen.
Grundlagen und Einrichtung
Erläutert die Verwendung der WDK-Beispiele und des OSR USB-FX2 Learning Kit.
In diesem Video erfahren Sie mehr über die Grundlagen des UMDF-Debuggens, einschließlich der Vorbereitung Ihres Testcomputers, der Verwendung des Devcon-Tools zum Installieren des UMDF Echo-Beispieltreibers, der Verwendung von WdfVerifier zum Identifizieren des Hostprozesses, der einen bestimmten UMDF-Treiber hostet, und die Verwendung von WdfVerifier, um den Hostprozess rechtzeitig an den Debugger anzufügen, um Initialisierungscode zu debuggen. Dieses Video zeigt auch, wie Sie ausgeführte Hostprozesse im Task-Manager auflisten und ausführende Treiber in Geräte-Manager anzeigen können.
Untersuchen der Objekthierarchie mit Debuggererweiterungen
In diesem Teil erfahren Sie, wie Sie mit dem Debuggen eines UMDF-Treibers beginnen. Das Video beschreibt, wie Sie das OSR USB-FX2-Treiberbeispiel und anwendungsbeispiel so einrichten, dass drei Instanzen der App Lese-, Schreib- und Geräte-E/A-Steuerungsanforderungen an den Treiber senden. Sie sehen, wie die Anforderungen zuerst an den Reflektor und dann an den Hostprozess des Benutzermodustreibers fließen. In diesem Video wird die WDF-Objekthierarchie für das FX2-Treiberbeispiel vorgestellt und erläutert, wie sie die folgenden UMDF-Debuggererweiterungen verwenden, um die UMDF-Objekthierarchie zu durchlaufen:
Informationen zu UMDF 2 finden Sie unter Zusammenfassung der Debuggererweiterungen in Wdfkd.dll, z . B. !wdfkd.wdfumdevstacks.
Zugreifen auf Framework-USB-Objekte
Hier erfahren Sie, wie Sie die USB-Frameworkobjekte des Treibers untersuchen. Dazu navigieren Sie durch die WDF-Objektharchie, um die USB-Pipe-Objekte, USB-Schnittstellenobjekte und USB-E/A-Zielobjekte zu erreichen.
E/A-Anforderungen und Warteschlangen
In diesem Video verwenden Sie den Debugger, um die E/A-Anforderungsobjekte und Frameworkwarteschlangenobjekte des Treibers zu untersuchen.
Dateiobjekte und Rückrufobjekte
In diesem Teil erfahren Sie, wie Sie Frameworkdateiobjekte sowie die Rückrufobjekte des Treibers untersuchen.
Nachverfolgen von E/A-Anforderungen, die von einem UMDF-Treiber gesendet werden
Hier erfahren Sie, wie Sie das App Verifier-Tool verwenden, um Das Debuggen zu unterstützen. Außerdem erfahren Sie, wie Sie Treiberinitialisierungscode debuggen und anforderungen nachverfolgen, die von einem UMDF-Treiber an den Kernelstapel gesendet werden.
Der Treiber schließt eine E/A-Anforderung nicht ab.
Im abschließenden Video untersuchen Sie einen Fall, in dem ein UMDF-Treiber eine empfangene Anforderung nicht erfüllt, und Sie erfahren mehr über die Objektverfolgungs- und Referenznachverfolgungsfunktionen des Frameworks.