Partager via


Tableaux de fonctionnalités de bouton

Un tableau de fonctionnalités de bouton contient des informations sur les utilisations des boutons prises en charge par une collection de niveau supérieur pour un type spécifique de rapport HID. Les informations sur la capacité 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_GetButtonCaps retourne un tableau de fonctionnalités de bouton décrivant toutes les utilisations du bouton contenues dans un type de rapport spécifié.

  • HidP_GetSpecificButtonCaps filtre les informations de fonctionnalité de bouton qu’elle retourne par une page d’utilisation spécifiée par l’appelant, l’ID d’utilisation et la collection de liens.

Un tableau de fonctionnalités de bouton contient des structures HIDP_BUTTON_CAPS, chacune contenant les informations suivantes sur une utilisation HID ou une plage d’utilisation :

  • Page d'utilisation pour l'usage ou la plage d'utilisation

  • L'identifiant du rapport contenant les données du bouton

  • ID d’utilisation ou plage d’utilisation

  • Indicateur désignant si une utilisation est une utilisation d'alias

  • L'ensemble de liens qui contient l’utilisation ou la plage d’utilisation

  • Descripteurs de chaîne et désignateurs associés à l'utilisation ou à la plage d'utilisation (voir élément de l'index de désignateur et élément de l'index de chaîne)

  • Index de données que l’analyseur HID a affecté à l’utilisation ou à la plage d'utilisation

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

  • Chaque structure de fonctionnalité représente une seule utilisation ou plage d’utilisation associée à un élément principal variable ou un élément principal de tableau.

  • Les utilisations alias peuvent être utilisées avec un élément principal variable. Une utilisation associée à un élément de tableau ne peut pas être ré-aliassée. Une plage d'utilisation ne peut pas être aliasée.

  • L’analyseur HID utilise uniquement le nombre minimal requis d’utilisations pour affecter une utilisation à chaque bouton. 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 de capacités des boutons ne contient aucune information sur les utilisations écartées.

  • Si le nombre d’utilisations spécifiées pour un élément de variable est inférieur au nombre de boutons de l’élément, le tableau de capacités ne contient qu’une seule structure de capacité qui décrit une utilisation d’un bouton (la dernière utilisation spécifiée dans le descripteur de rapport pour l’élément principal de variable). Toutefois, consultez Tableau des valeurs d’utilisation pour plus d’informations sur les valeurs d’utilisation dont le nombre de rapports est supérieur à un.

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

Les rubriques suivantes expliquent comment les structures de capacité sont organisées et définies dans un tableau de fonctionnalités de bouton :

Utilisations de boutons dans un élément principal variable

Chaque utilisation ou plage d'utilisation spécifiée dans un descripteur de rapport est décrite par sa propre structure de capacité dans un tableau de capacités de bouton.

Le membre IsAlias des structures de capacités est utilisé pour spécifier un ensemble de n usages aliasés comme suit :

  • IsAlias a la valeur TRUE dans les premières structures de capacité n-1 ajoutées au tableau de capacités. IsAlias a la valeur FALSE dans la nièmestructure de capacité. L’utilisation préférée est la dernière utilisation avec un alias dans la séquence.

Une application ou un pilote peut déterminer les utilisations de boutons qui ont des alias en balayant ces séquences.

Le tableau suivant récapitule un exemple d'utilisation pour trois usages aliasés.

Ordre d’utilisation aliasé dans un descripteur de rapport Ordre d’utilisation dans un tableau de fonctionnalités Valeur du membre IsAlias
utilisation 1 Utilisation 3 VRAI
utilisation 2 utilisation 2 VRAI
utilisation 3 utilisation 1 FAUX

Pour plus d’informations sur la façon dont les utilisations et les index de données sont référencés de manière croisée, consultez Index de données.

Utilisations de boutons dans un élément principal de tableau

Chaque plage d’utilisation ou d’utilisation d’un élément principal de tableau de boutons spécifié dans un descripteur de rapport est décrite par sa propre structure de capacités dans un tableau de fonctionnalités de bouton. L’ordre dans lequel les structures de capacité sont ajoutées à un tableau de capacités est l’inverse de l’ordre dans lequel les utilisations sont spécifiées pour un élément principal.

L’analyseur HID affecte un index de données à chaque utilisation associée à l’élément de tableau dans l’ordre dans lequel les utilisations sont spécifiées dans un descripteur de rapport. Par exemple, le tableau suivant montre la correspondance entre un ensemble d’utilisations, comme spécifié dans un descripteur de rapport, ainsi que les utilisations et les index de données, comme spécifié dans le tableau de fonctionnalités. (Dans ce tableau, n est le premier index de données que l’analyseur affecte à la première utilisation associée à l’élément de tableau.)

Ordre d’utilisation dans le descripteur de rapport Ordre d’utilisation dans le tableau de fonctionnalités DataIndex ou de DataIndexMin à DataIndexMax
utilisation 1 plage d’utilisation 2 de n+7 à n+8
plage d’utilisation 1 (avec 4 utilisations) utilisation 2 n+5
utilisation 2 plage d’utilisation 1 de n+1 à n+4
plage d’utilisation 2 (avec 2 utilisations) utilisation 1 n