Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una matriz de funcionalidades de botón contiene información sobre los usos de botón 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 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_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 capacidad del botón que devuelve según una página de uso, un identificador de uso y una colección de vínculos, todos especificados por el autor de la llamada.
Una matriz de capacidades de botón contiene HIDP_BUTTON_CAPS estructuras, cada una de las cuales contiene la siguiente información sobre un uso HID o un intervalo de uso:
Página de uso para el uso o el rango de uso
ID de informe del informe que contiene los datos del botón
El identificador de uso o el intervalo de uso
Una bandera 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 rango de uso (vea elemento del índice de designadores y elemento del índice de cadenas)
Los índices de datos que el parser HID asignó al uso o rango de uso
En general, las siguientes condiciones se mantienen para todos los usos descritos por una matriz de funcionalidades de botón:
Cada estructura de funcionalidad representa un único uso o intervalo de uso asociado a un elemento principal de variable o a un elemento principal de matriz.
Los usos con alias se pueden utilizar con un elemento principal asociado a una variable. No se puede establecer un alias de uso asociado a un elemento de matriz. No se puede poner un alias a un rango 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 funcionalidad de botón no contiene información sobre los usos descartados.
Si el número de usos especificados 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 Matriz de valores de uso 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:
- Funciones de botón en un elemento principal variable
- Usos de botón en un elemento principal de matriz
Usos de botones en un ítem principal 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 del miembro IsAlias |
|---|---|---|
| uso 1 | uso 3 | TRUE |
| uso 2 | uso 2 | TRUE |
| uso 3 | uso 1 | FALSO |
Para obtener información sobre cómo se hace referencia a los usos y a los índices de datos, consulte Índices de datos.
Usos de botón en un elemento principal de matriz
Cada uso o intervalo de uso para un elemento principal de matriz de botones especificado en un descriptor de informe se describe mediante su propia estructura de capacidad en una matriz de capacidades de botones. El orden en el que se agregan las estructuras de funcionalidad a una matriz de funcionalidad es el inverso del orden en el 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, tal 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 |
| rango de uso 2 (con 2 usos) | uso 1 | n |