Что означает код возврата ядра macOS 0xE0004057 (kIOUSBEndpointNotFound)?

 
Предыдущий Следующий
kIOUSBConfigNotFound kIOUSBNotEnoughPowerErr

kIOUSBEndpointNotFound

В текущем интерфейсе нет подходящей конечной точки

kIOUSBEndpointNotFound означает, что запрошенная конечная точка недоступна в активном USB-интерфейсе. Адрес конечной точки не является дескриптором всего устройства: он задаётся дескрипторами конечных точек конкретного интерфейса и может измениться при смене конфигурации или альтернативной настройки. Для операции также важны направление и тип передачи.

Поэтому сохранять номер конечной точки после переключения конфигурации небезопасно. Устройство может предоставить тот же номер интерфейса с другой альтернативной настройкой, другим набором конечных точек или вообще без нужной конечной точки. Ошибка устраняется исследованием дескрипторов, а не увеличением индекса канала или повтором передачи.

Что следует проверить

  • Запишите активную конфигурацию, номер интерфейса, альтернативную настройку, адрес и направление конечной точки и ожидаемый тип передачи.
  • Разберите дескрипторы конечных точек выбранной настройки интерфейса и сопоставьте их с запрошенной конечной точкой.
  • После смены конфигурации или альтернативной настройки создайте привязки каналов заново; старые ссылки больше не описывают текущий набор конечных точек.
  • Отделяйте выбор конечной точки протокола от выбора устройства в интерфейсе пользователя, чтобы переподключение не использовало незаметно недействительную ссылку на канал.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.