Массивы возможностей значений
Массив возможностей значений содержит сведения об использовании значений, поддерживаемых коллекцией верхнего уровня для определенного типа отчета HID. Сведения о массивах возможностей значений коллекции содержатся в ее HIDP_CAPS структуре.
Приложение пользовательского режима или драйвер режима ядра использует одну из следующих процедур поддержки HIDClass для получения сведений о возможностях кнопки:
HidP_GetValueCaps возвращает массив возможностей значений, описывающий все значения, содержащиеся в типе отчета, указанном вызывающим объектом.
HidP_GetSpecificValueCaps фильтрует возвращаемые сведения о возможностях значений по указанной вызывающей странице использования, использованию, коллекции ссылок и типу отчета.
Массив возможностей значений содержит HIDP_VALUE_CAPS структур, каждая из которых описывает следующие сведения об использовании HID или диапазоне использования.
Страница использования для использования или диапазона использования
Идентификатор отчета, содержащего значение
Идентификатор использования или диапазон использования
Указывает, является ли использование псевдонимом
Сведения о коллекции ссылок , содержащей сведения об использовании или диапазоне использования
Размер (в битах) значения и количество отчетов (количество отдельных значений, описанных в структуре).
Атрибуты каждого значения, в том числе: имеет ли оно значение NULL, единицы измерения и степень, а также логические и физические диапазоны.
Сведения о дескрипторах строк и конструкторах, связанных с использованием или диапазоном использования
Сведения об индексах данных , которым средство синтаксического анализа HID назначает использование или диапазон использования
Как правило, для всех вариантов использования, описанных в массиве возможностей значений, хранятся следующие условия:
Каждая структура возможностей представляет собой использование, диапазон использования или массив значений использования, связанный с переменной main элементом. Элементы массива main не поддерживаются для значений.
Можно использовать псевдонимы. Диапазон использования не может быть псевдонимом. Псевдонимированные значения связываются в массиве возможностей значений так же, как кнопки с псевдонимами, связанные вместе в массиве возможностей кнопок. См . раздел Использование кнопок в основном элементе переменной.
Средство синтаксического анализа HID использует только минимально необходимые значения для назначения использования каждому значению. Средство синтаксического анализа назначает использование в порядке, в котором они указаны в дескрипторове отчета. Использование в дескрипторе отчета, которое не является обязательным, отбрасывается. Массив возможностей значений не содержит сведений о отмененных использованиях.
Средство синтаксического анализа HID назначает уникальный индекс данных каждому использованию, описанному в массиве возможностей.
Описание назначения индексов данных значениям см. в разделе Индексы данных.
Массив значений использования
Массив значений использования — это последовательный набор значений, указанных в элементе main, всем из которых назначается одно и то же использование. Это происходит, если для элемента main указано только одно использование, количество отчетов которого больше единицы.
На следующем рисунке показан пример массива значений использования, который содержит пять элементов данных длиной в шесть битов.
В предыдущем примере структура возможностей значения для такого массива значений использования будет иметь значение FALSE для элемента IsRange, для элемента NotRange.Usage — значение 17, для элемента ReportCount — значение 5, а для элемента BitSize — значение 6.
Если в отчете используется значение 1, используйте HidP_GetUsageValue для извлечения значения использования. Если значение отчета об использовании больше 1, HidP_GetUsageValue возвращает только первый элемент данных в массиве значений использования. Чтобы извлечь все элементы данных в массиве значений использования, используйте HidP_GetUsageValueArray.