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