Matrices de funcionalidad de valor
Una matriz de funcionalidades de valor contiene información sobre los usos de valor admitidos por una colección de nivel superior para un tipo específico de informe HID. La información sobre las matrices de funcionalidad de valor de una colección se encuentra en su estructura HIDP_CAPS .
Una aplicación en modo de usuario o un controlador en modo kernel usa una de las siguientes rutinas de compatibilidad de HIDClass para obtener información sobre la funcionalidad del botón:
HidP_GetValueCaps devuelve una matriz de funcionalidades de valor que describe todos los valores contenidos en un tipo de informe especificado por el autor de la llamada.
HidP_GetSpecificValueCaps filtra la información de funcionalidad de valor que devuelve una página de uso, el uso, la colección de vínculos y el tipo de informe especificados por el autor de la llamada.
Una matriz de funcionalidades de valor contiene HIDP_VALUE_CAPS estructuras, cada una de las cuales describe la siguiente información sobre un intervalo de uso o uso de HID:
Página de uso de un intervalo de uso o uso
Identificador de informe del informe que contiene el valor
Un identificador de uso o un intervalo de uso
Indica si un uso es un uso con alias.
Información sobre la colección de vínculos que contiene el uso o el intervalo de uso
El tamaño, en bits, de un valor y el recuento de informes (que es el número de valores individuales descritos por la estructura)
Atributos de cada valor, incluidos: si tiene un valor NULL, sus unidades y exponente, y sus intervalos lógicos y físicos
Información sobre los descriptores de cadena y los designadores asociados al intervalo de uso o uso
Información sobre los índices de datos a los que el analizador hid asigna un intervalo de uso o de uso
En general, las condiciones siguientes se mantienen para todos los usos descritos por una matriz de funcionalidades de valor:
Cada estructura de funcionalidad representa un uso, un intervalo de uso o una matriz de valores de uso que está asociada a un elemento principal de variable. Los elementos principales de la matriz no se admiten para los valores.
Se pueden usar usos con alias. No se puede establecer un alias en un intervalo de uso. Los valores con alias se vinculan juntos en una matriz de funcionalidades de valor de la misma manera que los botones con alias que se vinculan juntos en una matriz de funcionalidades de botón. Vea Usos de botones en un elemento principal de variable.
El analizador HID solo usa los usos mínimos necesarios para asignar un uso a cada valor. El analizador asigna usos en el orden en que se especifican en un descriptor de informe. Se descartan los usos de un descriptor de informe que no son necesarios. La matriz de funcionalidad de valor no contiene información sobre los usos descartados.
El analizador HID asigna un índice de datos único a cada uso descrito en la matriz de funcionalidades.
Para obtener una descripción de cómo se asignan los índices de datos a los valores, consulte Índices de datos.
Matriz de valores de uso
Una matriz de valores de uso es un conjunto consecutivo de valores especificados en un elemento principal, a los que se les asigna el mismo uso. Esto ocurre si solo se especifica un uso para un elemento principal cuyo recuento de informes es mayor que uno.
En la ilustración siguiente se muestra un ejemplo de una matriz de valores de uso que contiene cinco elementos de datos, cada seis bits de longitud.
En el ejemplo anterior, la estructura de funcionalidad de valor para dicha matriz de valores de uso tendría su miembro IsRange establecido en FALSE, su miembro NotRange.Usage establecido en 17, su miembro ReportCount establecido en 5 y su miembro BitSize establecido en 6.
Si el recuento de informes de un uso es 1, use HidP_GetUsageValue para extraer el valor de uso. Si el recuento de informes de uso es mayor que 1, HidP_GetUsageValue solo devuelve el primer elemento de datos de una matriz de valores de uso. Para extraer todos los elementos de datos de una matriz de valores de uso, use HidP_GetUsageValueArray.