Matrices de funcionalidad de botón
Una matriz de funcionalidades de botón contiene información sobre los usos de botones admitidos por una colección de nivel superior para un tipo específico de informe HID. La información sobre la funcionalidad de una colección se incluye en su estructura de 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_GetButtonCaps devuelve una matriz de funcionalidades de botón que describe todos los usos de botón contenidos en un tipo de informe especificado.
HidP_GetSpecificButtonCaps filtra la información de funcionalidad del botón que devuelve una página de uso, un identificador de uso y una colección de vínculos especificada por el autor de la llamada.
Una matriz de funcionalidad de botón contiene estructuras de HIDP_BUTTON_CAPS , cada una de las cuales contiene la siguiente información sobre un intervalo de uso o uso de HID:
Página de uso del intervalo de uso o uso
Identificador de informe del informe que contiene los datos del botón
El identificador de uso o el intervalo de uso
Marca que indica si un uso es un uso con alias.
Colección de vínculos que contiene el uso o el intervalo de uso.
Descriptores de cadena y designadores asociados con el uso o el intervalo de uso (vea Elemento de índice de designador y Elemento de índice de cadena)
Índices de datos asignados al analizador hidrón al intervalo de uso o uso
En general, las condiciones siguientes contienen todos los usos descritos por una matriz de funcionalidades de botón:
Cada estructura de funcionalidad representa un único intervalo de uso o uso asociado a un elemento principal de variable o a un elemento principal de matriz.
Los usos con alias se pueden usar con un elemento principal de variable. No se puede establecer un alias de uso asociado a un elemento de matriz. No se puede establecer un alias en un intervalo de uso.
El analizador HID usa solo el número mínimo necesario de usos para asignar un uso a cada botón. 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 funcionalidades de botón no contiene información sobre los usos descartados.
Si el número de usos especificado para un elemento de variable es menor que el número de botones del elemento, la matriz de funcionalidades contiene solo una estructura de funcionalidad que describe un uso de botón (el último uso especificado en el descriptor de informe para el elemento principal de la variable). Sin embargo, consulte Usage Value Array para obtener información sobre los valores de uso que tienen un recuento de informes mayor que uno.
El analizador HID asigna un índice de datos único a cada uso descrito en la matriz de funcionalidades.
En los temas siguientes se describe cómo se organizan y establecen las estructuras de funcionalidad en una matriz de funcionalidades de botón:
- Usos de botones en un elemento principal de variable
- Usos de botones en un elemento principal de matriz
Usos de botones en un elemento principal de variable
Cada intervalo de uso o uso especificado en un descriptor de informe se describe mediante su propia estructura de funcionalidad en una matriz de funcionalidades de botón.
El miembro IsAlias de las estructuras de funcionalidad se usa para especificar un conjunto de n usos con alias de la siguiente manera:
- IsAlias se establece en TRUE en las primeras estructuras de funcionalidad n-1 agregadas a la matriz de funcionalidades. IsAlias se establece en FALSE en la nªestructura de funcionalidad. El uso preferido es el último uso con alias en la secuencia.
Una aplicación o controlador puede determinar qué usos de botón se alias mediante el examen de estas secuencias.
En la tabla siguiente se resume un ejemplo de tres usos con alias.
Orden de uso con alias en un descriptor de informe | Orden de uso en una matriz de funcionalidades | Valor de miembro de IsAlias |
---|---|---|
uso 1 | uso 3 | TRUE |
uso 2 | uso 2 | TRUE |
uso 3 | uso 1 | FALSE |
Para obtener información sobre cómo se hace referencia a los índices de datos y usos, vea Índices de datos.
Usos de botones en un elemento principal de matriz
Cada intervalo de uso o uso de un elemento principal de matriz de botones especificado en un descriptor de informe se describe mediante su propia estructura de funcionalidad en una matriz de funcionalidades de botón. El orden en el que se agregan las estructuras de funcionalidad a una matriz de funcionalidades es el inverso del orden en que se especifican los usos para un elemento principal.
El analizador HID asigna un índice de datos a cada uso asociado al elemento de matriz en el orden en que se especifican los usos en un descriptor de informe. Por ejemplo, en la tabla siguiente se muestra la correspondencia entre un conjunto de usos, como se especifica en un descriptor de informe, y los índices de uso y datos, tal como se especifica en la matriz de funcionalidades. (En esta tabla, n es el primer índice de datos que el analizador asigna al primer uso asociado al elemento de matriz).
Orden de uso en el descriptor de informe | Orden de uso en la matriz de funcionalidades | DataIndex o de DataIndexMin a DataIndexMax |
---|---|---|
uso 1 | intervalo de uso 2 | de n+7 a n+8 |
intervalo de uso 1 (con 4 usos) | uso 2 | n+5 |
uso 2 | intervalo de uso 1 | de n+1 a n+4 |
intervalo de uso 2 (con 2 usos) | uso 1 | n |