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

 
Предыдущий Следующий
kIOUSBTooManyPipesErr kIOConfigNoEntry

kIOUSBUnknownPipeErr

Ссылка на канал устарела, принадлежит другому объекту или больше недействительна

kIOUSBUnknownPipeErr означает, что стек IOUSBFamily не распознаёт предоставленную ссылку на канал. Статус относится к идентичности объекта на стороне узла, а не к ответу конечной точки устройства. Канал может стать недействительным после закрытия интерфейса, повторного перечисления устройства, изменения альтернативной настройки либо смешения вызывающей стороной ссылок от разных экземпляров интерфейса.

Это отличается от kIOUSBEndpointNotFound, когда поиск конечной точки завершается неудачей в контексте дескриптора или интерфейса. Здесь дескриптор канала существует у вызывающей стороны, но текущий объект, получивший запрос, не может его разрешить.

Проверьте принадлежность и срок жизни

  • Зафиксируйте создателя ссылки на канал, ссылку на владеющий интерфейс, конфигурацию, альтернативную настройку и адрес конечной точки.
  • Аннулируйте кэшированные дескрипторы каналов при отключении, сбросе, изменении конфигурации и закрытии интерфейса.
  • Убедитесь, что обратный вызов не отправляет последующую работу через канал, освобождённый другим путём завершения.
  • Не трактуйте ошибку как физическое отключение устройства, не проверив жизненный цикл объекта интерфейса.

Ссылки


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