Compartir a través de


Matrices de capacidad de valor

Una matriz de capacidad 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 incluye 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 de funcionalidad de botón:

  • HidP_GetValueCaps devuelve una matriz de funcionalidad 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 capacidad de valor que devuelve mediante una página de uso, uso, colección de vínculos y tipo de informe especificados por el autor de la llamada.

Una matriz de capacidad de valor contiene estructuras HIDP_VALUE_CAPS, cada una de las cuales describe la siguiente información sobre un uso de HID o intervalo de uso:

  • Página de configuración de uso para un intervalo de uso o uso

  • El ID 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 enlaces que contiene el uso o el rango 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 con el uso o el intervalo de uso

  • Información sobre los índices de datos a los que el analizador HID asigna un uso o intervalo de uso

En general, las condiciones siguientes se aplican a todos los usos descritos por un array de capacidades 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 del array no son compatibles con los valores.

  • Se pueden emplear aplicaciones con alias. No se puede poner un alias a un rango de uso. Los valores con alias se enlazan en una matriz de capacidades de valor de la misma manera que los botones con alias se enlazan en una matriz de capacidades de botón. Consulte Usos de botón en un elemento principal variable.

  • El analizador HID usa solo 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, todos los cuales tienen asignado 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.

Diagrama que ilustra una matriz de valores de uso que contiene cinco elementos de datos, cada 6 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 del 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.