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

 
Также может означать:
КонстантаТипОС
ERROR_CRCОшибка WindowsWindows
ippStsDllNotFoundBestUsedСтатус Intel IPPЛюбая
ENFILEerrnoЛюбая
CID_HANDLE_DELETIONКод BSODWindows
Предыдущий Следующий
KERN_INVALID_HOST KERN_MEMORY_DATA_MOVED

KERN_MEMORY_PRESENT

KERN_MEMORY_PRESENT — специализированный результат внешнего управления памятью. XNU определяет его для попытки предоставить «ценные» данные для памяти, уже присутствующей в объекте памяти. Это не обычная ошибка стандартных API выделения памяти приложениями macOS.

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

Почему это важно

  • Обычно результат указывает на несогласованность в пользовательском пейджере, компоненте ядра или другом пути внешнего управления памятью.
  • Диагностировать его следует по автомату состояний объекта памяти и владению страницами, а не изменением обычных параметров кучи процесса.
  • Проследите запросы и ответы для соответствующего диапазона страниц, чтобы найти повторную или запоздалую передачу данных.
  • Перед повторной попыткой проверьте семантику «ценных» данных в реализации управления памятью.

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

Ссылки


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