Matrizes de funcionalidade de valor
Uma matriz de funcionalidade de valor contém informações sobre os usos de valor com suporte de uma coleção de nível superior para um tipo específico de relatório HID. As informações sobre as matrizes de funcionalidade de valor de uma coleção estão contidas em sua estrutura HIDP_CAPS .
Um aplicativo no modo de usuário ou driver de modo kernel usa uma das seguintes rotinas de suporte HIDClass para obter informações de funcionalidade do botão:
HidP_GetValueCaps retorna uma matriz de capacidade de valor que descreve todos os valores contidos em um tipo de relatório especificado pelo chamador.
HidP_GetSpecificValueCaps filtra as informações de capacidade de valor retornadas por uma página de uso, uso, coleção de links e tipo de relatório especificados pelo chamador.
Uma matriz de funcionalidades de valor contém estruturas HIDP_VALUE_CAPS , cada uma das quais descreve as seguintes informações sobre um uso hid ou intervalo de uso:
A página de uso de um intervalo de uso ou uso
A ID do relatório que contém o valor
Uma ID de uso ou um intervalo de uso
Indica se um uso é um uso de alias
Informações sobre a coleção de links que contém o uso ou o intervalo de uso
O tamanho, em bits, de um valor e a contagem de relatórios (que é o número de valores individuais descritos pela estrutura)
Atributos de cada valor, incluindo: se ele tem um valor nulo, suas unidades e expoente e seus intervalos lógicos e físicos
Informações sobre descritores de cadeia de caracteres e designadores associados ao uso ou ao intervalo de uso
Informações sobre os índices de dados que o analisador HID atribui a um intervalo de uso ou uso
Em geral, as seguintes condições são mantidas para todos os usos descritos por uma matriz de capacidade de valor:
Cada estrutura de funcionalidade representa um uso, um intervalo de uso ou uma matriz de valor de uso associada a uma variável main item. Não há suporte para itens de main de matriz para valores.
Os usos de alias podem ser usados. Um intervalo de uso não pode ser alias. Os valores de alias são vinculados em uma matriz de funcionalidade de valor da mesma forma que os botões com alias que vinculados em uma matriz de funcionalidades de botão. Consulte Usos de botão em um item principal de variável.
O analisador HID usa apenas os usos mínimos necessários para atribuir um uso a cada valor. O analisador atribui usos na ordem em que 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 funcionalidade de valor não contém nenhuma informação sobre usos descartados.
O analisador HID atribui um índice de dados exclusivo a cada uso descrito na matriz de funcionalidades.
Para obter uma descrição de como os índices de dados são atribuídos a valores, consulte Índices de dados.
Matriz de valor de uso
Uma matriz de valor de uso é um conjunto consecutivo de valores especificados em um item de main, todos os quais recebem o mesmo uso. Isso ocorrerá se apenas um uso for especificado para um item de main cuja contagem de relatórios é maior que um.
A figura a seguir mostra um exemplo de uma matriz de valor de uso que contém cinco itens de dados, cada um com seis bits de comprimento.
No exemplo anterior, a estrutura de funcionalidade de valor para essa matriz de valor de uso teria seu membro IsRange definido como FALSE, seu membro NotRange.Usage definido como 17, seu membro ReportCount definido como 5 e seu membro BitSize definido como 6.
Se a contagem de relatórios para um uso for 1, use HidP_GetUsageValue para extrair o valor de uso. Se a contagem de relatórios do uso for maior que 1, HidP_GetUsageValue retornará apenas o primeiro item de dados em uma matriz de valor de uso. Para extrair todos os itens de dados em uma matriz de valor de uso, use HidP_GetUsageValueArray.