Compartilhar via


função HidP_GetButtonArray (hidpi.h)

HidP_GetButtonArray retorna uma matriz de estruturas de HIDP_BUTTON_ARRAY_DATA para o relatório especificado.

Sintaxe

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

Um valor da enumeração HIDP_REPORT_TYPE .

UsagePage

A página de uso à qual o uso especificado se refere.

LinkCollection

(Opcional) Esse valor pode ser usado para diferenciar entre dois campos que podem ter o mesmo UsagePage e Usage, mas existem em coleções diferentes. Se o valor LinkCollection for HIDP_LINK_COLLECTION_UNSPECIFIED, a primeira matriz de botões encontrada correspondente a UsagePage e Usage será retornada, independentemente da localização. Se o valor LinkCollection for HIDP_LINK_COLLECTION_ROOT, a primeira matriz de botões encontrada na coleção raiz que corresponde a UsagePage e Usage será retornada.

Usage

O uso cujos botões HidP_GetButtonArray será recuperado.

ButtonData

Uma matriz de estruturas de HIDP_BUTTON_ARRAY_DATA em que os dados de botões definidos como ON serão colocados. O número de elementos necessários é o campo ReportCount do HIDP_BUTTON_CAPS para esse controle. Esse buffer é fornecido pelo chamador.

ButtonDataLength

Como entrada, esse parâmetro especifica o comprimento do parâmetro ButtonData no número de elementos de matriz, não o número de bytes. Como saída, se HIDP_STATUS_SUCCESS for retornado, esse valor será definido para indicar quantos desses elementos de matriz foram preenchidos pela função . O número máximo de estruturas de HIDP_BUTTON_ARRAY_DATA que podem ser retornadas é determinado por HIDP_BUTTON_CAPS. ReportCount. Se HIDP_STATUS_BUFFER_TOO_SMALL for retornado, esse valor conterá o número de elementos de matriz necessários para concluir a solicitação com êxito.

PreparsedData

Os dados pré-analisados retornados pelo HIDCLASS.

Report

O pacote de relatório. O primeiro byte deve ser o ReportId. Isso será definido corretamente se o relatório for lido do sistema.

ReportLength

Comprimento do pacote de relatório especificado em bytes.

Retornar valor

HidP_GetButtonArray retorna um dos seguintes valores de status:

Código de retorno Descrição
HIDP_STATUS_SUCCESS Recuperou com êxito os botões do pacote de relatório
HIDP_STATUS_INVALID_REPORT_TYPE O parâmetro ReportType não é válido
HIDP_STATUS_INVALID_PREPARSED_DATA O parâmetro PreparsedData não é válido
HIDP_STATUS_INVALID_REPORT_LENGTH O comprimento do pacote de relatório não é igual ao comprimento especificado na estrutura HIDP_CAPS para o ReportType especificado
HIDP_STATUS_NOT_BUTTON_ARRAY O controle especificado não é uma matriz de botões
HIDP_STATUS_BUFFER_TOO_SMALL O tamanho do buffer passado no qual retornar a matriz é muito pequeno
HIDP_STATUS_INCOMPATIBLE_REPORT_ID A página de uso, o uso e a coleção de link especificados existem em um relatório com uma ID de relatório diferente do relatório que está sendo passado
HIDP_STATUS_USAGE_NOT_FOUND A página de uso, o uso e a combinação de coleção de links não existem em nenhum relatório para este ReportType

Comentários

O chamador deve usar HidP_GetVersion para determinar se essa função está disponível. HidP_GetButtonArray só estará disponível se HidP_GetVersion retornar um valor de dois ou mais. A versão dois da API corresponde a Windows 11.

Uma matriz de botões ocorre quando o último uso na sequência de usos que descrevem um item main deve ser repetido porque há menos usos definidos do que o ReportCount declarado para o item de main determinado. Nesse caso, um único HIDP_BUTTON_CAPS é alocado para esse uso e o ReportCount do HIDP_BUTTON_CAPS é definido para refletir o número de campos aos quais o uso se refere.

Um HIDP_BUTTON_CAPS que descreve uma matriz de botões sempre terá ReportCount maior que um. Se ReportCount for igual a um, ele não será uma matriz de botões e não poderá ser usado com HidP_GetButtonArray. Em vez disso , consulte HidP_GetUsages .

Requisitos

Requisito Valor
Cabeçalho hidpi.h

Confira também