Массивы возможностей кнопок
Массив возможностей кнопки содержит сведения об использовании кнопок, поддерживаемых коллекцией верхнего уровня для определенного типа отчета 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 |