| Предыдущий | Следующий |
| kIOUSBStreamsNotSupported | kIOUSBEndpointCountExceeded |
kIOUSBDeviceCountExceeded
При перечислении достигнут предел контроллера хоста
kIOUSBDeviceCountExceeded означает, что USB-контроллер не смог выделить ресурсы для перечисления ещё одного устройства. В архитектуре xHCI контексты и слоты устройств управляются контроллером. Это отличается от некорректного дескриптора устройства: ограничивающим фактором является контроллер и его текущая топология, а не обязательно вновь подключённое периферийное устройство.
Концентратор не устраняет этот предел. Он расширяет физическое дерево, но контроллер хоста по-прежнему должен представить каждое перечисленное устройство. Поэтому практический вопрос — какой контроллер владеет всем деревом и сколько устройств уже к нему подключено, а не выглядит ли свободным один видимый порт.
Данные до внесения изменений
- Сохраните USB-дерево из System Information или I/O Registry, включая концентраторы, контроллеры док-станций, внутренние устройства и контроллер, владеющий неудачным портом.
- Сохраните сообщения контроллера и ядра при попытке перечисления. Они отличают нехватку ёмкости от ошибок питания, дескриптора или линии, которые на уровне приложения могут выглядеть похоже.
- Переместите периферийное устройство на порт другого контроллера либо уменьшите дерево устройств насыщенного контроллера и сравните результат.
- Не переписывайте конфигурацию устройства или дескрипторы конечных точек для устранения именно этого статуса; они относятся к другим сбоям, например исчерпанию ёмкости конечных точек.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
