Erste Schritte mit der USB-Entwicklung
Ein USB-Gerät (Universal Serial Bus) definiert seine Funktionen und Features über Konfigurationen, Schnittstellen, alternative Einstellungen und Endpunkte. Dieses Thema bietet eine allgemeine Übersicht über diese Konzepte. Weitere Informationen finden Sie in den USB-Spezifikationen unter Universal Serial Bus Documents( Universal Serial Bus Documents).
In diesem Abschnitt
Thema | BESCHREIBUNG |
---|---|
USB-Gerätelayout | Ein USB-Gerät definiert seine Funktionen und Features über Konfigurationen, Schnittstellen, alternative Einstellungen und Endpunkte. Dieses Thema bietet eine allgemeine Übersicht über diese Konzepte. |
STANDARD-USB-Deskriptoren | Ein USB-Gerät stellt Informationen über sich selbst in Datenstrukturen bereit, die als USB-Deskriptoren bezeichnet werden. Dieser Abschnitt enthält Informationen zu Geräte-, Konfigurations-, Schnittstellen- und Endpunktdeskriptoren und Möglichkeiten, diese von einem USB-Gerät abzurufen. |
USB-Endpunkte und ihre Pipes | Ein USB-Gerät verfügt über Endpunkte, die für Datenübertragungen verwendet werden. Auf der Hostseite werden Endpunkte durch Pipes dargestellt. In diesem Thema wird zwischen diesen beiden Begriffen unterschieden. |
USB unter Windows – Häufig gestellte Fragen | Dieses Thema enthält häufig gestellte Fragen für Treiberentwickler, die noch nicht mit der Entwicklung und Integration von USB-Geräten und -Treibern in Windows-Betriebssysteme vertraut sind. |
Häufige USB-Szenarien
1– Rufen Sie das Gerätehandle für die Kommunikation ab, und verwenden Sie das abgerufene Handle oder Objekt, um Datenübertragungen zu senden.
Clienttreiber | UWP-App | Windows Desktop-App |
---|---|---|
KMDF: WdfUsbTargetDeviceCreateWithParameters UMDF: IWDFUsbTargetDevice |
UsbDevice Herstellen einer Verbindung mit einem USB-Gerät |
WinUsb_Initialize Schreiben einer Windows-Desktop-App basierend auf der WinUSB-Vorlage |
USB-Deskriptorabruf zum Abrufen von Informationen zu den Konfigurationen, Schnittstellen, Einstellungen und endpunkten des Geräts.
2– Konfigurieren Sie das Gerät , um eine aktive USB-Konfiguration und -Einstellung pro Schnittstelle auszuwählen.
Clienttreiber | UWP-App | Windows Desktop-App |
---|---|---|
KMDF: WdfUsbTargetDeviceSelectConfig WdfUsbTargetDeviceCreateUrb USBD_SelectConfigUrbAllocateAndBuild WdfUsbInterfaceSelectSetting Auswählen einer Konfiguration für ein USB-Gerät Auswählen einer alternativen Einstellung in einer USB-Schnittstelle. UMDF: Die Konfigurationsauswahl wird nicht unterstützt. IWDFUsbInterface::SelectSetting |
UsbInterfaceSetting.SelectSettingAsync Auswählen einer USB-Schnittstelleneinstellung |
WinUsb_SetCurrentAlternateSetting |
3– Senden von Steuerungsübertragungen zum Konfigurieren des Geräts und Ausführen von Anbieterbefehlen, die für ein bestimmtes Gerät spezifisch sind.
4– Senden von Massenübertragungen, die in der Regel von Massenspeichergeräten verwendet werden, die große Datenmengen übertragen.
5 – Senden von Interruptübertragungen. Daten werden gelesen, um Hardwareunterbrechungsdaten abzurufen.
Clienttreiber | UWP-App | Windows Desktop-App |
---|---|---|
Identisch mit Massenübertragungen | UsbInterruptInPipe.DataReceived UsbInterruptOutPipe.OutputStream Senden einer USB-Interruptübertragungsanforderung |
Identisch mit Massenübertragungen |
6– Senden von isochronen Übertragungen, die hauptsächlich für Medienstreaminggeräte verwendet werden.
Clienttreiber | UWP-App | Windows Desktop-App |
---|---|---|
KMDF: WdfUsbTargetDeviceCreateIsochUrb Übertragen von Daten an isochrone USB-Endpunkte UMDF: Nicht unterstützt |
Nicht unterstützt | WinUsb_RegisterIsochBuffer WinUsb_UnregisterIsochBuffer WinUsb_WriteIsochPipeAsap WinUsb_ReadIsochPipeAsap WinUsb_WriteIsochPipe WinUsb_ReadIsochPipe WinUsb_GetCurrentFrameNumber WinUsb_GetAdjustedFrameNumber Senden isochroner USB-Übertragungen von einer WinUSB-Desktop-App |
7 – SELEKTIVES ANHALTEN , damit das Gerät in einen Energiesparmodus wechseln und das Gerät wieder in den Betriebszustand versetzt wird.
Clienttreiber | UWP-App | Windows Desktop-App |
---|---|---|
KMDF: WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS WdfDeviceAssignS0IdleSettings UMDF: IWDFUsbTargetDevice::SetPowerPolicy IWDFDevice2::AssignS0IdleSettings IWDFDevice3::AssignS0IdleSettingsEx Senden eines Geräts zum selektiven Anhalten |
Nicht unterstützt | WinUsb_SetPowerPolicy WinUSB-Energieverwaltung |