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

 
Предыдущий Следующий
kIOFireWireConfigROMInvalid kIOFireWireMultipleTalkers

kIOFireWireAlreadyRegistered

Регистрация является границей владения

kIOFireWireAlreadyRegistered сообщает о повторной попытке регистрации в контексте семейства FireWire. Это не ответ протокола удалённого узла. API регистрации обычно создаёт локальное отношение владения, обратного вызова, адресного пространства или службы; повторная отправка той же регистрации может заставить двух клиентов считать один ресурс своим.

Статус особенно полезен в коде восстановления. Сброс шины, переподключение или повтор приложения могут запустить настройку больше одного раза. До создания второй регистрации определите, сохранилась ли исходная, была ли она автоматически восстановлена или освобождена обратным вызовом завершения.

Поиск прежнего владельца

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

Ссылки


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