Freigeben über


Ermitteln, warum ein UMDF-Treiber zu viel Arbeitsspeicher verbraucht

Warnung

UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 in neueren Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden.

Die archivierten UMDF 1-Beispiele finden Sie im Treiberbeispielupdate Windows 11, Version 22H2 – Mai 2022.

Weitere Informationen finden Sie unter Erste Schritte mit UMDF.

In diesem Thema wird beschrieben, wie Sie die Wudfext.dll Debuggererweiterungen in Verbindung mit einem UMDF-Treiber (User-Mode Driver Framework, Version 1) verwenden können, um zu ermitteln, warum ein UMDF-Treiber übermäßig viel Arbeitsspeicher verbraucht.

Ab UMDF Version 2 sollten Sie stattdessen die Wdfkd.dll Debuggererweiterungen verwenden. Weitere Informationen finden Sie unter Windows Driver Framework Extensions (Wdfkd.dll).

Führen Sie die folgenden Schritte aus, um die Speicherauslastung zu untersuchen:

  1. Zeigen Sie das ausstehende Objekt in der Objektstruktur an, indem Sie die UMDF-Debuggererweiterung !wudfext.wudfobject verwenden.

    Die Erweiterung !wudfext.wudfobject zeigt Informationen zu einem WDF-Objekt an, das seine übergeordneten und untergeordneten Beziehungen enthält. Wenn Sie Bit 0 des Flags-Parameters auf 1 (0x01) festlegen, führt !wudfext.wudfobject ein rekursives Dump der Objektstruktur aus, die am übergebenen Objekt verwurzelt ist. Verwenden Sie den folgenden Beispielbefehl, um die vollständige Objektstruktur anzuzeigen:

    !wudfext.wudfobject <IWDFDriver*> 1

  2. Ermitteln Sie, ob mehr ausstehende Objekte als erwartet angezeigt werden.

    Ihr Treiber kann diese Objekte möglicherweise auslaufen (weitere Informationen zum Kompromittieren von WDF-Objekten finden Sie unter Ermitteln, wenn ein Treiber Framework-Objekte ausgibt).

    Diese Objekte befinden sich möglicherweise in der Objektstruktur und würden daher schließlich freigegeben. Sie werden jedoch unnötigerweise angesammelt. Diese Objekte erfordern möglicherweise Folgendes: