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

 
Предыдущий Следующий
kOSKextReturnCache kOSKextReturnBootLevel

kOSKextReturnDeferred

Запрос поставлен в очередь для обработки в пользовательском пространстве

kOSKextReturnDeferred является результатом только уровня ядра. XNU определяет его как операцию, асинхронно переданную в пользовательское пространство. Для OSKextLoadKextWithIdentifier, если kext не найден в ядре, запрос ставится в очередь для kextd; функция возвращает этот статус, а не сообщает, что kext уже загружен.

Следовательно, это не обычный отказ загрузки и не доказательство завершённой загрузки. XNU также указывает, что у этого API нет общего механизма уведомлений или обратных вызовов для таких запросов загрузки, поэтому вызывающей стороне нужны независимые данные о последующем результате.

Как правильно обработать

  • Запишите запрошенный идентификатор и время откладывания операции.
  • Проверьте диагностику загрузчика пользовательского пространства и фактическое итоговое состояние, а не считайте возврат успешным завершением.
  • Не путайте принятый асинхронный запрос с kOSKextReturnTimeout; этот код означает тайм-аут запроса.
  • В современных версиях macOS также определите, может ли запрошенное изменение вступить в силу только после обработки AuxKC и перезапуска.

Ссылки


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