structure HIDP_VALUE_CAPS (hidpi.h)
La structure HIDP_VALUE_CAPS contient des informations qui décrivent la fonctionnalité d’un ensemble de valeurs de contrôle HID (une seule utilisation ou une plage d’utilisation ).
Syntaxe
typedef struct _HIDP_VALUE_CAPS {
USAGE UsagePage;
UCHAR ReportID;
BOOLEAN IsAlias;
USHORT BitField;
USHORT LinkCollection;
USAGE LinkUsage;
USAGE LinkUsagePage;
BOOLEAN IsRange;
BOOLEAN IsStringRange;
BOOLEAN IsDesignatorRange;
BOOLEAN IsAbsolute;
BOOLEAN HasNull;
UCHAR Reserved;
USHORT BitSize;
USHORT ReportCount;
USHORT Reserved2[5];
ULONG UnitsExp;
ULONG Units;
LONG LogicalMin;
LONG LogicalMax;
LONG PhysicalMin;
LONG PhysicalMax;
union {
struct {
USAGE UsageMin;
USAGE UsageMax;
USHORT StringMin;
USHORT StringMax;
USHORT DesignatorMin;
USHORT DesignatorMax;
USHORT DataIndexMin;
USHORT DataIndexMax;
} Range;
struct {
USAGE Usage;
USAGE Reserved1;
USHORT StringIndex;
USHORT Reserved2;
USHORT DesignatorIndex;
USHORT Reserved3;
USHORT DataIndex;
USHORT Reserved4;
} NotRange;
};
} HIDP_VALUE_CAPS, *PHIDP_VALUE_CAPS;
Membres
UsagePage
Spécifie la page d’utilisation de la plage d’utilisation ou d’utilisation.
ReportID
Spécifie l’ID de rapport du rapport HID qui contient l’utilisation ou la plage d’utilisation.
IsAlias
Indique, si TRUE, que l’utilisation est membre d’un ensemble d’utilisations alias. Sinon, si IsAlias est FALSE, la valeur n’a qu’une seule utilisation.
BitField
Contient les champs de données (un ou deux octets) associés à un élément principal d’entrée, de sortie ou de fonctionnalité.
LinkCollection
Spécifie l’index de la collection de liens dans un tableau de collection de liens de niveau supérieur qui contient l’utilisation ou la plage d’utilisation. Si LinkCollection est égal à zéro, l’utilisation ou la plage d’utilisation est contenue dans la collection de niveau supérieur.
LinkUsage
Spécifie l’utilisation de la collection de liens qui contient l’utilisation ou la plage d’utilisation. Si LinkCollection est égal à zéro, LinkUsage spécifie l’utilisation de la collection de niveau supérieur.
LinkUsagePage
Spécifie la page d’utilisation de la collection de liens qui contient l’utilisation ou la plage d’utilisation. Si LinkCollection est égal à zéro, LinkUsagePage spécifie la page d’utilisation de la collection de niveau supérieur.
IsRange
Spécifie, si TRUE, que la structure décrit une plage d’utilisation. Sinon, si IsRange est faux, la structure décrit une utilisation unique.
IsStringRange
Spécifie, si TRUE, que l’utilisation ou la plage d’utilisation a un ensemble de descripteurs de chaîne. Sinon, si IsStringRange est faux, l’utilisation ou la plage d’utilisation a zéro ou un descripteur de chaîne.
IsDesignatorRange
Spécifie, si TRUE, que l’utilisation ou la plage d’utilisation a un ensemble d’indicateurs. Sinon, si IsDesignatorRange est FALSE, l’utilisation ou la plage d’utilisation a zéro ou un indicateur.
IsAbsolute
Spécifie, si VRAI, que l’utilisation ou la plage d’utilisation fournit des données absolues. Sinon, si IsAbsolute est FALSE, la valeur est la modification de l’état de la valeur précédente.
HasNull
Spécifie, si TRUE, que l’utilisation prend en charge une valeur NULL, ce qui indique que les données ne sont pas valides et doivent être ignorées. Sinon, si HasNull est FALSE, l’utilisation n’a pas de valeur NULL.
Reserved
Réservé à une utilisation interne du système.
BitSize
Spécifie la taille, en bits, du champ de données d’un usage dans un rapport. Si ReportCount est supérieur à un, chaque utilisation a un champ de données distinct de cette taille.
ReportCount
Spécifie le nombre d’utilisations décrites par cette structure.
Reserved2[5]
Réservé à une utilisation interne du système.
UnitsExp
Spécifie l’exposant de l’utilisation, comme décrit par la norme USB HID.
Units
Spécifie les unités de l’utilisation, comme décrit par la norme USB HID.
LogicalMin
Spécifie la limite inférieure signée d’une utilisation.
LogicalMax
Spécifie la limite supérieure signée d’une utilisation.
PhysicalMin
Spécifie la limite inférieure signée d’une utilisation après l’application de la mise à l’échelle à la valeur minimale logique.
PhysicalMax
Spécifie la limite supérieure signée d’une utilisation après l’application de la mise à l’échelle à la valeur maximale logique.
Range
Spécifie, si IsRange est TRUE, informations sur une plage d’utilisation. Sinon, si IsRange est FAUX, NotRange contient des informations sur une seule utilisation.
Range.UsageMin
Indique la limite inférieure inclusive de la plage d’utilisation dont la limite supérieure inclusive est spécifiée par Range.UsageMax.
Range.UsageMax
Indique la limite supérieure inclusive d’une plage d’utilisation dont la limite inférieure inclusive est indiquée par Range.UsageMin.
Range.StringMin
Indique la limite inférieure inclusive d’une plage de descripteurs de chaîne (spécifiée par les éléments de chaîne minimum et de chaîne maximum) dont la limite supérieure inclusive est indiquée par Range.StringMax.
Range.StringMax
Indique la limite supérieure inclusive d’une plage de descripteurs de chaîne (spécifiée par les éléments minimum de chaîne et le nombre maximal de chaînes) dont la limite inférieure inclusive est indiquée par Range.StringMin.
Range.DesignatorMin
Indique la limite inférieure inclusive d’une plage d’indicateurs (spécifiée par les éléments minimum et d’indicateur maximum de l’indicateur) dont la limite inférieure inclusive est indiquée par Range.DesignatorMax.
Range.DesignatorMax
Indique la limite supérieure inclusive d’une plage de pointeurs (spécifiée par les éléments minimum et de l’indicateur maximum de l’indicateur) dont la limite inférieure inclusive est indiquée par Range.DesignatorMin.
Range.DataIndexMin
Indique la limite inférieure inclusive d’une plage séquentielle d’index de données qui correspondent, un-à-un et dans le même ordre, aux utilisations spécifiées par la plage d’utilisation Range.UsageMin à Range.UsageMax.
Range.DataIndexMax
Indique la limite supérieure inclusive d’une plage séquentielle d’index de données qui correspondent, un-à-un et dans le même ordre, aux utilisations spécifiées par la plage d’utilisation Range.UsageMin à Range.UsageMax.
NotRange
Spécifie, si IsRange est faux, informations sur une seule utilisation. Sinon, si IsRange est TRUE, Plage contient des informations sur une plage d’utilisation.
NotRange.Usage
NotRange.Reserved1
Réservé à une utilisation interne du système.
NotRange.StringIndex
Indique un ID de descripteur de chaîne pour l’utilisation spécifiée par NotRange.Usage.
NotRange.Reserved2
Réservé à une utilisation interne du système.
NotRange.DesignatorIndex
Indique un ID d’indicateur pour l’utilisation spécifiée par NotRange.Usage.
NotRange.Reserved3
Réservé à une utilisation interne du système.
NotRange.DataIndex
Indique l’index de données de l’utilisation spécifiée par NotRange.Usage.
NotRange.Reserved4
Réservé à une utilisation interne du système.
Remarques
Les clients obtiennent un tableau de capacités de valeur en appelant HidP_GetValueCaps ou HidP_GetSpecificValueCaps. Ces routines retournent un tableau de structures HIDP_VALUE_CAPS dans une mémoire tampon allouée par l’appelant. La longueur de mémoire tampon requise est spécifiée dans la structure HIDP_CAPS retournée par HidP_GetCaps.
Pour plus d’informations sur les fonctionnalités des valeurs de contrôle HID, consultez fonctionnalité de collecte et matrices de capacités de valeur.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | hidpi.h (include Hidpi.h) |