Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma matriz de funcionalidades de botão contém informações sobre os usos de botão suportados por uma coleção de nível superior para um tipo específico de relatório HID. Informações sobre a capacidade de uma coleção estão contidas em sua estrutura HIDP_CAPS.
Um aplicativo de modo usuário ou driver de modo kernel usa uma das seguintes rotinas de suporte HIDClass para obter informações de capacidade do botão.
HidP_GetButtonCaps retorna uma matriz de funcionalidade de botão que descreve todos os usos de botão contidos em um tipo de relatório especificado.
HidP_GetSpecificButtonCaps filtra as informações de funcionalidade de botão retornadas por uma página de uso, ID de uso e coleção de links especificados pelo chamador.
Uma matriz de capacidades de botão contém estruturas HIDP_BUTTON_CAPS, cada uma das quais contém as seguintes informações sobre um uso HID ou um intervalo de usos:
A página de uso para o uso ou intervalo de uso
A ID do relatório que contém os dados do botão
O ID de uso ou a faixa de uso
Um sinalizador que indica se um uso é um uso com alias
A coleção de links que contém o uso ou o intervalo de uso
Os descritores de strings e os designadores associados ao uso ou intervalo de uso (consulte o item Índice de Designadores e o item Índice de Strings)
Os índices de dados que o analisador HID atribuiu para uso ou intervalo de uso
Em geral, as seguintes condições são mantidas para todos os usos descritos por uma matriz de funcionalidade de botão:
Cada estrutura de capacidade representa uma única utilização ou intervalo de utilização associado a um item principal de variável ou a um item principal de matriz.
Os usos com alias podem ser utilizados com um item principal variável. Um uso associado a um item de matriz não pode ser referenciado. Um intervalo de uso não pode ser referenciado.
O analisador HID usa apenas o número mínimo necessário de usos para atribuir um uso a cada botão. O analisador atribui usos na ordem em que eles são especificados em um descritor de relatório. Os usos em um descritor de relatório que não são necessários são descartados. A matriz de funcionalidades do botão não contém informações sobre usos descartados.
Se o número de usos especificado para um item de variável for menor que o número de botões no item, a matriz de recursos conterá apenas uma estrutura de funcionalidade que descreve um uso de botão (o último uso especificado no descritor de relatório para o item principal da variável). No entanto, consulte Matriz de Valor de Uso para obter informações sobre valores de uso que têm uma contagem de relatórios maior que uma.
O analisador HID atribui um índice de dados exclusivo a cada uso descrito na matriz de funcionalidades.
Os tópicos a seguir discutem como as estruturas de funcionalidade são organizadas e definidas em uma matriz de funcionalidade de botão:
Utilizações de botões num item principal variável
Cada intervalo de uso ou uso especificado em um descritor de relatório é descrito por sua própria estrutura de funcionalidade em uma matriz de funcionalidade de botão.
O membro IsAlias das estruturas de capacidade é usado para especificar um conjunto de n usos com alias da seguinte maneira:
- IsAlias é definido como TRUE nas primeiras estruturas de funcionalidade n-1 adicionadas à matriz de funcionalidades. IsAlias definido como FALSE na enésima estrutura de capacidade. O uso preferencial é o último uso de alias na sequência.
Um aplicativo ou driver pode determinar quais usos de botão estão em alias verificando essas sequências.
A tabela a seguir resume um exemplo para três usos de alias.
| Ordem de uso com alias em um descritor de relatório | Ordem de uso em uma matriz de recursos | Valor do membro IsAlias |
|---|---|---|
| uso 1 | uso 3 | VERDADEIRO |
| uso 2 | uso 2 | VERDADEIRO |
| uso 3 | uso 1 | FALSO |
Para obter informações sobre como as utilizações e índices de dados são referenciados cruzadamente, consulte Índices de Dados.
Usos de botão em um item principal de matriz
Cada uso ou intervalo de uso de um item principal de matriz de botões especificado em um descritor de relatório é descrito por sua própria estrutura de funcionalidade em uma matriz de funcionalidade de botão. A ordem na qual as estruturas de funcionalidade são adicionadas a uma matriz de funcionalidade é o inverso da ordem na qual os usos são especificados para um item principal.
O analisador HID atribui um índice de dados a cada uso associado ao item de matriz na ordem em que os usos são especificados em um descritor de relatório. Por exemplo, a tabela a seguir mostra a correspondência entre um conjunto de usos, conforme especificado em um descritor de relatório, e os usos e índices de dados, conforme especificado na matriz de recursos. (Nesta tabela, n é o primeiro índice de dados que o analisador atribui ao primeiro uso associado ao item de matriz.)
| Ordem de uso no descritor de relatório | Ordem de uso na matriz de recursos | DataIndex ou de DataIndexMin para DataIndexMax |
|---|---|---|
| uso 1 | intervalo de uso 2 | de n+7 a n+8 |
| faixa de uso 1 (com 4 usos) | uso 2 | n+5 |
| uso 2 | intervalo de uso 1 | de n+1 a n+4 |
| intervalo de uso 2 (com duas utilizações) | uso 1 | n |