Interface de programação de aplicativos (API) HID
Existem três categorias de APIs HID:
- Descoberta e configuração de dispositivos
- Movimentação de dados
- Criação e interpretação de relatórios
Descoberta e configuração de dispositivos
Essas APIs HID são usadas para identificar as propriedades de um dispositivo HID e estabelecer comunicação com esse dispositivo. Os aplicativos usam essas APIs para identificar uma coleção de nível superior.
- HidD_GetAttributes
- HidD_GetHidGuid
- HidD_GetIndexedString
- HidD_GetManufacturerString
- HidD_GetPhysicalDescriptor
- HidD_GetPreparsedData
- HidD_GetProductString
- HidD_GetSerialNumberString
- HidD_GetNumInputBuffers
- HidD_SetNumInputBuffers
Movimentação de dados
As seguintes APIs HID são usadas para mover dados entre um aplicativo e um dispositivo selecionado.
Criação e interpretação de relatórios
Os desenvolvedores de hardware personalizado conhecem o tamanho e o formato de cada relatório emitido por seu dispositivo. Nesse caso, o aplicativo pode converter os buffers de relatório de entrada e saída como structs e consumir os dados.
Os desenvolvedores de aplicativos HID destinados a se comunicar com todos os dispositivos que expõem funcionalidades comuns podem não saber o tamanho e o formato dos relatórios HID. Essa categoria de aplicativo compreende certas coleções de nível superior e determinados usos.
Para interpretar os relatórios recebidos de um dispositivo ou criar relatórios a serem enviados, o aplicativo deve usar o descritor de relatório para determinar se e onde um uso específico está localizado nos relatórios e as unidades de valores nos relatórios. Nesses casos, a análise HID é necessária. Windows fornece um analisador HID para uso por drivers e aplicativos por meio de APIs (HidP_*) que pode ser usado para descobrir os tipos de usos compatíveis com um dispositivo, determinar o estado desses usos em um relatório ou criar um relatório para alterar o estado de um uso no dispositivo.
Aqui está a lista de APIs do analisador HID:
- HidP_GetButtonArray
- HidP_GetButtonCaps
- HidP_GetButtons
- HidP_GetButtonsEx
- HidP_GetCaps
- HidP_GetData
- HidP_GetExtendedAttributes
- HidP_GetLinkCollectionNodes
- HidP_GetScaledUsageValue
- HidP_GetSpecificButtonCaps
- HidP_GetSpecificValueCaps
- HidP_GetUsages
- HidP_GetUsagesEx
- HidP_GetUsageValue
- HidP_GetUsageValueArray
- HidP_GetValueCaps
- HidP_GetVersion
- HidP_InitializeReportForID
- HidP_MaxDataListLength
- HidP_MaxUsageListLength
- HidP_SetButtonArray
- HidP_SetButtons
- HidP_SetData
- HidP_SetScaledUsageValue
- HidP_SetUsages
- HidP_SetUsageValue
- HidP_SetUsageValueArray
- HidP_TranslateUsagesToI8042ScanCodes
- HidP_UnsetButtons
- HidP_UnsetUsages
- HidP_UsageAndPageListDifference
- HidP_UsageListDifference