Windows.Devices.Usb Espace de noms
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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 etlowLevelDevices
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_Restricted
TRUE
d’interface de l’appareil sur sur l’interfaceGUID_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 etLowerFilters
. - 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 etClass lower filters
. - Les propriétés de l’interface d’appareil peuvent être inspectées en appelant
CM_Get_Device_Interface_Property
oùpszDeviceInterface
est la même chaîne que celle qui serait passée à FromIdAsync.
- La restriction d’appareil est partiellement déterminée par
- 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 :
|
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 :
|
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 :
|
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. |