| Предыдущий | Следующий |
| kIOFireWireAlreadyRegistered | kIOFireWireChannelActive |
kIOFireWireMultipleTalkers
У одного канала один передатчик
Изохронный трафик FireWire передаётся по нумерованному каналу. Apple описывает такой канал как допускающий один передающий конечный объект, называемый передатчиком, и любое число принимающих конечных объектов, называемых слушателями. Следовательно, kIOFireWireMultipleTalkers обозначает конфликт топологии потока: запрошенная конфигурация заставила бы более одного конечного объекта передавать по одному изохронному каналу.
Это не нехватка изохронной пропускной способности. Канал может иметь достаточную зарезервированную полосу и всё равно быть недопустимым, поскольку роль отправителя уже занята. Результат также отличается от kIOFireWireNoListenerOrTalker, означающего отсутствие подключённого конечного объекта потока, и от kIOFireWireChannelActive, являющегося конфликтом состояния жизненного цикла канала.
Что сохранить в диагностике
- Запишите поколение шины FireWire, номер канала и направление каждого локального и удалённого изохронного порта, участвующего в конфигурации.
- Найдите более раннее резервирование передатчика или объект потока, всё ещё владеющий этой ролью. Освобождение слушателя не освобождает выделение передатчика.
- После сброса шины заново проверьте топологию и создайте нужную конфигурацию канала через владеющий API, а не предполагайте, что устаревшие объекты приложения всё ещё описывают активное поколение.
- Не пытайтесь исправить статус уменьшением пропускной способности. Конфликт относится к владению передатчиком одного канала, а не к объёму зарезервированной для него полосы.
Ссылки
- Apple: руководство по интерфейсу устройств FireWire — изохронные каналы, передатчики и слушатели
- Apple: IOFireWireIsochPortInterface
- Документация ядра Linux: изохронный ввод-вывод FireWire и выделение ресурсов
Нужно найти другой код? Найти другой код состояния или ошибки.
