Массивы возможностей кнопок

Массив возможностей кнопки содержит сведения об использовании кнопок, поддерживаемых коллекцией верхнего уровня для определенного типа отчета HID. Сведения о возможностях коллекции содержатся в ее HIDP_CAPS структуре.

Приложение пользовательского режима или драйвер режима ядра использует одну из следующих процедур поддержки HIDClass для получения сведений о возможностях кнопки:

  • HidP_GetButtonCaps возвращает массив возможностей кнопки, описывающий все варианты использования кнопок, содержащиеся в указанном типе отчета.

  • HidP_GetSpecificButtonCaps фильтрует возвращаемые сведения о возможности кнопки по указанной вызывающей странице использования, идентификатору использования и коллекции ссылок.

Массив возможностей кнопки содержит HIDP_BUTTON_CAPS структур, каждая из которых содержит следующие сведения об использовании HID или диапазоне использования.

  • Страница использования для использования или диапазона использования

  • Идентификатор отчета, содержащего данные кнопки

  • Идентификатор или диапазон использования

  • Флаг, указывающий, является ли использование псевдонимом

  • Коллекция ссылок, содержащая диапазон использования или

  • Дескрипторы строк и конструкторы, связанные с диапазоном использования или диапазоном использования (см. раздел Элемент индекса конструктора и Элемент строкового индекса).

  • Индексы данных, которые средство синтаксического анализа HID назначило диапазону использования или

Как правило, для всех вариантов использования, описанных в массиве возможностей кнопки, хранятся следующие условия:

  • Каждая структура возможностей представляет один диапазон использования или использования, связанный с переменной main элементом или массивом main элементом.

  • Использование с псевдонимами можно использовать с переменной main элементе. Использование, связанное с элементом массива, не может быть псевдонимом. Диапазон использования не может быть псевдонимом.

  • Средство синтаксического анализа HID использует только минимальное необходимое количество использования для назначения использования каждой кнопке. Средство синтаксического анализа назначает использование в порядке, в котором они указаны в дескрипторове отчета. Использование в дескрипторе отчета, которое не является обязательным, отбрасывается. Массив возможностей кнопки не содержит сведений о отмененных использованиях.

  • Если количество использования, указанное для элемента переменной, меньше числа кнопок в элементе, массив возможностей содержит только одну структуру возможностей, которая описывает использование одной кнопки (последнее использование, указанное в дескрипторе отчета для переменной main элемента). Однако сведения о значениях использования, число которых в отчете больше единицы, см. в разделе Массив значений использования.

  • Средство синтаксического анализа HID назначает уникальный индекс данных каждому использованию, описанному в массиве возможностей.

В следующих разделах рассматривается упорядочение и настройка структур возможностей в массиве возможностей кнопки.

Использование кнопок в переменной main элементе

Каждый диапазон использования или диапазон использования , указанный в дескрипторе отчета, описывается собственной структурой возможностей в массиве возможностей кнопки.

Член IsAlias структур возможностей используется для указания набора n псевдонимов использования следующим образом:

  • IsAlias имеет значение TRUE в первых структурах возможностей n-1, добавленных в массив возможностей. IsAlias имеет значение FALSE в n-й структуре возможностей. Предпочтительное использование — это последний псевдоним использования в последовательности.

Приложение или драйвер может определить, какие кнопки используют псевдонимы, путем проверки на наличие таких последовательностей.

В следующей таблице приведен пример использования с тремя псевдонимами.

Порядок использования псевдонимов в дескрипторове отчета Порядок использования в массиве возможностей Значение элемента IsAlias
использование 1 использование 3 TRUE
использование 2 использование 2 TRUE
использование 3 использование 1 FALSE

Сведения о перекрестных ссылках на использование и индексы данных см. в разделе Индексы данных.

Использование кнопок в элементе массива main

Каждый диапазон использования или диапазона использования для массива кнопок main элемент, указанный в дескрипторе отчета, описывается собственной структурой возможностей в массиве возможностей кнопки. Порядок, в котором структуры возможностей добавляются в массив возможностей, является обратным порядком, в котором указывается использование для main элемента.

Средство синтаксического анализа HID назначает индекс данных каждому использованию, связанному с элементом массива, в том порядке, в котором они указаны в дескрипторе отчета. Например, в следующей таблице показано соответствие между набором использования, указанным в дескрипторове отчета, и индексами использования и данных, указанными в массиве возможностей. (В этой таблице n — это первый индекс данных, который средство синтаксического анализа назначает первому использованию, связанному с элементом массива.)

Порядок использования в дескрипторове отчета Порядок использования в массиве возможностей DataIndex или из DataIndexMin в DataIndexMax
использование 1 диапазон использования 2 от n+7 до n+8
диапазон использования 1 (с 4 использования) использование 2 n+5
использование 2 диапазон использования 1 от n+1 до n+4
диапазон использования 2 (с 2 использования) использование 1 n