Prise en main du développement USB
Un appareil USB (Universal Serial Bus) définit ses fonctionnalités par le biais de configurations, d’interfaces, de paramètres alternatifs et de points de terminaison. Cette rubrique fournit une vue d’ensemble générale de ces concepts. Pour plus d’informations, consultez les spécifications USB dans Universal Serial Bus Documents.
Contenu de cette section
Rubrique | Description |
---|---|
Disposition des périphériques USB | Un périphérique USB définit ses fonctionnalités par le biais de configurations, d’interfaces, de paramètres alternatifs et de points de terminaison. Cette rubrique fournit une vue d’ensemble générale de ces concepts. |
Descripteurs USB standard | Un périphérique USB fournit des informations sur lui-même dans des structures de données appelées descripteurs USB. Cette section fournit des informations sur les descripteurs d’appareil, de configuration, d’interface et de point de terminaison et les moyens de les récupérer à partir d’un périphérique USB. |
Points de terminaison USB et leurs canaux | Un périphérique USB a des points de terminaison utilisés pour les transferts de données. Côté hôte, les points de terminaison sont représentés par des canaux. Cette rubrique fait la distinction entre ces deux termes. |
USB dans Windows - FAQ | Cette rubrique présente les questions fréquemment posées aux développeurs de pilotes qui débutent dans le développement et l’intégration de périphériques et de pilotes USB avec les systèmes d’exploitation Windows. |
Scénarios USB courants
1 : obtenez le handle d’appareil pour la communication et utilisez le handle ou l’objet récupéré pour envoyer des transferts de données.
Pilote client | Application UWP | Application de bureau Windows |
---|---|---|
KMDF : WdfUsbTargetDeviceCreateWithParameters UMDF : IWDFUsbTargetDevice |
UsbDevice Comment se connecter à un périphérique USB |
WinUsb_Initialize Écrire une application de bureau Windows basée sur le modèle WinUSB |
Récupération du descripteur USB pour obtenir des informations sur la ou les configurations de l’appareil, les interfaces, les paramètres et leurs points de terminaison.
2 — Configurez l’appareil pour sélectionner une configuration et un paramètre USB actifs par interface.
Pilote client | Application UWP | Application de bureau Windows |
---|---|---|
KMDF : WdfUsbTargetDeviceSelectConfig WdfUsbTargetDeviceCreateUrb USBD_SelectConfigUrbAllocateAndBuild WdfUsbInterfaceSelectSetting Comment sélectionner une configuration pour un périphérique USB. Comment sélectionner un autre paramètre dans une interface USB. UMDF : La sélection de la configuration n’est pas prise en charge IWDFUsbInterface ::SelectSetting |
UsbInterfaceSetting.SelectSettingAsync Comment sélectionner un paramètre d’interface USB |
WinUsb_SetCurrentAlternateSetting |
3 — Envoyer des transferts de contrôle pour la configuration de l’appareil et l’exécution des commandes du fournisseur qui sont spécifiques à un appareil particulier.
4 — Envoyer des transferts en bloc, généralement utilisés par les appareils de stockage de masse qui transfèrent une grande quantité de données.
5 — Envoyer des transferts d’interruption. Les données sont lues pour récupérer les données d’interruption matérielle.
Pilote client | Application UWP | Application de bureau Windows |
---|---|---|
Identique aux transferts en bloc | UsbInterruptInPipe.DataReceived UsbInterruptOutPipe.OutputStream Comment envoyer une demande de transfert d’interruption USB |
Identique aux transferts en bloc |
6 — Envoyer des transferts isochronaux, principalement utilisés pour les appareils de streaming multimédia.
Pilote client | Application UWP | Application de bureau Windows |
---|---|---|
KMDF : WdfUsbTargetDeviceCreateIsochUrb Comment transférer des données vers des points de terminaison isochroniques USB UMDF : Non prise en charge |
Non prise en charge | WinUsb_RegisterIsochBuffer WinUsb_UnregisterIsochBuffer WinUsb_WriteIsochPipeAsap WinUsb_ReadIsochPipeAsap WinUsb_WriteIsochPipe WinUsb_ReadIsochPipe WinUsb_GetCurrentFrameNumber WinUsb_GetAdjustedFrameNumber Envoi de transferts isochronieux USB à partir d’une application de bureau WinUSB |
7 : interruption sélective USB pour permettre à l’appareil d’entrer dans un état d’alimentation faible et de ramener l’appareil à l’état de fonctionnement.
Pilote client | Application UWP | Application de bureau Windows |
---|---|---|
KMDF : WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS WdfDeviceAssignS0IdleSettings UMDF : IWDFUsbTargetDevice ::SetPowerPolicy IWDFDevice2 ::AssignS0IdleSettings IWDFDevice3 ::AssignS0IdleSettingsEx Comment envoyer un appareil à une interruption sélective |
Non prise en charge | WinUsb_SetPowerPolicy Gestion de l’alimentation WinUSB |