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

 
Также может означать:
КонстантаТипОС
ERROR_ARENA_TRASHEDОшибка WindowsWindows
ippStsLnZeroArgСтатус Intel IPPЛюбая
E2BIGerrnoЛюбая
INVALID_SOFTWARE_INTERRUPTКод BSODWindows
Предыдущий Следующий
KERN_RESOURCE_SHORTAGE KERN_NO_ACCESS

KERN_NOT_RECEIVER

KERN_NOT_RECEIVER — ошибка прав порта Mach. Задача, указанная в операции, не владеет правом приёма для аргумента порта. Порт Mach — не просто глобально доступное число: права являются возможностями, хранящимися в собственном пространстве имён портов каждой задачи.

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

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

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

Диагностика этого кода как обычного отказа доступа может ввести в заблуждение. Главный вопрос — владение возможностью: операции Mach разрешаются в соответствии с конкретным видом права, которым обладает соответствующая задача.

Ссылки


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