저는 임베디드 시스템에서 작업 중이며 사용자가 키보드 (예 : 바코드 스캐너)를 에뮬레이트하는 HID 장치를 연결했는지 또는 실제 건반.USB HID 장치가 키보드를 에뮬레이트하는 경우를 감지하는 신뢰할 수있는 방법
iManufacturer, iProduct, iSerialNumber 및 iInterface 문자열 설명자를 검사하여 단서를 얻을 수 있습니다. 예를 들어 바코드 리더를 연결하면 iProduct 문자열에 "reader"또는 "scanner"가 표시됩니다. 마찬가지로, "에뮬레이션"은 iInterface 문자열에서 볼 수 있습니다. 그러나 나는이 문자열에 전적으로 의존하기를 꺼립니다 (문자열 케이스는 취급하기가 쉽지만 핵심 단어/문구에 약어와 같은 것들을 처리하는 것은 번거롭습니다.)
나는 USB 1.10 및 1.11 스펙을 사용하여 보고서 설명자가 일부 단서를 제공함을 발견했습니다. 예를 들어 전역 사용 항목은 일반 데스크톱의 경우 0x0501과 같아야하며 로컬 사용 항목은 0x0906이어야합니다 (키보드). 차이점을 감지하는 데 도움이 될 수있는 보고서 설명자에 다른 것이 있습니까?
제한된 리소스를 사용하는 임베디드 시스템이므로 공급 업체 ID 및 제품 ID 목록에 의존하지 마십시오. 제안? 내가 놓친 것이 있습니까?
당신은 리눅스가 이와 같은 것을 어떻게 다루는지를 보았습니까? –
리눅스는 키보드와 키보드를 모호하게 할 필요가 있다고 생각하지 않습니다. – Throwback1986