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

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

kIOUSBNotEnoughPipesErr

Канал — путь хоста к конечной точке

kIOUSBNotEnoughPipesErr сообщает, что интерфейсу не хватает каналов. В терминологии USB канал является программным путём связи хоста с конечной точкой устройства в активной конфигурации и настройке интерфейса. Это не то же самое, что отсутствующий дескриптор конечной точки: endpoint может существовать, но настройка интерфейса на стороне хоста не способна предоставить все требуемые каналы.

Полезно отделять это состояние от kIOUSBTooManyPipesErr. Первый результат описывает недостаток доступных каналов для потребностей интерфейса; второй — попытку превысить предел числа каналов. В обоих случаях нужно исследовать активный интерфейс и альтернативную настройку, а не считать USB-устройство единым неделимым объектом.

Проверьте контекст активного интерфейса

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

Ссылки


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