| Предыдущий | Следующий |
| kIOUSBNotEnoughPowerErr | kIOUSBNoAsyncPortErr |
kIOUSBNotEnoughPipesErr
Канал — путь хоста к конечной точке
kIOUSBNotEnoughPipesErr сообщает, что интерфейсу не хватает каналов. В терминологии USB канал является программным путём связи хоста с конечной точкой устройства в активной конфигурации и настройке интерфейса. Это не то же самое, что отсутствующий дескриптор конечной точки: endpoint может существовать, но настройка интерфейса на стороне хоста не способна предоставить все требуемые каналы.
Полезно отделять это состояние от kIOUSBTooManyPipesErr. Первый результат описывает недостаток доступных каналов для потребностей интерфейса; второй — попытку превысить предел числа каналов. В обоих случаях нужно исследовать активный интерфейс и альтернативную настройку, а не считать USB-устройство единым неделимым объектом.
Проверьте контекст активного интерфейса
- Запишите значение конфигурации, номер интерфейса, альтернативную настройку и все дескрипторы конечных точек этой настройки.
- Установите, какие каналы уже открыты или удерживаются тем же клиентом и завершилось ли предыдущее закрытие.
- Проверьте, меняет ли альтернативная настройка набор конечных точек или требуемое число каналов.
- Не диагностируйте это как нехватку полосы USB, если контроллер не сообщает отдельный статус планирования или bandwidth.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
