| Предыдущий | Следующий |
| KERN_NOT_RECEIVER | KERN_MEMORY_FAILURE |
KERN_NO_ACCESS
KERN_NO_ACCESS — устаревшее возвращаемое значение Mach, которое заголовок XNU описывает лишь как «некорректное ограничение доступа». Поэтому символическое имя менее конкретно, чем кажется: оно не указывает, отсутствует ли право порта, нарушена ли защита виртуальной памяти, сработала ли песочница или отсутствует entitlement.
Не интерпретируйте этот код как взаимозаменяемую запись POSIX EACCES. В том же семействе кодов возврата Mach KERN_PROTECTION_FAILURE описывает отображённый диапазон с недостаточной защитой виртуальной памяти, а KERN_DENIED указывает на отказ политики безопасности. API, вернувший KERN_NO_ACCESS необходим для определения того, представляет ли этот код исторический внутренний путь или проверку доступа, явно возвращаемую данным интерфейсом.
Что сохранить для диагностики
- Запишите точный интерфейс Mach и его целевой порт или задачу.
- Перед изменением разрешений или entitlement изучите журналы конкретного API.
- Проверьте конкретную модель ресурса: право порта Mach, защиту отображения виртуальной памяти или политику службы более высокого уровня.
- Сохраняйте исходное числовое значение
kern_return_tпри преобразовании ошибок на границе POSIX или приложения.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
