Я работаю над встроенной системой, и мне нужно определить, подключил ли пользователь устройство HID, эмулирующее клавиатуру (то есть сканер штрих-кода) или фактическую клавиатуру.
Я могу проверить строковые дескрипторы iManufacturer, iProduct, iSerialNumber и iInterface, чтобы получить некоторые подсказки.Например, считывалось, что «считыватель» или «сканер» появляются в строке iProduct, когда считыватель штрих-кода был подключен.Аналогично, «эмуляция» была замечена в строке iInterface.Тем не менее, я немного неохотно полагаюсь исключительно на эти строки (регистр строк достаточно прост в обращении, но обработка таких вещей, как сокращения в ключевых словах / фразах, быстро становится обременительной.)1.10 и 1.11 спецификации и обнаружили, что дескриптор отчета также предлагает некоторые подсказки.Например, элемент общего использования должен быть что-то вроде 0x0501 для универсального рабочего стола, а элемент локального использования должен быть 0x0906 (клавиатура).Есть ли в дескрипторе отчета что-либо еще, что могло бы помочь обнаружить разницу?
Я бы хотел не использовать списки идентификаторов поставщиков и идентификаторов продуктов, поскольку это встроенная система с ограниченными ресурсами.Предложения?Я что-то пропустил?