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

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

kIOUSBNoAsyncPortErr

Не удалось организовать асинхронную доставку

kIOUSBNoAsyncPortErr указывает на отсутствие асинхронного порта в устаревшем интерфейсе IOUSBFamily. Это не означает, что конечная точка USB-устройства отклонила передачу. Недоступен был механизм на стороне хоста, необходимый для доставки асинхронного завершения или вызова callback.

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

Сохраняйте контекст асинхронной работы

  • Журналируйте объект API, создавший асинхронный путь, run-loop или dispatch context и срок жизни владеющей ссылки интерфейса.
  • Проверьте, что код выполняет предусмотренную API последовательность асинхронной настройки до отправки асинхронных передач.
  • Сопоставьте статус с завершением процесса, удалением устройства, сном и пробуждением и сбросом контроллера.
  • Не заменяйте асинхронные вызовы блокирующими как универсальный обходной путь; сначала выясните, нужны ли вызывающей стороне упорядоченное завершение и семантика отмены.

Ссылки


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