Hinzufügen eines Geräts
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.
Das Framework fügt ein Geräteobjekt für jedes Gerät hinzu, das im Treiberhostprozess geladen wird. Um das Gerät hinzuzufügen, ruft das Framework die IDriverEntry::OnDeviceAdd-Methode des Treibers auf und übergibt die Schnittstellen IWDFDriver und IWDFDeviceInitialize im Aufruf. Die angegebene IWDFDeviceInitialize-Schnittstelle ist nur gültig, bevor der Treiber IWDFDriver::CreateDevice aufruft. Der Treiber kann die folgenden Methoden von IWDFDeviceInitialize aufrufen, um die folgenden Vorgänge auszuführen:
Der Treiber ruft die IWDFDeviceInitialize::RetrieveDevicePropertyStore-Methode auf, um die IWDFNamedPropertyStore-Schnittstelle für den Geräteeigenschaftenspeicher abzurufen. Der Treiber kann IWDFNamedPropertyStore verwenden, um Eigenschaften für das Gerät abzurufen und festzulegen.
Der Treiber ruft die IWDFDeviceInitialize::SetLockingConstraint-Methode auf, um anzugeben, wie die Rückruffunktionen vom Framework aufgerufen werden.
Der Treiber ruft die IWDFDeviceInitialize::SetFilter-Methode auf, um das Gerät als Filtergerät zu aktivieren.
Nachdem der Treiber IWDFDeviceInitialize zum Initialisieren des Geräts verwendet hat, übergibt der Treiber einen Zeiger an IWDFDeviceInitialize in einem Aufruf der IWDFDriver::CreateDevice-Methode , um ein UMDF-Geräteobjekt für das Gerät zu erstellen. Nachdem das Frameworkgerätobjekt erstellt wurde, ruft der Treiber die IWDFDevice::CreateIoQueue-Methode auf, um E/A-Warteschlangen mit Lese- und Schreibzugriff zu erstellen. In diesen IWDFDevice::CreateIoQueue-Aufrufen muss der Treiber identifizieren, wie er Anforderungen aus der E/A-Warteschlange empfängt. Weitere Informationen finden Sie unter Konfigurieren des Versandmodus für eine E/A-Warteschlange.