Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Warnung
UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. Es werden keine neuen Features zu UMDF 1 hinzugefügt, und es gibt eingeschränkte Unterstützung für UMDF 1 für neuere Versionen von Windows 10. Universelle Windows-Treiber müssen UMDF 2 verwenden.
Die archivierten UMDF 1-Beispiele finden Sie im Windows 11, Version 22H2 – Treiberbeispiele-Update vom Mai 2022.
Weitere Informationen finden Sie unter Erste Schritte mit UMDF-.
Das Framework und der UMDF-Treiber kommunizieren über die UMDF DDI. Der UMDF DDI ist mit dem KMDF DDI vergleichbar, mit der Ausnahme, dass der UMDF DDI auf COM basiert. Daher verstehen Treiberautoren, die mit KMDF vertraut sind, UMDF.
Für jeden Framework-Objekttyp definiert die UMDF eine Schnittstelle, über die Instanzen des Objekts bearbeitet werden sollen. Jede Schnittstelle unterstützt Methoden und Eigenschaften. Methoden definieren Aktionen, die im Auftrag des Objekts ausgeführt werden können, während Eigenschaften die Merkmale des Objekts festlegen und abrufen. Einige Schnittstellen werden vom Framework implementiert, andere werden vom Treiber implementiert. Schnittstellen, die von einem Frameworkobjekt bereitgestellt werden, haben die Form IWDF<Objekt>, während die Ereignisrückrufschnittstellen, die von einem Treiber bereitgestellt werden, die Form I<Objekt><Aktion> haben, wobei <Objekt> eine Warteschlange, Anforderung usw. darstellt und <Aktion> angibt, was die Schnittstelle tut. Methoden der Callback-Schnittstellen beginnen mit "On".
Der UMDF-Treiber kommuniziert mit den Objekten des Frameworks über ihre Methoden und Eigenschaften. Das Framework kommuniziert mit dem Treiber über Ereignisbenachrichtigungen, bei denen es sich um Rückruffunktionen handelt, die vom Framework aufgerufen werden können, um den Treiber über bestimmte Ereignisse zu benachrichtigen. Um Rückruffunktionen zu registrieren, kann der Treiber beispielsweise die folgenden Framework-Objektmethoden aufrufen und einen Zeiger auf die IUnknown-Schnittstelle übergeben, die allen Schnittstellen für die vom Treiber unterstützten Rückruffunktionen zugeordnet ist.
Betrachten Sie als Beispiel für die Kommunikation zwischen Treibern und Frameworks das Standardmäßige E/A-Warteschlangenobjekt eines Geräts. Ein Treiber kann Methoden aufrufen, z. B. IWDFIoQueue::GetState, um Statusinformationen zur E/A-Warteschlange abzurufen, oder IWDFIoQueue::RetrieveNextRequest , um eine Anforderung aus der E/A-Warteschlange abzurufen. Ein Treiber kann auch Benachrichtigungen in der E/A-Warteschlange anfordern, indem die IWDFDevice::CreateIoQueue-Methode aufgerufen wird, um Rückrufschnittstellen wie IQueueCallbackRead und IQueueCallbackWrite zu registrieren. Die Methoden dieser Schnittstellen werden anschließend vom Framework aufgerufen, wenn eine Anwendung Lese- und Schreibanforderungen sendet.
Das Framework stellt alle Synchronisierungen bereit, die für treiberübergreifende Rückrufmethoden erforderlich sind. Standardmäßig wird das Framework auf Geräteobjektebene synchronisiert; d. h., das Framework ruft nicht gleichzeitig die Ereignisrückrufmethoden auf oder unterhalb der Geräteobjektebene auf. Ein Treiber kann diese Standardeinstellung außer Kraft setzen, indem keine Synchronisierung angefordert wird. Weitere Informationen finden Sie unter Angeben eines Rückrufsynchronisierungsmodus.