| Предыдущий | Следующий |
| KERN_NOT_IN_SET | KERN_ABORTED |
KERN_NAME_EXISTS
KERN_NAME_EXISTS относится к локальному пространству имён портов Mach задачи. Запрошенное имя уже обозначает право порта в этой задаче, поэтому Mach не может использовать его для отдельного права требуемым операцией способом.
Статус легко неправильно понять, если журнал показывает только числовое имя. Имена портов Mach — индексы в пространстве задачи, а не системные идентификаторы. Одинаковое число может обозначать разные объекты в разных задачах, но одна задача не может одновременно использовать имя для двух несвязанных прав.
Полезные проверки
- Определите, обозначает ли существующее имя право, которое код намеревался установить.
- Проверьте пути выделения, переименования и импорта имён на коллизии.
- Сохраняйте тип права порта вместе с именем; одного числа недостаточно.
- При импорте прав через IPC не предполагайте, что числовое имя отправителя можно использовать в пространстве получателя.
Условие не обязательно является отказом доступа. Оно сообщает о существующей записи по имени в локальном пространстве. Правильный исход зависит от того, ожидаема ли запись, устарела или указывает на ошибку жизненного цикла ресурса.
Ссылки
- XNU: kern_return.h
- Apple Kernel Programming Guide: порты и права Mach
- GNU Mach Reference Manual: интерфейс управления портами
Нужно найти другой код? Найти другой код состояния или ошибки.