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

 
Предыдущий Следующий
kOSMetaClassInternal kOSMetaClassNoInit

kOSMetaClassHasInstances

kOSMetaClassHasInstances означает, что расширение ядра нельзя выгрузить, пока существуют живые объекты, производные от зарегистрированных им классов Libkern C++. Ограничение защищает ядро от удаления метаданных классов и кода, которые существующим экземплярам всё ещё нужны для времени жизни, диспетчеризации и уничтожения.

Это состояние жизненного цикла, а не запрос на принудительную выгрузку. Успешная диагностика определяет владеющий kext, зарегистрированную иерархию классов и объекты, ссылки или подключения служб которых сохраняют экземпляры живыми. Исправление относится к завершению работы и управлению ссылками, а не к подавлению возвращаемого значения.

Что следует проверить

  • Найдите зарегистрированные классы kext и производные от них объекты служб или пользовательских клиентов.
  • Проверьте незавершённые retain, рабочие циклы, командные объекты и связи поставщиков с клиентами.
  • Убедитесь, что завершение работы закончено до запроса выгрузки и все асинхронные завершения обработаны.
  • Отличайте событие от отказа загрузки kext из-за подписи кода или политики.

Ссылки


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