| Предыдущий | Следующий |
| kIOReturnNotReady | kIOReturnNoChannels |
kIOReturnNotAttached
Чем это отличается от отсутствующего устройства
kIOReturnNotAttached обычно указывает на состояние присоединения или топологии, а не на некорректный запрос. Целевой объект может сохраняться в реестре, но не быть присоединённым к провайдеру, контроллеру, транспортному пути или логической иерархии, ожидаемой семейством IOKit. Это различие важно при горячем подключении, выходе из сна, остановке и запуске драйвера и перенастройке устройства.
Поэтому результат конкретнее общей ошибки ввода-вывода, но сам по себе не позволяет установить неисправный кабель, проблему концентратора, ошибку сопоставления драйвера или намеренное отсоединение. В многоуровневой модели IOKit службы динамически добавляются и удаляются; приложения должны отдельно учитывать существование объекта и его готовность к конкретной операции.
Что следует проверить
- Проверьте путь в I/O Registry и наличие действующего провайдера у службы в момент ошибки.
- Сопоставьте ошибку с уведомлениями о присоединении, отсоединении, завершении, пробуждении и управлении питанием.
- Для USB сохраните активную конфигурацию и интерфейс до и после повторного перечисления, не предполагая, что идентичность конечных точек сохранится.
- Закройте устаревшие объекты пользовательского клиента или интерфейса и получите их заново через документированный путь обнаружения.
Ссылки
- Справочник Apple по IOReturn.h
- Основы Apple IOKit: обзор архитектуры
- Apple: работа с интерфейсами USB-устройств
Нужно найти другой код? Найти другой код состояния или ошибки.