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

 
Предыдущий Следующий
kIOFireWireNoListenerOrTalker kIOFireWireChannelNotAvailable

kIOFireWireNoChannels

Выделение канала является операцией с общим ресурсом шины

kIOFireWireNoChannels означает, что изохронная конфигурация не смогла получить пригодный канал у диспетчера ресурсов FireWire. IEEE 1394 имеет конечное нумерованное пространство каналов, при этом назначение канала и резервирование пропускной способности являются отдельными ресурсами. Интерфейс FireWire Linux отражает то же разделение: клиент просит диспетчер изохронных ресурсов выделить канал и/или полосу, а результат сообщает о них независимо.

Не приравнивайте этот статус к недостатку пропускной способности. Запрос может завершиться ошибкой из-за невозможности выделить приемлемый канал при наличии полосы, а kIOFireWireIsochBandwidthNotAvailable описывает противоположный класс ресурсов. Он также шире kIOFireWireChannelNotAvailable, который относится к недоступности выбранного канала, а не к невозможности получить любой канал для запроса.

Полезные доказательства и границы восстановления

  • Запишите запрошенный канал или набор кандидатов, текущее поколение шины и то, выполнялось ли автоматическое выделение либо жёсткая привязка к номеру.
  • Исследуйте другие активные изохронные потоки на той же шине FireWire. Резервирования каналов являются общими ресурсами шины, а не идентификаторами отдельных процессов.
  • Если владеющий API допускает набор кандидатов или автоматическое выделение, не задавайте один канал жёстко, если этого не требует протокол верхнего уровня.
  • После сброса шины дождитесь, пока путь восстановления ресурсов приложения установит текущий результат выделения; старый номер канала не доказывает, что тот же ресурс доступен в новом поколении.

Ссылки


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