Compartilhar via


função HidP_SetData (hidpi.h)

A rotina HidP_SetData define um conjunto especificado de usos de valor e botão de controle HID em um relatório HID.

Sintaxe

NTSTATUS HidP_SetData(
  [in]      HIDP_REPORT_TYPE     ReportType,
  [in, out] PHIDP_DATA           DataList,
  [in, out] PULONG               DataLength,
  [in]      PHIDP_PREPARSED_DATA PreparsedData,
  [in]      PCHAR                Report,
  [in]      ULONG                ReportLength
);

Parâmetros

[in] ReportType

Especifica um valor de enumerador HIDP_REPORT_TYPE que indica o tipo de relatório HID localizado em Relatório.

[in, out] DataList

Ponteiro para uma matriz alocada por chamador de HIDP_DATA estruturas que especificam quais botões e valores de uso definir.

[in, out] DataLength

Especifica, na entrada, o número de membros na matriz DataList . Para obter informações sobre o valor de saída, consulte a seção Comentários.

[in] PreparsedData

Ponteiro para os dados pré-preparados de um nível superior.

[in] Report

Ponteiro para um relatório HID.

[in] ReportLength

Especifica o tamanho, em bytes, do relatório HID localizado em Report, que deve ser igual ao comprimento do relatório para o tipo de relatório especificado que HidP_GetCaps retorna na estrutura HIDP_CAPS de uma coleção.

Retornar valor

HidP_SetData retornará HIDP_STATUS_SUCCESS se definir com êxito todos os dados de controle especificados por DataList.

HidP_SetData retornará um dos seguintes valores de status se um dos parâmetros de entrada não for válido:

Código de retorno Descrição
HIDP_STATUS_INVALID_PREPARSED_DATA
Os dados pré-preparados especificados por PreparsedData não são válidos.
HIDP_STATUS_INVALID_REPORT_LENGTH
O tamanho, em bytes, do relatório HID não é igual ao comprimento especificado na estrutura HIDP_CAPS da coleção para o tipo de relatório especificado.
HIDP_STATUS_INVALID_REPORT_TYPE
ReportType não é válido.
HIDP_STATUS_REPORT_DOES_NOT_EXIST
A coleção não contém um relatório do tipo especificado.
 

HidP_SetData retornará um dos seguintes valores de erro se um dos valores de uso ou botão especificados não puder ser definido:

Código de retorno Descrição
HIDP_STATUS_BUFFER_TOO_SMALL
Um botão em uma matriz não foi definido como ON (1) porque todos os campos de matriz já são usados para indexar outros botões.
HIDP_STATUS_BUTTON_NOT_PRESSED
Um membro DataList especifica definir um botão OFF (zero), mas o botão já está definido como OFF.
HIDP_STATUS_DATA_INDEX_NOT_FOUND
O índice de dados de um membro DataList não é válido.
HIDP_STATUS_INCOMPATIBLE_REPORT_ID
Um botão ou valor de uso está contido em um relatório, mas não está no relatório especificado.
HIDP_STATUS_IS_VALUE_ARRAY
Um índice de dados especifica uma matriz de valor de uso.

Comentários

Exceto para matrizes de valor de uso, um aplicativo no modo de usuário ou driver de modo kernel pode usar HidP_SetData para definir botões e valores de uso em um relatório. Para definir uma matriz de valor de uso, um aplicativo ou driver deve usar HidP_SetUsageValueArray.

HidP_SetData define o valor de saída de DataLength da seguinte maneira:

Para obter mais informações, consulte Coleções HID.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows 2000 e versões posteriores do Windows.
Plataforma de Destino Universal
Cabeçalho hidpi.h (inclua Hidpi.h)
Biblioteca Hidparse.lib
IRQL PASSIVE_LEVEL

Confira também

HIDP_DATA

HidP_GetData

HidP_SetButtons

HidP_SetUsageValueArray

HidP_SetUsages

HidP_UnsetButtons

HidP_UnsetUsages

_HIDP_PREPARSED_DATA