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

 
Предыдущий Следующий
kIOFireWireOutOfTLabels kIOFireWireBogusDCLProgram

kIOFireWireBusReset

Команда относится к предыдущему поколению шины

kIOFireWireBusReset имеет точное объяснение в заголовке Apple: во время выполнения команды произошёл сброс шины, и текущее поколение больше не соответствует указанному в команде. Это результат согласованности топологии, а не произвольный тайм-аут ввода-вывода.

После сброса могут измениться ID узлов, роли root и bus manager и выделение ресурсов. Команда, созданная для предыдущего поколения, может больше не указывать на тот же логический путь, даже если физическое устройство остаётся подключённым. До повтора запроса восстановление должно заново проверить устройство и состояние приложения.

Безопасная граница восстановления

  • Сохраните исходное поколение запроса, GUID цели и node ID, тип транзакции и статус завершения.
  • Дождитесь уведомления или callback о сбросе, сообщающего новое пригодное поколение, до отправки дальнейшей работы.
  • Заново разрешите цель и восстановите выделение ресурсов, которое владеющий API не сохраняет автоматически.
  • Повторяйте только идемпотентные операции или операции, протокол которых подтверждает, что прежняя команда не подействовала.

Ссылки


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