Freigeben über


Framework-Objekthierarchie

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 für neuere Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden.

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

Weitere Informationen finden Sie unter Erste Schritte mit UMDF.

Die folgende Abbildung zeigt die Objekthierarchie des übergeordneten und untergeordneten Frameworks.

umdf übergeordnete-untergeordnete Objekthierarchie.

Der Lebensdauerbereich von Frameworkobjekten wird durch ihre Position in der Hierarchie und die Art und Weise bestimmt, wie die Objekte erstellt werden. Der Lebensdauerbereich von Frameworkobjekten fällt in eine der folgenden Kategorien:

  • Das Framework steuert die Erstellung und Zerstörung der Objekte.

    Das Framework erstellt und zerstört Objekte wie das Treiberobjekt und das Geräteobjekt als Reaktion auf Systemereignisse. Wenn ein Benutzermodustreiber die IWDFDriver::CreateDevice-Methode aufruft , um das Geräteobjekt zu erstellen, kann sich der Treiber optional registrieren, um vom Framework benachrichtigt zu werden, bevor das Geräteobjekt zerstört wird.

  • Das Framework erstellt das -Objekt. Der Treiber steuert jedoch, wenn das Objekt freigegeben wird.

    Das E/A-Anforderungsobjekt folgt diesem Muster, wenn E/A dem Treiber angezeigt wird. Das Framework erstellt das Anforderungsobjekt, und die Lebensdauer des Anforderungsobjekts ist gültig, bis der Treiber die IWDFIoRequest::Complete-Methode aufruft.

  • Der Treiber erstellt das Objekt und ordnet das Objekt einem anderen Frameworkobjekt zu.

    Einige Frameworkobjekte werden von einer Methode erstellt, die von einem übergeordneten Frameworkobjekt instance verfügbar gemacht wird, dem die Objekte zu Zwecken der Lebensdauerverwaltung zugeordnet werden sollen. Die IWDFDevice::CreateIoQueue-Methode ist ein Beispiel für dieses Muster. Wenn ein Aufruf von IWDFDevice::CreateIoQueue erfolgreich ist, wird die neu erstellte E/A-Warteschlange dem Gerät instance zugeordnet, das die IWDFDevice-Schnittstelle darstellt. Wenn das übergeordnete Objekt zerstört wird, bereinigt das Framework automatisch untergeordnete Instanzen. Treiber werden über diese Ereignisse benachrichtigt, wenn die Treiber entsprechende Rückruffunktionen beim Framework registrieren.