Partager via


Tableaux de capacités de valeur

Un tableau de capacités de valeur contient des informations sur les utilisations de valeur prises en charge par une collection de niveau supérieur pour un type spécifique de rapport HID. Les informations sur les tableaux de capacités de valeur d’une collection sont contenues dans sa structure HIDP_CAPS .

Une application en mode utilisateur ou un pilote en mode noyau utilise l’une des routines de prise en charge HIDClass suivantes pour obtenir des informations sur les fonctionnalités de bouton :

  • HidP_GetValueCaps retourne un tableau de capacités de valeur décrivant toutes les valeurs contenues dans un type de rapport spécifié par l’appelant.

  • HidP_GetSpecificValueCaps filtre les informations de capacité de valeur qu’elle retourne en fonction d'une page d'utilisation spécifiée par l'appelant, de l'utilisation, de la collection de liens et du type de rapport.

Un tableau de capacités de valeur contient des structures HIDP_VALUE_CAPS, chacune d’elles décrivant les informations suivantes sur une utilisation HID ou une plage d’utilisation HID :

  • Page d’utilisation pour une utilisation ou une plage d’utilisation

  • L'ID du rapport qui contient la valeur

  • ID d’utilisation ou plage d’utilisation

  • Indique si une utilisation est une utilisation sous alias

  • Information sur la collection de liens qui contient l'utilisation ou le champ d'application

  • Taille, en bits, d’une valeur et nombre de rapports (qui est le nombre de valeurs individuelles décrites par la structure)

  • Attributs de chaque valeur, notamment : s’il a une valeur null, ses unités et son exposant, ainsi que ses plages logiques et physiques

  • Information sur les descripteurs de chaîne et les désignateurs associés à l’utilisation ou à la plage d’utilisation

  • Informations sur les index de données que l'analyseur HID assigne à une utilisation ou à une plage d'utilisation

En général, les conditions suivantes valent pour toutes les utilisations décrites par un tableau de capacités de valeur :

  • Chaque structure de capacité représente une utilisation, une plage d’utilisation ou un tableau de valeurs d’utilisation associé à un élément principal variable. Les éléments principaux du tableau de données ne sont pas pris en charge comme valeurs.

  • Les alias peuvent être utilisés. Une plage d'utilisation ne peut pas être aliasée. Les valeurs alias sont liées dans un tableau de capacités de valeur de la même façon que les boutons alias liés dans un tableau de capacités de bouton. Voir Utilisations des boutons dans un élément principal variable.

  • L’analyseur HID utilise uniquement les utilisations minimales requises pour affecter une utilisation à chaque valeur. L’analyseur attribue des utilisations dans l’ordre dans lequel ils sont spécifiés dans un descripteur de rapport. Les utilisations dans un descripteur de rapport qui ne sont pas obligatoires sont ignorées. Le tableau des capacités de valeur ne contient aucune information sur les utilisations écartées.

  • L’analyseur HID affecte un index de données unique à chaque utilisation décrite dans le tableau de fonctionnalités.

Pour obtenir une description de la façon dont les index de données sont affectés aux valeurs, consultez Index de données.

Tableau de valeurs d’utilisation

Un tableau de valeurs d’utilisation est un ensemble consécutif de valeurs spécifiées dans un élément principal, qui sont toutes affectées à la même utilisation. Cela se produit si une seule utilisation est spécifiée pour un élément principal dont le nombre de rapports est supérieur à un.

La figure suivante montre un exemple de tableau de valeurs d’utilisation qui contient cinq éléments de données, chacun six bits de long.

Diagramme illustrant un tableau de valeurs d’utilisation qui contient cinq éléments de données, chacun de 6 bits de long.

Dans l’exemple précédent, la structure des capacités de valeur pour un tel tableau de valeurs d’utilisation aurait son membre IsRange défini sur FALSE, son membre NotRange.Usage défini sur 17, son membre ReportCount défini sur 5 et son membre BitSize défini sur 6.

Si le nombre de rapports pour une utilisation est égal à 1, utilisez HidP_GetUsageValue pour extraire la valeur d’utilisation. Si le nombre de rapports de l’utilisation est supérieur à 1, HidP_GetUsageValue retourne uniquement le premier élément de données dans un tableau de valeurs d’utilisation. Pour extraire tous les éléments de données d’un tableau de valeurs d’utilisation, utilisez HidP_GetUsageValueArray.