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

 
Предыдущий Следующий
kIOFireWireAlreadyRegistered kIOFireWireChannelActive

kIOFireWireMultipleTalkers

У одного канала один передатчик

Изохронный трафик FireWire передаётся по нумерованному каналу. Apple описывает такой канал как допускающий один передающий конечный объект, называемый передатчиком, и любое число принимающих конечных объектов, называемых слушателями. Следовательно, kIOFireWireMultipleTalkers обозначает конфликт топологии потока: запрошенная конфигурация заставила бы более одного конечного объекта передавать по одному изохронному каналу.

Это не нехватка изохронной пропускной способности. Канал может иметь достаточную зарезервированную полосу и всё равно быть недопустимым, поскольку роль отправителя уже занята. Результат также отличается от kIOFireWireNoListenerOrTalker, означающего отсутствие подключённого конечного объекта потока, и от kIOFireWireChannelActive, являющегося конфликтом состояния жизненного цикла канала.

Что сохранить в диагностике

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

Ссылки


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