Site icon EfmSoft

Что означает код BSOD 59 (SYSTEM_SERVICE_EXCEPTION)?

 
Также может означать:
КонстантаТипОС
ERROR_UNEXP_NET_ERRОшибка WindowsWindows
EBFONTerrnoLinux
ETOOMANYREFSerrnomacOS
ENOTRECOVERABLEerrnoSolaris
Предыдущий Следующий
SYSTEM_UNWIND_PREVIOUS_USER INTERRUPT_UNWIND_ATTEMPTED

SYSTEM_SERVICE_EXCEPTION

Проверка ошибок SYSTEM_SERVICE_EXCEPTION имеет значение 0x0000003B. Это означает, что исключение возникло при выполнении процедуры, осуществляющей переход от непривилегированного кода к привилегированному.

Важно


Параметры SYSTEM_SERVICE_EXCEPTION

Параметр Описание

1

Исключение, вызвавшее проверку ошибки.

2

Адрес инструкции, вызвавшей проверку ошибки

3

Адрес записи контекста исключения, вызвавшего проверку ошибки

4

0

Причина SYSTEM_SERVICE_EXCEPTION

Этот код остановки означает, что при выполнении кода возникло исключение, а находившийся ниже поток является системным.

Сведения об исключении, возвращаемые в параметре 1, описаны в значениях NTSTATUS. Коды исключений определены в ntstatus.h и непосредственно применимы при исследовании SYSTEM_SERVICE_EXCEPTION— файла заголовка, входящего в Windows Driver Kit. Для SYSTEM_SERVICE_EXCEPTION дополнительные сведения см. в заголовочных файлах Windows Driver Kit.

При анализе SYSTEM_SERVICE_EXCEPTION учитывайте распространённые коды исключений:

Устранение SYSTEM_SERVICE_EXCEPTION

Для отладки этой проблемы используйте команду .cxr (отображение записи контекста) с параметром 3, а затем команду kb (отображение обратной трассировки стека). Для SYSTEM_SERVICE_EXCEPTION также можно установить breakpoint в коде перед stop code и пошагово пройти до отказавшей инструкции. Используйте команды u, ub, uu (дизассемблирование), чтобы просмотреть машинный код программы.

Для SYSTEM_SERVICE_EXCEPTION: Расширение !analyze выводит сведения о bug check и помогает установить первопричину. Ниже приведён пример вывода !analyze.

SYSTEM_SERVICE_EXCEPTION (3b)
An exception happened while executing a system service routine.
Arguments:
Arg1: 00000000c0000005, Exception code that caused the bugcheck
Arg2: fffff802328375b0, Address of the instruction which caused the bugcheck
Arg3: ffff9c0a746c2330, Address of the context record for the exception that caused the bugcheck
Arg4: 0000000000000000, zero.
...

Дополнительные сведения о WinDbg и !analyzeсм. в следующих разделах:

Определение драйвера для SYSTEM_SERVICE_EXCEPTION

Если удаётся определить драйвер, вызвавший ошибку, его имя выводится на синем экране и сохраняется в памяти по адресу (PUNICODE_STRING) KiBugCheckDriver. Для вывода этих сведений можно использовать dx (вывод выражения object model отладчика в SYSTEM_SERVICE_EXCEPTION контексте) — команду отладчика: dx KiBugCheckDriver.

Используйте команды !error для вывода сведений о коде исключения из параметра 1. Ниже приведён пример вывода команды !error.

REM SYSTEM_SERVICE_EXCEPTION diagnostic command.
2: kd> !error 00000000c0000005
Error code: (NTSTATUS) 0xc0000005 (3221225477) - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.

Изучите STACK TEXT вывод WinDbg, чтобы понять, какой код выполнялся в момент сбоя. Если доступно несколько файлов дампа, сравните их и найдите общий код в стеках. Для исследования сбойного кода используйте команды отладчика, например kb (отображение обратной трассировки стека).

Чтобы вывести список загруженных в память модулей, используйте следующую команду: lm t n

Используйте !memusage для проверки общего состояния системной памяти. Для исследования можно также использовать команды !pte и !pool отдельных областей памяти.

Ранее эта ошибка связывалась с чрезмерным использованием выгружаемого пула, которое может возникать, когда графические драйверы пользовательского режима передают ядру некорректные данные. Если вы подозреваете такой случай, включите проверки пула в Driver Verifier, чтобы собрать дополнительные сведения.

Driver Verifier для SYSTEM_SERVICE_EXCEPTION

Driver Verifier — средство реального времени для проверки поведения драйверов. Для SYSTEM_SERVICE_EXCEPTION Driver Verifier, например, контролирует использование ресурсов памяти, включая пулы памяти. Для SYSTEM_SERVICE_EXCEPTION, обнаружив ошибку выполнения кода драйвера, Driver Verifier намеренно создаёт исключение, чтобы соответствующий участок кода можно было подробно исследовать. Для SYSTEM_SERVICE_EXCEPTION можно использовать встроенный в Windows диспетчер Driver Verifier, доступный на всех компьютерах с Windows.

Чтобы запустить диспетчер Driver Verifier, введите verifier в командной строке. Можно выбрать драйверы, которые необходимо проверять. Для SYSTEM_SERVICE_EXCEPTION учитывайте, что проверка драйверов создаёт дополнительную нагрузку, поэтому проверяйте минимально необходимое число драйверов. Дополнительные сведения см. в документации Driver Verifier.

Примечания для SYSTEM_SERVICE_EXCEPTION

Для общей диагностики кодов проверки ошибок Windows выполните следующие действия:

Дополнительные общие сведения по диагностике см. в разделе Blue screen data.


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

Exit mobile version