Что означает код возврата ядра macOS 17 (KERN_INVALID_RIGHT)?

 
Также может означать:
КонстантаТипОС
ERROR_NOT_SAME_DEVICEОшибка WindowsWindows
ippStsUnderflowСтатус Intel IPPЛюбая
EEXISTerrnoЛюбая
THREAD_NOT_MUTEX_OWNERКод BSODWindows
Предыдущий Следующий
KERN_INVALID_TASK KERN_INVALID_VALUE

KERN_INVALID_RIGHT

KERN_INVALID_RIGHT означает, что переданное имя порта Mach реально существует в пространстве имён задачи, но обозначает неподходящий тип права порта для запрошенной операции. Mach различает права отправки, приёма и однократной отправки, и многие операции допустимы только для одной из этих возможностей.

Это отличается от KERN_INVALID_NAME, где имя вообще не обозначает права, и от KERN_NOT_RECEIVER, где операция конкретно требует владения на стороне приёма. Различие помогает обнаружить ошибку передачи IPC: клиент мог получить право отправки, а последующий код ошибочно считает, что способен управлять портом или принимать из него сообщения.

Что проверить

  • Тип права, требуемый сбойным API.
  • Диспозицию, использованную при создании, копировании, перемещении или передаче права в сообщении.
  • Не было ли имя порта повторно использовано после освобождения или изменения пространства имён.
  • Не должна ли операция выполняться в другой задаче, которая действительно владеет требуемой возможностью.

В диагностике указывайте как имя порта, так и ожидаемый и фактический типы права. Тогда общий код возврата превращается в конкретное объяснение отсутствующей связи возможностей.

Ссылки


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