Интерфейс программирования приложений HID (API)
Существует три категории API HID:
- Обнаружение и настройка устройств
- Перемещение данных
- Создание и интерпретация отчетов
Обнаружение и настройка устройств
Эти API HID используются для идентификации свойств устройства HID и установления связи с этим устройством. Приложения используют эти API для идентификации коллекции верхнего уровня.
- HidD_GetAttributes
- HidD_GetHidGuid
- HidD_GetIndexedString
- HidD_GetManufacturerString
- HidD_GetPhysicalDescriptor
- HidD_GetPreparsedData
- HidD_GetProductString
- HidD_GetSerialNumberString
- HidD_GetNumInputBuffers
- HidD_SetNumInputBuffers
Перемещение данных
Следующие API HID используются для перемещения данных между приложением и выбранным устройством.
Создание и интерпретация отчетов
Разработчики пользовательского оборудования знают размер и формат каждого отчета, выданного их устройством. В этом случае приложение может привести буферы входных и выходных отчетов в качестве структур и использовать данные.
Разработчики приложений HID, предназначенные для взаимодействия со всеми устройствами, предоставляющими общие функциональные возможности, могут не знать размер и формат отчетов HID. Эта категория приложения понимает определенные коллекции верхнего уровня и определенные виды использования.
Чтобы интерпретировать отчеты, полученные от устройства или создавать отчеты для отправки, приложение должно использовать дескриптор отчета, чтобы определить, находится ли конкретное использование в отчетах и единицах значений в отчетах. В этих случаях требуется синтаксический анализ HID. Windows предоставляет средство синтаксического анализа HID для использования драйверами и приложениями через API (HidP_*), который можно использовать для обнаружения типов использования, поддерживаемых устройством, определения состояния таких использования в отчете или создания отчета для изменения состояния использования на устройстве.
Ниже приведен список API синтаксического анализа 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