Freigeben über


Arbeiten mit USB-Schnittstellen in UMDF 1.x-Treibern

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 in neueren Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden.

Die archivierten UMDF 1-Beispiele finden Sie im Treiberbeispielupdate Windows 11, Version 22H2 – Mai 2022.

Weitere Informationen finden Sie unter Erste Schritte mit UMDF.

Das Framework stellt jede USB-Schnittstelle als FRAMEWORK-USB-Schnittstellenobjekt dar. Wenn ein UMDF-Treiber ein FRAMEWORK-USB-Geräteobjekt erstellt, erstellt das Framework ein FRAMEWORK-USB-Schnittstellenobjekt für jede USB-Schnittstelle, die das Gerät unterstützt.

Die meisten USB-Geräte verfügen nur über eine Schnittstelle, und die Schnittstelle verfügt nur über eine alternative Einstellung. Treiber für solche Geräte müssen in der Regel nicht die Objektmethoden verwenden, die das USB-Schnittstellenobjekt des Frameworks definiert.

Wenn ein UMDF-Treiber USB-Geräte unterstützt, die mehrere Schnittstellen oder alternative Einstellungen bereitstellen, ermöglichen Schnittstellenobjektmethoden dem Treiber Folgendes:

Abrufen von UMDF-USB-Schnittstelleninformationen

Nachdem ein UMDF-Treiber die IWDFUsbTargetFactory::CreateUsbTargetDevice-Methode aufgerufen hat, um ein UMDF-USB-Zielgerätobjekt zu erstellen, kann der Treiber die IWDFUsbTargetDevice::GetNumInterfaces-Methode aufrufen, um die Anzahl der VOM Gerät unterstützten USB-Schnittstellen abzurufen. Als Nächstes kann der Treiber aufruft die IWDFUsbTargetDevice::RetrieveUsbInterface-Methode , um Zeiger auf die IWDFUsbInterface-Schnittstellen abzurufen, die die vom Gerät unterstützten USB-Schnittstellen verfügbar machen. Anschließend kann der Treiber die folgenden Methoden aufrufen, die jedes USB-Schnittstellenobjekt definiert, um Informationen über die USB-Schnittstelle zu erhalten:

IWDFUsbInterface::GetInterfaceNumber
Ruft die USB-Schnittstellennummer ab, die einem USB-Schnittstellenobjekt zugeordnet ist.

IWDFUsbInterface::GetInterfaceDescriptor
Ruft den USB-Schnittstellendeskriptor ab, der einer der alternativen Einstellungen einer USB-Schnittstelle zugeordnet ist.

IWDFUsbInterface::GetNumEndPoints
Ruft die Anzahl der Endpunkte (auch als Pipes bezeichnet) ab, die einer der alternativen Einstellungen einer USB-Schnittstelle zugeordnet sind.

IWDFUsbInterface::GetConfiguredSettingIndex
Ruft einen Indexwert ab, der die alternative Einstellung identifiziert, die derzeit für eine USB-Schnittstelle ausgewählt ist.

IWDFUsbInterface::RetrieveUsbPipeObject
Ruft einen Zeiger auf die IWDFUsbTargetPipe-Schnittstelle ab, die das Framework-Pipeobjekt verfügbar macht, das einer angegebenen USB-Geräteschnittstelle und einem angegebenen Pipeindex zugeordnet ist.

IWDFUsbInterface::GetWinUsbHandle
Ruft das WinUsb-Schnittstellenhandle ab, das einer USB-Schnittstelle zugeordnet ist.

Auswählen einer alternativen Einstellung für eine UMDF-USB-Schnittstelle

Der UMDF-Treiber kann die IWDFUsbInterface::SelectSetting-Methode aufrufen, um eine alternative Einstellung für eine der vom Gerät unterstützten USB-Schnittstellen auszuwählen.

Die alternativen Einstellungen des Geräts müssen fortlaufend nummeriert werden, beginnend mit null.

Wichtig Wenn Sie eine Einstellung auswählen, werden alle Informationen über die Schnittstelle und die Endpunkte ungültig. Daher sollte der Treiber diese Informationen erneut abrufen. Der Treiber muss außerdem alle zuvor abgerufenen USB-Pipeobjekte verwerfen und neu erstellen.