Freigeben über


USB-spezifische UMDF 1.x-Schnittstellen

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 – Mai 2022 Treiberbeispiele Update.

Weitere Informationen finden Sie unter "Erste Schritte mit UMDF".

Ein USB-Gerät kann eine oder mehrere Konfigurationen aufweisen. Jede Konfiguration kann über eine oder mehrere Schnittstellen verfügen. Jede Schnittstelle ist einem oder mehreren alternativen Einstellungen zugeordnet, und jede alternative Einstellung definiert einen oder mehrere Endpunkte. Ein Endpunkt stellt einen Puffer auf der Gerätehardware dar.

Eine Pipe ist eine Softwarestraktion einer Verbindung zwischen dem Hostcontroller und einem Endpunkt in der aktuellen alternativen Einstellung. Eine Pipe kann ein Ziel für E/A sein und wird in UMDF über die IWDFUsbTargetPipe-Schnittstelle verfügbar gemacht.

Die USB-spezifischen UMDF-Schnittstellen basieren auf der WinUSB-Architektur . WinUSB ermöglicht standardmäßig nur den Zugriff auf die erste Konfiguration eines Mehrfachkonfigurationsgeräts. Daher macht die WinUSB-Schnittstelle nicht die Möglichkeit verfügbar, eine Auswahlkonfigurationsanforderung zu senden. Folglich unterstützt die I/O-Zielfunktion in UMDF keine andere Gerätekonfiguration als die erste.

Die USB-spezifischen UMDF-Schnittstellen weisen eine Objekthierarchie auf, die dem allgemeinen USB-Modell ähnelt. Ein UMDF-Treiber erstellt ein Zielgerätobjekt, das von der IWDFUsbTargetDevice-Schnittstelle verfügbar gemacht wird. Der Treiber kann dann Methoden von IWDFUsbTargetDevice verwenden, um auf USB-Schnittstellen zuzugreifen, die von Instanzen von IWDFUsbInterface verfügbar gemacht werden. Der Treiber kann IWDFUsbInterface-Methoden aufrufen, um Einstellungen und Endpunkte zu bearbeiten.

Die folgende Tabelle zeigt die USB-spezifische UMDF-Schnittstellenhierarchie:

USB-spezifische UMDF-Schnittstelle Abgeleitet von
IWDFUsbTargetDevice IWDFIoTarget
IWDFUsbInterface IWDFObject
IWDFUsbTargetPipe IWDFIoTarget

Die IWDFUsbTargetDevice - und IWDFUsbTargetPipe-Schnittstellen werden von der IWDFIoTarget-Schnittstelle abgeleitet und stellen daher I/O-Zielobjekte zur Verfügung. Die IWDFUsbInterface-Schnittstelle wird nicht von IWDFIoTarget (IWDFUsbInterface abgeleitet von der IWDFObject-Schnittstelle ) abgeleitet und macht daher kein I/O-Zielobjekt verfügbar. Jede E/A, die zum Ermitteln und Bearbeiten von Schnittstellendetails gesendet wird, wird an das Zielgerät gesendet.

Schritt-für-Schritt-Anleitungen zum Schreiben eines einfachen UMDF-basierten USB-Clienttreibers finden Sie unter How to write your first USB client driver (UMDF).For step-by-step directions on writing a simple UMDF-based USB client driver, see How to write your first USB client driver (UMDF).

Informationen zum Quellcode, der für einen UMDF-basierten USB-Clienttreiber erforderlich ist, finden Sie unter Understanding the USB client driver code structure (UMDF).