Windows.Devices.Usb Espace de noms

Cet espace de noms définit Windows Runtime classes qu’une application UWP peut utiliser pour communiquer avec des appareils WinUSB. Ces appareils sont gérés par le pilote de boîte de réception winusb.sys et sont identifiés par un descripteur de système d’exploitation Microsoft spécifique.

Un appareil WinUSB valide aura un ID compatible de USB\MS_COMP_WINUSB

ID compatibles de Gestionnaire de périphériques pour l’appareil WinUSB SuperMUTT

Prise en charge des appareils

Cet espace de noms prend en charge la plupart des appareils WinUSB. Toutefois, il ne fournit pas l’accès aux périphériques USB avec des classes de périphériques des suivantes :

  • Audio (0x01)
  • HID (0x03)
  • Image (0x06)
  • Imprimante (0x07)
  • Stockage de masse (0x08)
  • Carte à puce (0x0B)
  • Audio/Vidéo (0x10)
  • Contrôleur sans fil (0xE0)

Fonctionnalités du périphérique USB

Une application UWP qui accède à un périphérique USB doit inclure des données de capacité d’appareil spécifiques dans le nœud de fonctionnalités de son manifeste. Ces données identifient l’appareil et son objectif (ou fonction). Notez que certains appareils peuvent avoir plusieurs fonctions.

Depuis Windows 10, version 1809 (mise à jour d’octobre 2018)

<DeviceCapability Name="usb"/>

Avant Windows 10, version 1809 (mise à jour d’octobre 2018)

Depuis 1809, le ProductId vendorId/ et le type de fonction n’ont plus besoin d’être spécifiés et seront ignorés sur les systèmes plus récents. Si vous ciblez des systèmes inférieurs à 1809, consultez fonctionnalités des périphériques USB hérités.

Dépannage

  • Vérifiez que la fonctionnalité USB (usb) figure dans le manifeste de l’application.
  • Vérifiez que l’utilisateur a accordé l’autorisation à l’application d’utiliser des périphériques USB.
  • Vérifiez que le type d’appareil n’est pas désigné comme inaccessible.
  • Les appareils internes à l’ordinateur (DEVPKEY_Device_InLocalMachineContainer == TRUE) ne sont généralement pas accessibles, sauf s’ils s’exécutent sur une référence SKU avec le mode et lowLevelDevices la fonctionnalité incorporés.
  • Les appareils avec des piles qui contiennent des pilotes de filtre supérieur/inférieur ne sont généralement pas accessibles. Ceux-ci sont parfois ajoutés par des tiers pour activer des fonctionnalités supplémentaires pour le matériel personnalisé.
    • La restriction d’appareil est partiellement déterminée par winusb.sys lors de l’énumération de l’appareil, qui peut définir la propriété DEVPKEY_DeviceInterface_RestrictedTRUE d’interface de l’appareil sur sur l’interface GUID_DEVINTERFACE_WINUSB_WINRT d’appareil WinUSB en fonction de la présence de filtres d’appareil/classe.
    • La présence de pilotes UpperFilter/LowerFilter d’appareil peut être déterminée à l’aide de DeviceManager en recherchant UpperFilters les propriétés et LowerFilters .
    • La présence de pilotes UpperFilter/LowerFilter de la classe WinUSB peut être déterminée à l’aide de DeviceManager en recherchant Class upper filters les propriétés et Class lower filters .
    • Les propriétés de l’interface d’appareil peuvent être inspectées en appelant CM_Get_Device_Interface_PropertypszDeviceInterface est la même chaîne que celle qui serait passée à FromIdAsync.
  • Ces restrictions peuvent être contournées lors de la création d’un appareil personnalisé en travaillant avec le pilote-développeur pour créer une application de support matériel

Classes

UsbBulkInEndpointDescriptor

Descripteur de point de terminaison pour un point de terminaison IN en bloc USB. Le descripteur spécifie le type de point de terminaison, la direction, le nombre ainsi que le nombre maximal d’octets pouvant être lus à partir du point de terminaison, dans un seul transfert.

UsbBulkInPipe

Représente le canal que le pilote USB sous-jacent ouvre pour communiquer avec un point de terminaison IN en bloc USB de l’appareil. L’application peut obtenir un flux d’entrée à partir du canal et les données d’accès sont en cours de lecture à partir du point de terminaison.

UsbBulkOutEndpointDescriptor

Descripteur de point de terminaison pour un point de terminaison OUT en bloc USB. Le descripteur spécifie le type de point de terminaison, la direction, le nombre, ainsi que le nombre maximal d’octets pouvant être écrits sur le point de terminaison, dans un seul transfert.

UsbBulkOutPipe

Représente le canal que le pilote USB sous-jacent ouvre pour communiquer avec un point de terminaison OUT EN bloc USB de l’appareil. L’objet fournit l’accès à un flux de sortie dans lequel l’application peut écrire des données à envoyer au point de terminaison.

UsbConfiguration

Fournit des informations sur une configuration USB, ses descripteurs et les interfaces définies dans cette configuration. Pour obtenir une explication d’une configuration USB, consultez la section 9.6.3 de la spécification USB (Universal Serial Bus).

UsbConfigurationDescriptor

Dérive les informations des 9 premiers octets d’un descripteur de configuration USB. Les informations incluent les fonctionnalités d’alimentation de l’appareil lorsque la configuration est active et le nombre d’interfaces incluses dans cette configuration. Pour une explication d’un descripteur de configuration, consultez la section 9.6.3 Spécification du bus série universel. Pour plus d’informations sur les champs de descripteur, consultez :

  • Tableau 9.15 de la spécification Universal Serial Bus 3.0
  • Tableau 9.10 dans la spécification du bus série universel (version 2.0)
UsbControlRequestType

Fournit des informations sur le transfert de contrôle USB, le type de demande de contrôle, si les données sont envoyées à l’hôte ou à l’hôte, et le destinataire de la demande dans l’appareil.

UsbDescriptor

Fournit des informations sur le type de descripteur, sa taille (en octets) et obtient les données du descripteur.

UsbDevice

Représente un périphérique USB. L’objet fournit des méthodes et des propriétés qu’une application peut utiliser pour énumérer les appareils WinUSB et envoyer des transferts de contrôle IN et OUT.

UsbDeviceClass

Permet à l’application d’obtenir une chaîne AQS (Advanced Query Syntax) en spécifiant le code de classe, le code de sous-classe et le code de protocole défini par l’appareil. Les propriétés de cette classe sont passées dans l’appel à GetDeviceClassSelector.

UsbDeviceClasses

Permet de récupérer un objet UsbDeviceClass en fonction de la classe de périphérique USB d’un appareil. Les propriétés définies dans cette classe représentent les classes de périphériques USB prises en charge, et elles retournent des objets UsbDeviceClass .

Pour plus d’informations sur les classes de périphériques USB, consultez le site web USB officiel pour les documents de spécification de classe approuvés.

UsbDeviceDescriptor

Dérive des informations du descripteur de périphérique USB de l’appareil. Pour obtenir une explication du descripteur d’appareil, consultez le tableau 9.8 dans la spécification du bus série universel.

UsbEndpointDescriptor

Dérive des informations du descripteur de point de terminaison USB du point de terminaison, telles que le type, la direction et le numéro de point de terminaison. Cet objet obtient également les descripteurs de point de terminaison spécifiques en fonction du type de point de terminaison. Pour obtenir une explication d’un descripteur de point de terminaison, consultez la section 9.6.5 de la spécification universal serial bus :

  • Tableau 9.18 de la spécification Universal Serial Bus 3.0
  • Tableau 9.13 de la spécification du bus série universel (version 2.0)
UsbInterface

Fournit des informations sur l’interface USB, y compris ses points de terminaison, le nombre de paramètres alternatifs pris en charge par l’interface et obtient l’ensemble du descripteur défini pour ces paramètres. Il obtient également des canaux associés aux points de terminaison pris en charge par l’interface.

UsbInterfaceDescriptor

Décrit un autre paramètre USB (d’une interface) dans un descripteur d’interface. Pour obtenir une explication d’un descripteur d’interface, consultez la section 9.6.5 de la spécification universal serial bus :

  • Tableau 9.15 de la spécification Universal Serial Bus 3.0
  • Tableau 9.12 de la spécification du bus série universel (version 2.0)
UsbInterfaceSetting

Fournit des informations sur un autre paramètre et sélectionnez ce paramètre. L’application peut obtenir les descripteurs d’interface USB pour le paramètre et ses points de terminaison, et déterminer si ce paramètre est actuellement sélectionné.

UsbInterruptInEndpointDescriptor

Descripteur de point de terminaison pour un point de terminaison IN d’interruption USB. Le descripteur spécifie le type de point de terminaison, la direction, le nombre ainsi que le nombre maximal d’octets pouvant être lus à partir du point de terminaison, dans un seul transfert. L’application peut également obtenir des informations sur la fréquence à laquelle l’hôte interroge le point de terminaison pour rechercher des données.

UsbInterruptInEventArgs

Représente l’objet passé en tant que paramètre au gestionnaire d’événements pour l’événement DataReceived .

UsbInterruptInPipe

Représente le canal que le pilote USB sous-jacent ouvre pour communiquer avec un point de terminaison IN d’interruption USB du périphérique. L’objet permet également à l’application de spécifier un gestionnaire d’événements. Gestionnaire appelé lorsque les données sont lues à partir du point de terminaison.

UsbInterruptOutEndpointDescriptor

Descripteur de point de terminaison pour un point de terminaison d’interruption USB OUT. Le descripteur spécifie le type de point de terminaison, la direction, le nombre et également le nombre maximal d’octets pouvant être écrits dans le point de terminaison, dans un seul transfert. L’application peut également obtenir des informations sur la fréquence à laquelle l’hôte interroge le point de terminaison pour envoyer des données.

UsbInterruptOutPipe

Représente le canal que le pilote USB sous-jacent ouvre pour communiquer avec un point de terminaison OUT d’interruption USB du périphérique. L’objet fournit l’accès à un flux de sortie dans lequel l’application peut écrire des données à envoyer au point de terminaison.

UsbSetupPacket

Décrit le paquet d’installation pour un transfert de contrôle USB. Pour obtenir une explication du paquet d’installation, consultez le tableau 9.2 de la spécification USB (Universal Serial Bus).

Énumérations

UsbControlRecipient

Définit des constantes qui indiquent le destinataire d’un transfert de contrôle USB. Le destinataire est défini dans le paquet d’installation de la demande de contrôle. Consultez le tableau 9.2 de la section 9.3 de la spécification USB (universal serial bus) (www.usb.org).

UsbControlTransferType

Définit des constantes qui indiquent le type de transfert de contrôle USB : standard, classe ou fournisseur.

UsbEndpointType

Définit des constantes qui indiquent le type de point de terminaison USB : contrôle, bloc, isochronous ou interruption.

UsbReadOptions

Définit des constantes pour les indicateurs de configuration qui peuvent être définis pour un canal USB que l’hôte ouvre pour un point de terminaison IN en bloc USB.

UsbTransferDirection

Définit des constantes qui indiquent la direction du transfert USB : transferts IN ou OUT.

UsbWriteOptions

Définit des constantes pour les indicateurs de configuration qui peuvent être définis pour un canal USB que l’hôte ouvre pour un point de terminaison USB OUT.

Voir aussi