Einführung in Framework-Objekte

Die Schnittstellen, die Windows Driver Frameworks (WDF) für Treiber bereitstellt, sind objektbasiert. Das Framework definiert mehrere Objekte. Diese Objekte exportieren Methoden (Funktionen) und Eigenschaften (Daten), auf die Treiber zugreifen können. Frameworkobjekte initiieren auch Ereignisse, die Treiber unterstützen können, indem sie Ereignisrückruffunktionen bereitstellen.

Frameworkbasierte Treiber greifen nie direkt auf Frameworkobjekte zu. Stattdessen verweisen Treiber auf die Objekte durch Handles, die der Treiber als Eingabe an Objektmethoden übergibt.

Alle Frameworkobjekte weisen die folgenden Merkmale auf:

Referenzanzahl
Das Framework verwaltet eine Anzahl der Verweise auf jedes Objekt. Wenn das Framework ein -Objekt erstellt, legt es die Verweisanzahl des Objekts auf eins fest. Wenn das Framework die Verwendung eines -Objekts abgeschlossen hat, wird die Verweisanzahl verringert. Das Framework kann das -Objekt erst löschen, wenn die Verweisanzahl auf 0 (Null) erhöht wurde. Daher können Treiber das Löschen eines Objekts verhindern, indem sie die Verweisanzahl erhöhen.

Kontextbereich
Frameworkbasierte Treiber können objektspezifischen Kontextraum für jedes Frameworkobjekt erstellen, das der Treiber empfängt oder erstellt. Treiber sollten alle objektspezifischen Daten im Kontextbereich eines Objekts speichern. Weitere Informationen zum Kontextraum finden Sie unter Framework-Objektkontextraum.

Löschen von Rückruffunktionen
Treiber können Rückruffunktionen registrieren, die das Framework aufruft, wenn es ein Objekt löscht. Die Rückruffunktionen können vom Treiber zugewiesene Ressourcen entfernen, z. B. objektspezifische Speicherzuordnungen. Weitere Informationen zu diesen Rückruffunktionen finden Sie unter Framework-Objektlebenszyklus.

Übergeordnetes Objekt
Alle Frameworkobjekte können über ein übergeordnetes Objekt verfügen. Das Framework legt für die meisten Objekte ein übergeordnetes Standardobjekt fest. Wenn ein Treiber ein Objekt erstellt, kann er ein übergeordnetes Objekt festlegen, das das übergeordnete Standardobjekt des Objekts außer Kraft setzt. Um das übergeordnete Objekt eines Objekts festzulegen, legen Treiber das ParentObject-Element der WDF_OBJECT_ATTRIBUTES Struktur des Objekts fest. (Bei einigen objekttypen können Treiber das übergeordnete Standardobjekt nicht außer Kraft setzen.) Wenn das Framework oder ein Treiber ein übergeordnetes Objekt löscht, löscht das Framework auch die untergeordneten Elemente des übergeordneten Objekts.

Eine Übersicht über alle Objekte, die von WDF definiert werden, finden Sie unter Zusammenfassung der Frameworkobjekte.