BSOD 0x0000007F — UNEXPECTED_KERNEL_MODE_TRAP

BSOD 0x0000007F Данный стоп код означает что процессор Intel сгенерировал программное прерывание, а ядро не смогло его перехватить для обработки. Это может быть прерывание связанное с операцией проверки выхода за границы (bound trap, перехват которых запрещен для ядра) или вложенная ошибка (когда ошибка произошла в процесса обработки другой ошибки).

Первый параметр данного стоп кода описывает номер программного прерывания. Наиболее распространенные программные прерывания следующие:

  • 0x00000000 или деление на ноль, обозначает ситуацию, когда выполняется инструкция процессора div и делитель равен нулю. Причиной этой ошибки может также быть проблемы с исправностью памяти или другие проблемы с железом или даже проблемы в работе ПО;
  • 0x00000004 или переполнение возникает когда процессора выполняет вызов обработчика прерывания в то время, когда установлен флаг переполнения (OF);
  • 0x00000005 или ошибка выхода за граница массива, означает, что процессор в ходе выполнения инструкции BOUND, обнаружил выход за границы.
  • 0x00000006 означает, что процессор попытался выполнить недопустимую инструкцию. Эта ошибка обычно возникает в случае повреждения данных в регистре IP (instruction pointer). Частой причиной данной ошибки является поврежденная память.
  • 0x00000008 или вложенная ошибка означает, что исключение произошло в процессе вызова обработчика для предыдущего исключения, например когда два исключения обрабатываются последовательно. Однако, определенные исключения не могут быть обработанными последовательно, в таких случаях процессор сигнализирует об этом, данным программным прерыванием. Существуют две распространенных причин данной ошибки: переполнение стека и проблема с аппаратной частью компьютера.

Менее распространенные номера программных прерываний следующие:

  • 0x00000001 — A system-debugger call
  • 0x00000003 — A debugger breakpoint
  • 0x00000007 — A hardware coprocessor instruction with no coprocessor present
  • 0x0000000A — A corrupted Task State Segment
  • 0x0000000B — An access to a memory segment that was not present
  • 0x0000000C — An access to memory beyond the limits of a stack
  • 0x0000000D — An exception not covered by some other exception; a protection fault that pertains to access violations for applications

Остальные номера наведены в инструкции к процессору Intel.

Причины

Обычно крах с данным стоп кодом возникает после установки неисправного аппаратного оборудования (особенно памяти).

Исправление

Если вы недавно установили какие-либо устройства в компьютер, попробуйте убрать их и проверить остались ли крахи.

Протестируйте память, как это сделать описано в статьях:

Если ошибка появляется на недавно установленной системе, попробуйте обновить прошивку BIOS до последней версии.

Проверьте что все адаптеры в системном блоке установлены должным образом, в случае необходимости (наличие следов окисления) протрите контакты ластиком.

Проверьте что установленные аппаратные устройства совместимы с используемой версией ОС.

Если ошибка возникает в процессе обновления версии Windows, это может означать, что проблема связана с одним из драйверов, который несовместим (некорректно работает) в более новой версии ОС.

Эту ошибку также могут вызывать повреждения материнской платы.