MaxFeatureReportSize = 263을 표시하는 장치가 있습니다. 장치와 통신하기위한 프로토콜에 정확히 263 바이트 길이의 기능 보고서를 보내야합니다. 이 Windows에서 잘 작동하지만 Mac에서 이상한 문제가 발생했습니다 - IOHIDDeviceSetReport
OS X 10.11 및 10.12 IOKit 헤더에서 추론 할 수없는 암호 오류 0xe0005000
반환하고 해당 드라이버 (IOUSBHostHIDDevice
) 코드는 closedsource 있습니다.Mac에서 64 바이트를 초과하는 HID 기능 보고서를 보낼 수 없습니다.
추가 조사는 64 바이트 이하의 요청을 보낼 때
- 이 오류가 나타나지 않는 것으로 나타났다. 불행히도 프로토콜이 돌로 설정되어 있고 변경할 수 없기 때문에 이것은 실제로 도움이되지 않습니다. 263 바이트를 보내야합니다.
0xe0005000
대신 이전IOUSBHIDDriver
을 사용하는 OS X 10.10에서0xe000404f
오류가 발생합니다. 이것은kIOUSBPipeStalled
이지만, 64 바이트 이상을 보내려고 할 때마다 여전히 얻습니다.
이것은 내가 얻은 것입니다. 지금 OS X 10.8을 다운로드하고 IOUSBFamily를 디버깅하여 64 바이트 이상의 보고서를 처리 할 수없는 이유를 확인하려고합니다. Apple이 OS X 10.9 이상에서 IOUSBFamily 소스를 제거하기로 결정한 것은 부끄러운 일입니다.
답을 보내 주셔서 감사합니다. 프로토콜 분석기가 나왔습니다. 나는 나의 발견과 함께 내 자신의 대답을 올렸다. 또한, IOUSBFamily 10.9.4 릴리스는 코드 누락으로 불완전합니다. OS X 10.9.4에 포함되지 않은 것 같습니다. – prazuber