| Предыдущий | Следующий |
| KERN_INVALID_CAPABILITY | KERN_INVALID_HOST |
KERN_RIGHT_EXISTS
KERN_RIGHT_EXISTS означает, что задача уже имеет право отправки или приёма для порта, но под другим локальным именем. Это результат, относящийся к пространству имён и владению, а не утверждение о том, что удалённый объект отсутствует или недоступен.
Такое состояние часто возникает при импорте, вставке или назначении имён правам. Поскольку имена портов локальны для каждой задачи, код, пытающийся принудительно назначить второе локальное имя, может обнаружить, что задача уже владеет соответствующей возможностью. Дальнейшее действие зависит от того, является ли существующее право ожидаемым, устаревшим или указывает на то, что два компонента пытаются управлять одним ресурсом.
Как использовать результат
- Найдите существующее локальное имя и определите тип его права.
- Повторно используйте существующую возможность, если это соответствует модели владения.
- Проверьте логику повторного импорта, переподключения и очистки, если дубликат неожиданен.
- Не путайте это состояние с
KERN_NAME_EXISTS, которое означает, что запрошенное имя уже обозначает некоторое право.
В понятном журнале следует указывать целевую задачу, запрошенное имя, существующее имя и тип права. Тогда непрозрачная ошибка Mach превращается в сведения о фактическом пространстве имён прав портов задачи.
Ссылки
- XNU: kern_return.h
- Руководство Apple по программированию ядра: порты и права Mach
- Справочное руководство GNU Mach: интерфейс управления портами
Нужно найти другой код? Найти другой код состояния или ошибки.