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. 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 stellt jedes USB-Gerät als Framework-USB-Geräteobjekt dar. Ein UMDF-Treiber muss ein Framework-USB-Geräteobjekt erstellen, bevor der Treiber auf die Unterstützung für USB-E/A-Ziele des Frameworks zugreifen kann. UMDF stellt USB-Geräteobjektmethoden bereit, mit denen ein UMDF-Treiber Folgendes ermöglicht:
Erstellen eines UMDF-USB-Geräteobjekts
Um die USB-E/A-Zielfunktionen des Frameworks nutzen zu können, muss ein UMDF-Treiber zuerst einen Zeiger auf die IWDFUsbTargetFactory-Schnittstelle abrufen. Um den Zeiger abzurufen, muss der Treiber die QueryInterface-Methode der IWDFDevice-Schnittstelle des Geräts aufrufen. Im folgenden Codebeispiel wird veranschaulicht, wie QueryInterface aufgerufen wird, um den Zeiger abzurufen:
hr = pdevice->QueryInterface(IID_IWDFUsbTargetFactory, (LPVOID*)&ppUsbTargetFactory);
Der Treiber muss als Nächstes die IWDFUsbTargetFactory::CreateUsbTargetDevice-Methode aufrufen, um ein USB-E/A-Zielobjekt für das Gerät zu erstellen. Nachdem der Treiber das USB-E/A-Ziel erstellt hat, kann der Treiber Anforderungen an das E/A-Ziel senden. In der Regel rufen Treiber IWDFUsbTargetFactory::CreateUsbTargetDevice aus einer IPnpCallbackHardware::OnPrepareHardware-Rückruffunktion auf.
Nachdem der Treiber IWDFUsbTargetFactory::CreateUsbTargetDevice aufgerufen hat, kann der Treiber USB-Geräteinformationen abrufen (z. B. USB-Deskriptoren für das Gerät, USB-Schnittstellen und Schnittstellenendpunkte). Die USB-Deskriptoren werden in der USB-Spezifikation beschrieben.
Abrufen von UMDF-USB-Geräteinformationen
Nachdem ein UMDF-Treiber die IWDFUsbTargetFactory::CreateUsbTargetDevice-Methode aufgerufen hat , um ein UMDF-USB-Zielgeräteobjekt zu erstellen, kann der Treiber die folgenden Methoden aufrufen, die das USB-Zielgeräteobjekt zum Abrufen von Informationen zu einem USB-Gerät definiert:
IWDFUsbTargetDevice::RetrieveDescriptor
Ruft den USB-Gerätedeskriptor eines Geräts ab.
IWDFUsbTargetDevice::GetNumInterfaces
Ruft die Anzahl der USB-Schnittstellen ab, die das Gerät unterstützt.
IWDFUsbTargetDevice::RetrieveUsbInterface
Ruft einen Zeiger auf eine IWDFUsbInterface-Schnittstelle ab, die eine der vom Gerät unterstützten USB-Schnittstellen verfügbar macht.
IWDFUsbTargetDevice::RetrieveDeviceInformation
Ruft Funktionsinformationen ab, die einem USB-Gerät zugeordnet sind.
IWDFUsbTargetDevice::RetrievePowerPolicy
Ruft eine WinUsb-Energierichtlinie ab.
IWDFUsbTargetDevice::GetWinUsbHandle
Ruft das WinUsb-Schnittstellenhandle ab, das dem E/A-Zielgeräteobjekt zugeordnet ist.
Senden einer Steuerelementübertragung an ein UMDF-USB-Geräteobjekt
Ein UMDF-Treiber kann die IWDFUsbTargetDevice::FormatRequestForControlTransfer-Methode aufrufen, um eine E/A-Anforderung zu formatieren, die eine standard-, geräteklassenspezifische oder herstellerspezifische USB-Steuerungsübertragung beschreibt. Der Treiber kann dann die IWDFIoRequest::Send-Methode aufrufen, um die Anforderung synchron oder asynchron zu senden.
Festlegen der Energierichtlinie für ein UMDF-USB-Gerät
Ein UMDF-Treiber kann die IWDFUsbTargetDevice::SetPowerPolicy-Methode aufrufen, um die Energierichtlinie festzulegen, die von WinUsb für ein USB-Gerät verwendet wird. Die Energierichtlinie für ein USB-Gerät wirkt sich auf die Energieverwaltungszustände für das Gerät aus.