Tableaux de capacité de valeur
Un tableau de fonctionnalités de valeur contient des informations sur les utilisations de valeurs 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é de valeurs 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 la fonctionnalité de bouton :
HidP_GetValueCaps retourne un tableau de capacité de valeurs 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’il retourne par une page d’utilisation, une utilisation, une collection de liens et un type de rapport spécifié par l’appelant.
Un tableau de fonctionnalités de valeur contient HIDP_VALUE_CAPS structures, chacune d’elles décrivant les informations suivantes sur une plage d’utilisation ou d’utilisation HID :
Page d’utilisation d’une plage d’utilisation ou d’utilisation
ID de rapport du rapport qui contient la valeur
ID d’utilisation ou plage d’utilisation
Indique si une utilisation est une utilisation avec alias
Informations sur la collection de liens qui contient l’utilisation ou la plage d’utilisation
Taille, en bits, d’une valeur et nombre de rapports (qui correspond au nombre de valeurs individuelles décrites par la structure)
Attributs de chaque valeur, y compris : si elle a une valeur null, ses unités et son exposant, et ses plages logiques et physiques
Informations sur les descripteurs de chaîne et les désignateurs associés à la plage d’utilisation ou d’utilisation
Informations sur les index de données auxquels l’analyseur HID attribue une plage d’utilisation ou d’utilisation
En général, les conditions suivantes sont réunies pour toutes les utilisations décrites par un tableau de fonctionnalités de valeur :
Chaque structure de capacité représente une utilisation, une plage d’utilisation ou un tableau de valeurs d’utilisation associé à une variable main élément. Les éléments main tableau ne sont pas pris en charge pour les valeurs.
Vous pouvez utiliser des utilisations avec alias. Impossible d’alias d’une plage d’utilisation. Les valeurs avec alias sont liées entre elles dans un tableau de fonctionnalités de valeurs de la même manière que les boutons alias liés dans un tableau de fonctionnalités de bouton. Consultez 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 elles sont spécifiées dans un descripteur de rapport. Les utilisations d’un descripteur de rapport qui ne sont pas obligatoires sont ignorées. Le tableau de fonctionnalités de valeurs ne contient aucune information sur les utilisations ignoré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 attribué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 main, qui sont toutes affectées à la même utilisation. Cela se produit si une seule utilisation est spécifiée pour un élément main 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 de six bits.
Dans l’exemple précédent, la structure de capacité de valeur d’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 1, utilisez HidP_GetUsageValue pour extraire la valeur d’utilisation. Si le nombre de rapports d’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.