Windows.Devices.HumanInterfaceDevice 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 permet à votre application UWP d’accéder aux appareils qui prennent en charge le protocole HID (Human Interface Device).
Prise en charge des appareils
Cet espace de noms prend en charge la plupart des HID. Toutefois, il ne fournit pas l’accès aux collections d’applications de niveau supérieur (TLC) représentées par les utilisations suivantes.
Utilisations inaccessibles.
UsagePage | UsageIds |
---|---|
HID_USAGE_PAGE_UNDEFINED (0x00 ) |
Tous |
HID_USAGE_PAGE_GENERIC (0x01 ) |
HID_USAGE_GENERIC_MOUSE (0x02 )HID_USAGE_GENERIC_KEYBOARD (0x06 )HID_USAGE_GENERIC_KEYPAD (0x07 )HID_USAGE_GENERIC_SYSTEM_CTL (0x80 ) |
HID_USAGE_PAGE_KEYBOARD (0x07 ) |
Tous |
HID_USAGE_PAGE_CONSUMER (0x0C ) |
Tous |
HID_USAGE_PAGE_DIGITIZER (0x0D ) |
Tous |
HID_USAGE_PAGE_SENSOR (0x20 ) |
Tous |
HID_USAGE_PAGE_LIGHTING_ILLUMINATION (0x59 ) |
HID_USAGE_LAMPARRAY (0x01 ) |
- Les périphériques clavier et souris sont des appareils réservés au système
- Les HID LampArray peuvent être énumérées avec HidDevice.GetDeviceSelector, mais doivent être instanciées avec LampArray.FromIdAsync
- Les HID de capteur peuvent être énumérés avec HidDevice.GetDeviceSelector , mais doivent être instanciés avec leur appareil Windows.Devices.Sensors respectif (par exemple , LightSensor.FromIdAsync)
Fonctionnalités de l’appareil d’interface humaine
Une application UWP qui accède à un fichier HID 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> : l’attribut Name doit être
humanInterfaceDevice
.
<DeviceCapability Name="humanInterfaceDevice"/>
Si vous ciblez un appareil de téléphonie HID (UsagePage==0x0B
), la fonctionnalité hidTelephony
supplémentaire doit également être spécifiée.
<DeviceCapability Name="humanInterfaceDevice"/>
<DeviceCapability Name="hidTelephony"/>
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 avant 1809, voir ci-dessous.
<DeviceCapability> : l’attribut Name doit être
humanInterfaceDevice
.<Appareil> : l’attribut Id doit spécifier l’identificateur de l’appareil. Cet élément peut spécifier une combinaison d’ID de fournisseur (vid) et d’ID de produit (pid) ; ou bien, il peut spécifier une chaîne
any
générique . En outre, peutDevice Id
contenir une chaîne de fournisseur facultative deusb
oubluetooth
.- <Fonction> : l’attribut Type spécifie la fonction d’appareil. Cet élément contient une ou plusieurs valeurs d’utilisation HID. Ces valeurs se composent d’un
UsagePage
et d’un facultatifUsageId
, qui sont chacune des valeurs hexadécimales 16 bits.
- <Fonction> : l’attribut Type spécifie la fonction d’appareil. Cet élément contient une ou plusieurs valeurs d’utilisation HID. Ces valeurs se composent d’un
Dans les données d’utilisation définies par le fournisseur suivantes, l’appareil est identifié par la combinaison ID de fournisseur et ID de produit .
<DeviceCapability Name="humaninterfacedevice">
<Device Id="vidpid:0A81 0701">
<Function Type="usage:ffa0 0001"/>
</Device>
</DeviceCapability>
L’élément suivant est identique au premier, à l’exception de la chaîne usb
de fournisseur supplémentaire dans l’élément Device Id
.
<DeviceCapability Name="humaninterfacedevice">
<Device Id="vidpid:0A81 0701 usb">
<Function Type="usage:ffa0 0001"/>
</Device>
</DeviceCapability>
Dans les données d’appareil de jeu suivantes, il n’y a pas d’ID de fournisseur et d’ID de produit.
<!-- Any gamepad device -->
<DeviceCapability Name="humaninterfacedevice">
<Device Id="any">
<Function Type="usage:0005 *"/>
</Device>
</DeviceCapability>
Dans les données de manette de jeu et de manette de jeu suivantes, il n’y a pas d’ID de fournisseur et d’ID de produit
<!-- Any generic gaming device -->
<DeviceCapability Name="humaninterfacedevice">
<Device Id="any">
<Function Type="usage:0004 *"/>
<Function Type="usage:0005 *"/>
</Device>
</DeviceCapability>
Résolution des problèmes
- Vérifiez que la fonctionnalité HID (
humanInterfaceDevice
) figure dans le manifeste de l’application. Si vous utilisez un appareil de téléphonie, vérifiez que lahidTelephony
fonctionnalité est également incluse. - Vérifiez que l’utilisateur a accordé l’autorisation à l’application d’utiliser des HID.
- Vérifiez que le type d’appareil n’est pas désigné comme inaccessible.
- Les HID inaccessibles peuvent toujours être énumérés par DeviceInformation.FindAllAsync(), mais ne peuvent pas être ouverts par HumanInterfaceDevice.FromIdAsync(). L’attemps d’ouverture d’un tel appareil lève une exception ou retourne
null
.
- Les HID inaccessibles peuvent toujours être énumérés par DeviceInformation.FindAllAsync(), mais ne peuvent pas être ouverts par HumanInterfaceDevice.FromIdAsync(). L’attemps d’ouverture d’un tel appareil lève une exception ou retourne
- 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
hidclass.sys
lors de l’énumération de l’appareil, ce qui peut définir la propriétéDEVPKEY_DeviceInterface_Restricted
TRUE
d’interface de l’appareil sur sur l’interfaceGUID_DEVINTERFACE_HID
d’appareil HID 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 classe HID peut être déterminée à l’aide de DeviceManager en recherchant
Class upper filters
des 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
HidBooleanControl |
Représente un contrôle booléen simple sur un appareil HID qui retourne des valeurs activées/désactivées. Par exemple, le voyant LED d’un clavier. |
HidBooleanControlDescription |
Décrit un contrôle booléen pour un appareil HID donné. |
HidCollection |
Récupère les informations de collecte pour un groupe de contrôles associés. Le protocole HID utilise des regroupements pour regrouper un ensemble de contrôles qui sont similaires les uns aux autres, ou qui sont liés par la proximité physique ou opérationnelle. |
HidDevice |
Représente une collection de niveau supérieur et l’appareil correspondant. |
HidFeatureReport |
Représente un rapport de fonctionnalités HID. Les rapports de fonctionnalités sont émis par l’appareil et l’hôte. Les appareils émettent des rapports de fonctionnalités pour décrire leurs fonctionnalités et leurs paramètres par défaut à un hôte. Héberge des rapports de fonctionnalités de problème pour effectuer des demandes de l’appareil. |
HidInputReport |
Représente un rapport d’entrée HID. Les appareils émettent des rapports d’entrée pour décrire les modifications d’état, l’entrée utilisateur et d’autres données spécifiques à l’appareil. Par exemple, un périphérique clavier HID utilise un rapport d’entrée pour signaler une pression sur la touche. Un capteur de présence HID utilise un rapport d’entrée pour signaler un événement de détection de présence. |
HidInputReportReceivedEventArgs |
Représente les arguments que l’API HID envoie dans le cadre d’un événement input-report. |
HidNumericControl |
Représente un contrôle numérique sur un appareil HID qui retourne une plage de valeurs. Par exemple, le contrôle de volume sur un haut-parleur. |
HidNumericControlDescription |
Décrit un contrôle numérique pour un appareil HID donné. |
HidOutputReport |
Représente un rapport de sortie HID. Les hôtes émettent des rapports de sortie pour demander des modifications sur l’appareil. Par exemple, un hôte peut envoyer une demande à un clavier pour activer ou désactiver une LED. |
Énumérations
HidCollectionType |
Identifie la relation qui définit un regroupement de contrôles sur l’appareil. Les regroupements permettent de regrouper un ensemble de contrôles similaires les uns aux autres ; ou sont liés par la proximité physique ou opérationnelle. |
HidReportType |
Spécifie un type de rapport HID. |