Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Массив возможностей кнопок содержит информацию об использовании кнопок, поддерживаемых коллекцией верхнего уровня для конкретного типа отчета HID. Информация о возможности коллекции содержится в ее HIDP_CAPS структуре.
Для получения сведений о возможностях кнопки одно из следующих подпрограмм поддержки HIDClass используется приложением в пользовательском режиме или драйвером в режиме ядра:
HidP_GetButtonCaps возвращает массив возможностей кнопки, описывающий все использование кнопок, содержащихся в указанном типе отчета.
HidP_GetSpecificButtonCaps фильтрует информацию о характеристиках кнопки, возвращаемую с учетом заданных вызывающим пользователем страницы использования, идентификатора использования и коллекции ссылок.
Массив возможностей кнопки содержит структуры HIDP_BUTTON_CAPS, каждая из которых содержит следующие сведения об использовании HID или диапазоне использования:
Страница назначения для использования или диапазона использования
Идентификатор отчета, содержащий данные кнопки
Идентификатор использования или диапазон использования
Флаг, указывающий, является ли использование перенаправленным использованием
Коллекция ссылок, содержащая диапазон использования или применение
Дескрипторы строк и идентификаторы, связанные с использованием или диапазоном использования (см. элемент "Индекс идентификатора" и элемент "Индекс строки")
Индексы данных, назначенные средством синтаксического анализа HID для использования или диапазона использования.
В общем, следующие условия применяются для всех использований кнопки, описанных в массиве возможностей.
Каждая структура возможностей представляет одно использование или диапазон использования, связанный с переменным основным элементом или основным элементом массива.
Связанные использования применяются с основным элементом переменной. Использование, связанное с элементом массива, не может быть псевдонимом. Не удается псевдонимировать диапазон использования.
Средство синтаксического анализа HID использует только минимальное необходимое количество операций для назначения использования каждой кнопке. Средство синтаксического анализа назначает использование в порядке, в котором они указаны в дескрипторе отчета. Использования в дескрипторе отчета, которые не являются обязательными, отбрасываются. Массив возможностей кнопки не содержит никаких сведений об отменённых использованиях.
Если количество использования, указанное для элемента переменной, меньше количества кнопок в элементе, массив возможностей содержит только одну структуру возможностей, описывающую использование одной кнопки (последнее использование, указанное в дескрипторе отчета для основного элемента переменной). Однако в массиве значений использования см. сведения об значениях использования, которые имеют число отчетов больше одного.
Средство синтаксического анализа HID назначает уникальный индекс данных каждому использованию, описанному в массиве возможностей.
В следующих разделах рассматривается, как организованы структуры возможностей и выполняется их настройка в массиве параметров кнопок.
- Использование кнопок в переменном основном элементе
- Использование кнопки в основном элементе массива
Использование кнопок в переменной главного элемента
Каждое использование или диапазон использования, указанное в дескрипторе отчета, описывается собственной структурой возможностей в массиве возможностей кнопки.
Член структуры возможностей IsAlias используется для указания набора связанных способов использования следующим образом:
- IsAlias имеет значение TRUE в первых структурах возможностей n-1, добавленных в массив возможностей. IsAlias имеет значение FALSE в структуре возможностей n. Предпочтительное использование — это последнее использование псевдонима в последовательности.
Приложение или драйвер может определить, какие параметры использования кнопки являются псевдонимами, проверяя наличие таких последовательностей.
В следующей таблице приведен пример использования трех псевдонимов.
| Порядок использования псевдонимов в дескрипторе отчета | Порядок использования в массиве возможностей | Значение члена IsAlias |
|---|---|---|
| использование 1 | использование 3 | ИСТИННЫЙ |
| использование 2 | использование 2 | ИСТИННЫЙ |
| использование 3 | использование 1 | ЛОЖНЫЙ |
Сведения о том, как взаимосвязываются использования и индексы данных, см. в Индексы данных.
Использование кнопки в основном элементе массива
Каждый тип использования или диапазон использования для основного элемента массива кнопок, указанного в дескрипторе отчета, описывается собственной структурой функционала в массиве структур функционала кнопки. Порядок добавления структур возможностей в массив возможностей является обратным порядку, в котором заданы использования для главного элемента.
Средство синтаксического анализа 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 |