| Предыдущий | Следующий |
| kIOReturnNotOpen | kIOReturnNotWritable |
kIOReturnNotReadable
Возможность операции и временный сбой — разные вещи
kIOReturnNotReadable означает, что чтение не поддерживается для запрошенного объекта или операции. В отличие от тайм-аута или состояния неготовности, это обычно несоответствие возможности или режима. Интерфейс только для управления, поток только для записи, выходная конечная точка или служба, открытая через неверный API, могут законно отклонить чтение при полностью исправном оборудовании.
Не рассматривайте результат как признак временной недоступности данных. Повтор идентичного чтения того же объекта обычно даёт тот же ответ. Нужно проверить контракт интерфейса, активную конфигурацию, направление конечной точки и режим доступа, а затем выбрать API, действительно предоставляющий читаемые данные.
Что следует проверить
- Убедитесь, что выбранные интерфейс и конечная точка документированы как поддерживающие ввод.
- Проверьте, что текущая альтернативная настройка или режим устройства предоставляет ожидаемый набор конечных точек.
- Отделяйте чтение плоскости данных от запросов состояния или управления: для них могут использоваться разные интерфейсы и разрешения.
- В средствах пользовательского пространства журналируйте сведения дескриптора и точный выбор интерфейса, а не только имя устройства.
Ссылки
- Справочник Apple по IOReturn.h
- Apple: работа с интерфейсами USB-устройств
- USB-IF: спецификация USB 2.0
- Справочник API libusb
Нужно найти другой код? Найти другой код состояния или ошибки.