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

 
Предыдущий Следующий
kOSKextReturnKCLoadFailureAuxKC kIOReturnError

kIOReturnInvalid

Сигнальное значение, а не диагноз устройства

kIOReturnInvalid необычен среди общих результатов IOKit: открытый заголовочный файл Apple помечает его как значение, которое «не должно наблюдаться». Поэтому это не содержательное описание обычного состояния устройства, носителя, разрешений или передачи. Если значение дошло до приложения или драйвера, прежде всего сохраните сведения о его происхождении, а не превращайте его в общую аппаратную ошибку.

Следует проверить неправильное преобразование знаковых и беззнаковых результатов, устаревшее или неинициализированное поле статуса, преобразователь ошибок, потерявший исходный результат, а также компонент, вернувший значение вне документированного контракта. Исходное 32-битное значение и API, который его выдал, полезнее позднего текстового сообщения для пользователя.

Что нужно сохранить

  • Журналируйте полный путь вызова, исходное шестнадцатеричное значение, семейство IOKit и метод или селектор, вернувший результат.
  • Сохраняйте исходное возвращаемое значение до диагностической границы; не заменяйте его общей ошибкой приложения.
  • Проверьте объявления и ABI на каждой границе оболочек, где преобразуются IOReturn, kern_return_t или целочисленные типы.
  • Сопоставьте результат с документированными путями успеха и ошибки реализации, прежде чем добавлять восстановительный повтор.

Ссылки


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