HidP_GetButtonArray función (hidpi.h)
HidP_GetButtonArray devuelve una matriz de estructuras de HIDP_BUTTON_ARRAY_DATA para el informe especificado.
Sintaxis
NTSTATUS HidP_GetButtonArray(
HIDP_REPORT_TYPE ReportType,
USAGE UsagePage,
USHORT LinkCollection,
USAGE Usage,
PHIDP_BUTTON_ARRAY_DATA ButtonData,
PUSHORT ButtonDataLength,
PHIDP_PREPARSED_DATA PreparsedData,
PCHAR Report,
ULONG ReportLength
);
Parámetros
ReportType
Valor de la enumeración HIDP_REPORT_TYPE .
UsagePage
Página de uso a la que hace referencia el uso especificado.
LinkCollection
(Opcional) Este valor se puede usar para diferenciar entre dos campos que pueden tener el mismo UsagePage y Usage , pero que existen en colecciones diferentes. Si el valor linkCollection es HIDP_LINK_COLLECTION_UNSPECIFIED, se devolverá la primera matriz de botones que coincida con UsagePage y Usage , independientemente de la ubicación. Si el valor linkCollection es HIDP_LINK_COLLECTION_ROOT, se devolverá la primera matriz de botones que se encuentra en la colección raíz que coincida con UsagePage y Usage .
Usage
El uso cuyos botones HidP_GetButtonArray recuperará.
ButtonData
Matriz de estructuras de HIDP_BUTTON_ARRAY_DATA donde se colocarán los datos de los botones establecidos ON
en . El número de elementos necesarios es el campo ReportCount del HIDP_BUTTON_CAPS para este control. El autor de la llamada proporciona este búfer.
ButtonDataLength
Como entrada, este parámetro especifica la longitud del parámetro ButtonData en el número de elementos de matriz, no el número de bytes. Como salida, si se devuelve HIDP_STATUS_SUCCESS, este valor se establece para indicar cuántos de esos elementos de matriz ha rellenado la función . El número máximo de estructuras de HIDP_BUTTON_ARRAY_DATA que se pueden devolver viene determinada por HIDP_BUTTON_CAPS. ReportCount. Si se devuelve HIDP_STATUS_BUFFER_TOO_SMALL, este valor contiene el número de elementos de matriz necesarios para completar correctamente la solicitud.
PreparsedData
Los datos analizados previamente devueltos por HIDCLASS.
Report
Paquete de informe. El primer byte debe ser reportId. Esto se establecerá correctamente si el informe se lee desde el sistema.
ReportLength
Longitud del paquete de informe especificado en bytes.
Valor devuelto
HidP_GetButtonArray devuelve uno de los siguientes valores de estado:
Código devuelto | Descripción |
---|---|
HIDP_STATUS_SUCCESS | Se recuperaron correctamente los botones del paquete del informe. |
HIDP_STATUS_INVALID_REPORT_TYPE | El parámetro ReportType no es válido |
HIDP_STATUS_INVALID_PREPARSED_DATA | El parámetro PreparsedData no es válido |
HIDP_STATUS_INVALID_REPORT_LENGTH | La longitud del paquete de informe no es igual a la longitud especificada en la estructura de HIDP_CAPS para el reportType especificado. |
HIDP_STATUS_NOT_BUTTON_ARRAY | El control especificado no es una matriz de botones |
HIDP_STATUS_BUFFER_TOO_SMALL | El tamaño del búfer pasado en el que devolver la matriz es demasiado pequeño. |
HIDP_STATUS_INCOMPATIBLE_REPORT_ID | La página de uso, el uso y la colección de vínculos especificados existen en un informe con un identificador de informe diferente al que se pasa en el informe. |
HIDP_STATUS_USAGE_NOT_FOUND | La combinación de la colección de vínculos, uso y página de uso no existe en ningún informe de este reportType. |
Comentarios
El autor de la llamada debe usar HidP_GetVersion para determinar si esta función está disponible. HidP_GetButtonArray solo está disponible si HidP_GetVersion devuelve un valor de dos o más. La versión dos de la API corresponde a Windows 11.
Una matriz de botones se produce cuando el último uso de la secuencia de usos que describe un elemento principal, debe repetirse porque hay menos usos definidos que el ReportCount declarado para el elemento principal especificado. En este caso, se asigna un único HIDP_BUTTON_CAPS para ese uso y el ReportCount del HIDP_BUTTON_CAPS se establece para reflejar el número de campos a los que hace referencia el uso.
Un HIDP_BUTTON_CAPS que describe una matriz de botones siempre tendrá ReportCount mayor que uno. Si ReportCount es igual a uno, no es una matriz de botones y no se puede usar con HidP_GetButtonArray. Vea HidP_GetUsages en su lugar.
Requisitos
Requisito | Valor |
---|---|
Header | hidpi.h |