Ermitteln, warum UMDF ausstehende Dateien zum Zeitpunkt der Geräteentfernung angibt

In diesem Thema wird beschrieben, wie Sie die Wudfext.dll-Debuggererweiterungen in Verbindung mit einem UMDF-Treiber (User-Mode Driver Framework, Version 1 oder 2) verwenden können, um zu ermitteln, warum UMDF angibt, dass beim Entfernen eines Geräts ausstehende Dateien vorhanden sind.

Für UMDF-Version 1 verwenden Sie Erweiterungsbefehle, die in wudfext.dll implementiert sind. Ab UMDF Version 2 verwenden Sie Erweiterungsbefehle, die in wdfkd.dll implementiert sind.

Führen Sie die folgenden Schritte aus, um zu ermitteln, warum UMDF ausstehende Dateien angibt:

  1. Verwenden Sie !wudfext.umdevstack (UMDF 1) oder !wdfkd.wdfumdevstack (UMDF 2), um den Gerätestapel abzuspeichern. Das Speicherabbild enthält ausstehende UMDF-Intrastapeldateien (d. h. Dateiobjekte, die von einem Treiber im Stapel erstellt wurden, im Gegensatz zu Dateiobjekten, die von einer Anwendung oder einem Treiber in einem anderen Stapel erstellt wurden).

  2. Führen Sie für jede Stapelinterne Datei !wudfext.umfile (UMDF 1) oder !wdfkd.wdfumfile (UMDF 2) aus, um Informationen zu der Datei zu erhalten.

    Die Ausgabe enthält die Liste der ausstehenden IRPs.

  3. Ermitteln Sie, warum die einzelnen IRP ausstehend sind, indem Sie !wudfext.umirp (UMDF 1) oder !wdfkd.wdfumirp (UMDF 2) verwenden, um Informationen zum IRP abzurufen.

    Aus der Ausgabe jedes !wudfext.umirp oder !wdfkd.wdfumirp:

    • Ermitteln Sie, ob die IRP abgeschlossen wurde.
    • Ermitteln Sie, ob eine vom Treiber erstellte Anforderung weder explizit vom Treiber noch implizit von der Objektstruktur gelöscht wurde.