| Предыдущий | Следующий |
| kIOReturnInvalid | kIOReturnNoMemory |
kIOReturnError
Намеренно общий результат сбоя
kIOReturnError — это общий результат IOKit «общая ошибка». Он подтверждает, что запрошенная операция не завершилась успешно, но не показывает, связана ли проблема с устройством, транспортом, проверкой привилегий, буфером или переходом состояния службы. Поэтому код необходимо интерпретировать вместе с операцией, которая его вернула.
Не считайте это значение доказательством неисправности оборудования. Драйвер или пользовательский клиент может вернуть общий результат после того, как более конкретное низкоуровневое состояние уже было утрачено. Сохраните низкоуровневую диагностику, журналы подсистемы и точный вызов API; иначе различие между kIOReturnError, kIOReturnInternalError и kIOReturnIOError потеряется на границе приложения.
Как сделать результат пригодным для диагностики
- Запишите службу или интерфейс, имя операции, безопасные для журналирования параметры и любой более ранний статус, возвращённый тем же запросом.
- Определите, происходит ли сбой до постановки ввода-вывода в очередь, во время выполнения запроса либо при завершении или разборке.
- Используйте диагностический путь конкретного API, а не повторяйте операцию после общей ошибки, не выяснив, безопасен ли повтор.
- В логике приложения отделяйте это состояние от ошибок доступа, неподдерживаемой операции и отсутствующего устройства.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
