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

 
Предыдущий Следующий
kIOReturnLockedWrite kIOReturnBadMessageID

kIOReturnExclusiveAccess

Что защищает эксклюзивный доступ

kIOReturnExclusiveAccess означает, что один из клиентов уже эксклюзивно открыл соответствующее устройство или интерфейс. Ограничение не позволяет независимым клиентам одновременно отправлять конфликтующие команды, менять состояние или использовать пути данных. Для USB-интерфейсов Apple документирует эксклюзивное открытие и возвращает этот статус, когда существующий клиент отказывается освободить интерфейс.

Это не ошибка разрешений. Повышение привилегий процесса не сделает работу второго клиента безопасной. Требуется согласовать владение: использовать существующую службу, попросить владельца освободить объект, выбрать другой интерфейс либо создать посредник, последовательно выполняющий запросы клиентов.

Как диагностировать состояние

  • До разрушительного сброса определите процесс, драйвер или системную службу, владеющую интерфейсом.
  • Проверьте, не захвачена ли функция драйвером ядра; USB-библиотеки пользовательского пространства также сообщают об ошибке занятости или захвата интерфейса.
  • Каждое успешное открытие должно сопровождаться закрытием или освобождением на всех путях обработки ошибок, чтобы приложение само не создало постоянную блокировку.
  • Не используйте API принудительного захвата как обычный обходной путь: принудительное получение устройства может нарушить состояние протокола другого клиента.

Ссылки


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