| Предыдущий | Следующий |
| kIOReturnTimeout | kIOReturnNotReady |
kIOReturnOffline
Результат состояния готовности
kIOReturnOffline означает, что устройство присутствует в модели IOKit, но сейчас не находится в рабочем состоянии для запрошенной операции. Это возможно во время перехода состояния съёмного или сетевого устройства, после отключения интерфейса, при сбросе контроллера или когда драйвер предоставляет логическое состояние offline до окончательного удаления объекта.
Не следует объединять его с kIOReturnNoDevice. Отсутствующее устройство обычно нужно обнаружить заново; offline-устройство может снова стать доступным без нового физического подключения. В то же время постоянный опрос offline-устройства способен скрыть предшествующее событие питания, транспорта или жизненного цикла. Восстановление зависит от того, ожидает ли владелец состояния перехода или объявил устройство окончательно недоступным.
Подход к диагностике
- Определите семейство IOKit и переход состояния, переведший службу в offline.
- Запишите события питания, транспорта, монтирования или настройки рядом с первой ошибкой.
- Используйте уведомления или ограниченное ожидание состояния, если API это предоставляет; не запускайте бесконечный плотный цикл повторов.
- Повторно открывайте клиентское соединение только тогда, когда документация семейства указывает, что переход offline его аннулирует.
Ссылки
- Справочник Apple по IOReturn.h
- Основы Apple IOKit: обзор архитектуры
- Руководство Apple по программированию Disk Arbitration
Нужно найти другой код? Найти другой код состояния или ошибки.