Устранение неполадок при возникновении Blue Screen Of Death (BSOD)
Распечатать

Устранение неполадок при возникновении Blue Screen Of Death (BSOD)

Ошибки возникновения "Синих экранов смерти" (Как расшифровать сообщение BSOD «Синий экран смерти» — «Blue Screen of Death»)и описание некоторых из них. А также небольшая утилита поможет разобраться с ошибкой.

BlueScreenView – утилита для анализа «синих экранов смерти» Бесплатная утилита под названием BlueScreenView позволит пользователям разобраться, что именно послужило причиной появления «синего экрана», и принять меры во избежание указанной проблемы в дальнейшем.

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

Если на жестком диске компьютера установлено несколько экземпляров операционной системы Windows, программу можно использовать с любым из них. Пользователям достаточно выбрать альтернативное местоположение папки minidump (в меню Advanced Options). Интерфейс приложения может быть модифицирован в соответствии с предпочтениями пользователя. В частности, BlueScreenView позволяет скрывать или отображать отдельные столбцы данных.

Утилита не требует установки на жесткий диск и активируется путем запуска exe-файла. Продукт BlueScreenView можно загрузить [
Скачать файл:
bluescreenview-1_55.7z [117.29 Kb]
(cкачиваний: 21)
].

Если вы получили одну из этих ошибок, запустите отладчик ядра (kerneldebugger) и напечатайте следующие команды:
  • kb
  • !process 0 7
  • !vm
  • !errlog

Примечание: BUGCODES.H and EXLEVELS.H are both in the Windows NT DDK.

Или просто посмотрите, если здесь есть решения для вашего стопа. Когда ищите описание ошибки, смотрите не столько на номер, сколько на название, потому что в системах NT-2000-XP номера могут отличаться. Так же советую читать не только то, что написано для Вашей системы, но и для других 2-х, потому что все три системы схожи и решения близки.

Ниже приведены самые часто встречающиеся ошибки. Дано их описание и решения.

APC_INDEX_MISMATCH0x00000001
DEVICE_QUEUE_NOT_BUSY0x00000002
INVALID_AFFINITY_SET0x00000003
INVALID_DATA_ACCESS_TRAP0x00000004
INVALID_PROCESS_ATTACH_ATTEMPT0x00000005
INVALID_PROCESS_DETACH_ATTEMPT0x00000006
INVALID_SOFTWARE_INTERRUPT0x00000007
IRQL_NOT_DISPATCH_LEVEL0x00000008
IRQL_NOT_GREATER_OR_EQUAL0x00000009

Это внутренняя ошибка ядра (kernel). Ошибка может возникнуть из-за несовпадения KeEnterCricticalRegion и KeLeaveCriticalRegion в файловой системе.

 
IRQL_NOT_LESS_OR_EQUAL0x0000000A
NO_EXCEPTION_HANDLING_SUPPORT0x0000000B
MAXIMUM_WAIT_OBJECTS_EXCEEDED0x0000000C

Была сделана попытка затронуть виртуальную память на внутреннем процессе IRQ уровня, который слишком высок. Если kernel debugger доступен, вы можете отследить, где именно система запнулась. Одна из самых часто возникающих ошибок Windows NT - STOP 0x0000000A. Этот STOP может быть вызван как Программным Обеспечением, так и проблемой с оборудованием. Для выявления причин вы должны разобрать этот STOP, используя дебагер. Тем не менее, некоторые выводы можно сделать, рассмотрев параметры STOP сообщения и сообщения сопутствующего этот STOP. Параметры:

  1. адрес, по которому выполнено ошибочное обращение
  2. IRQL, который использовался для обращения к памяти
  3. тип доступа к памяти: 0 = операция чтения, 1 = операция записи
  4. адрес инструкции, которая затребовала доступ к памяти по адресу

Примечание: Имейте ввиду, что эта ошибка возникает в 99% из-за "кривых" драйверов. Некоторые из них в Windows XP вы можете обнаружить используя утилиту verifier.exe: Start (Пуск) -> Run (Выполнить) -> verifier.exe

 
MUTEX_LEVEL_NUMBER_VIOLATION0x0000000D
NO_USER_MODE_CONTEXT0x0000000E
SPIN_LOCK_ALREADY_OWNED0x0000000F
SPIN_LOCK_NOT_OWNED0x00000010
THREAD_NOT_MUTEX_OWNER0x00000011
TRAP_CAUSE_UNKNOWN0x00000012
EMPTY_THREAD_REAPER_LIST0x00000013
CREATE_DELETE_LOCK_NOT_LOCKED0x00000014
LAST_CHANCE_CALLED_FROM_KMODE0x00000015
CID_HANDLE_CREATION0x00000016
CID_HANDLE_DELETION0x00000017
REFERENCE_BY_POINTER0x00000018
BAD_POOL_HEADER0x00000019
MEMORY_MANAGEMENT0x0000001A
PFN_SHARE_COUNT0x0000001B
PFN_REFERENCE_COUNT0x0000001C
NO_SPIN_LOCK_AVAILABLE0x0000001D
KMODE_EXCEPTION_NOT_HANDLED0x0000001E

Попытайтесь установить взаимоисключения используя NTOS\EX\EXLEVELS.H файл заголовков. Вы должны найти точки взаимодействия и определить, какие из них пытаются получить доступ к этому уровню в неверной последовательности. Параметры:

  1. настоящая нить уровня взаимодействия
  2. уровень взаимодействия пытающийся получить доступ
 
KMODE_EXCEPTION_NOT_HANDLED0x0000001E
SHARED_RESOURCE_CONV_ERROR0x0000001F

Это очень часто встречающаяся ошибка. Обычно исключённый адрес указывает на драйвер или функцию, которая вызвала стоп-экран. Всегда обращайте внимание не только на указанный драйвер, но и на сам адрес или имидж, содержащий эту ошибку. Обычно это код исключения 0x80000003. Эта ошибка означает, что точка прерывания или суждение было достигнуто при обращении к памяти, но система загрузилась с /NODEBUG ключа. Это ошибка не должна появляться слишком часто. Если ошибка появляется постоянно, убедитесь, что отладчик (debugger) подключён и система загружается с /DEBUG switch.

На неИнтеловских системах, если адрес исключения 0XBFC0304, ошибка появляется вследствие кэширования процессора. Если ошибка будет появляться снова, свяжитесь с производителями.

Как правило, требуется анализ второго параметра этого сообщения, который указывает на адрес драйвера/функции, которая была причиной проблемы. Параметры:

  1. код исключительной ситуации
  2. адрес, при обработке которого произошел сбой
  3. Parameter 0 of the exception
  4. Parameter 1 of the exception
 
KERNEL_APC_PENDING_DURING_EXIT0x00000020
QUOTA_UNDERFLOW0x00000021
FILE_SYSTEM0x00000022
FAT_FILE_SYSTEM0x00000023
NTFS_FILE_SYSTEM0x00000024
NPFS_FILE_SYSTEM0x00000025
CDFS_FILE_SYSTEM0x00000026
RDR_FILE_SYSTEM0x00000027
CORRUPT_ACCESS_TOKEN0x00000028
SECURITY_SYSTEM0x00000029

Название ошибки указывает на повреждённый/отключённый APC счётчик. Если счётчик показывает значение не равное нулю, то он и есть источник проблемы. Отрицательное значение указывает на то, что файловая система вызывала FsRtlEnterFileSystem большее количество раз чем FsRtlExitFileSystem. Положительное значение указывает наоборот FsRtlExitFileSystem было вызвано большее количество раз чем FsRtlEnterFileSystem. Если у вас такая ситуация, проверьте все файловые системы установленные на машине. Сторонние перенаправители более всего подозреваются в сбое, так как они не были так тщательно протестированы, как NTFS, FAT, HPFS и RDR.

Текущий IRQL должен быть равен 0. Если нет, то определённый порядок аннулирования драйверов может быть причиной возникновения ошибки, возвращаясь на высоком уровне IRQ. Всегда пытайтесь заметить, что вы делали или какие приложения закрывали, какие драйвера были установлены на момент возникновения синего экрана. Этот симптом указывает на серьёзную проблему в драйверах третьей стороны. Параметры:

  1. адрес APC, по которому висел (был в ожидании) на момент выхода.
  2. нить APC disable count
  3. текущий IRQ уровень
 
INCONSISTENT_IRP0x0000002A

IRP неожиданно был обнаружен на несоответствующем состоянии; это когда поле или несколько полей были несовместимы с сохранившемся состоянием IRP. Например, IRP, который был закончен указывался, как всё ещё ждущий выполнения команд драйвера какого-либо устройства. Параметры:

  1. адрес на котором IRP был найден в несоответствующем состоянии
 
PANIC_STACK_SWITCH0x0000002B
PORT_DRIVER_INTERNAL0x0000002C
SCSI_DISK_DRIVER_INTERNAL0x0000002D

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

 
DATA_BUS_ERROR0x0000002E
INSTRUCTION_BUS_ERROR0x0000002F
SET_OF_INVALID_CONTEXT0x00000030

Этот стоп чаще всего вызывается ошибкой в памяти системы. В большинстве случаев это неисправный RAM, Level 2 (L2) RAM cache ошибки, ошибки видео RAM и повреждённый жёсткий диск. Так же это может случиться, когда драйвер обращается к 0x8XXXXXXX адресу памяти, который не существует. Параметры:

  1. адрес виртуальной памяти, который стал причиной ошибки
  2. физический адрес причины ошибки
  3. регистрация статуса процессора (PSR)
  4. регистрация инструкции ошибки (FIR)
 
PHASE0_INITIALIZATION_FAILED0x00000031

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

 
PHASE1_INITIALIZATION_FAILED0x00000032
UNEXPECTED_INITIALIZATION_CALL0x00000033
CACHE_MANAGER0x00000034

Параметры:

  1. код статуса системы, который описывает почему система решила, что инициализация не прошла
  2. указывает место внутри INIT.C, где ошибка инициализации фазы 1 произошла
 
NO_MORE_IRP_STACK_LOCATIONS0x00000035

Драйвер высшего уровня пытался вызвать драйвер низшего уровня через IoCallDriver() интерфейс, но в запасе не было свободного места в области стека, поэтому драйвер низшего уровня не сможет достичь нужных параметров, так как для него вообще нет никаких параметров. Это гибельная ситуация, так как драйвер высшего уровня считает, что заполнил параметры для драйвера низшего уровня (что-то он должен был сделать, чтобы вызвать драйвер низшего уровня). Тем не менее, так как для последнего драйвера нет свободного места в области стека, составитель аннулировал конец пакета. Это означает, что, скорее всего, какая-то другая память была повреждена. Параметры:

  1. адрес IRP
 
DEVICE_REFERENCE_COUNT_NOT_ZERO0x00000036
FLOPPY_INTERNAL_ERROR0x00000037
SERIAL_DRIVER_INTERNAL0x00000038
SYSTEM_EXIT_OWNED_MUTEX0x00000039
SYSTEM_UNWIND_PREVIOUS_USER0x0000003A
SYSTEM_SERVICE_EXCEPTION0x0000003B
INTERRUPT_UNWIND_ATTEMPTED0x0000003C
INTERRUPT_EXCEPTION_NOT_HANDLED0x0000003D

Драйвер устройства пытался удалить из системы одно из объектов его устройства, но счётчик обращений этого объекта не был равен 0, означающий что для этого объекта всё ещё были невыполненные задачи (счётчик указывает номер причин, почему данный объект на может быть удалён). Это ошибка вызова драйвера. Параметры:

  1. адрес объекта
 
MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTED0x0000003E

Мультипроцессорная система не симметрична по отношению друг к другу. Чтобы быть симметричными, процессоры должны быть одного типа и уровня. Например, попытка использовать процессор уровня Pentium и 80486 вызовет ошибку. Кроме того, на х86 системах, возможность вычислений с плавающей точкой должны быть на обоих процессорах или ни на одном.

 
NO_MORE_SYSTEM_PTES0x0000003F

Не хватает РТЕ (page file entries). Обычно причиной является драйвер, который плохо вычищает файл подкачки (swap). Если отладчик ядра (kernel debugger) доступен проследите, где система запнулась и введите следующую команду: !sysptes 3 или увеличите объем виртуальной памяти.

 
TARGET_MDL_TOO_SMALL0x00000040

Драйвер вызвал функцию IoBuildPartialMdl() и послал ей MDL, чтобы выявить часть источника MDL, но цель MDL не достаточно большая, чтобы отобразить пределы требуемых адресов. Это ошибка драйвера. Источник и цель MDL, так же как длинна линии адресов определения являются аргументами IoBuildPartialMdl() функции:

IoBuildPartialMdl( IN PMDL SourceMdl,
IN OUT PMDL TargetMdl,
IN PVOID VirtualAddress,
IN ULONG Length )
 
MUST_SUCCEED_POOL_EMPTY0x00000041
ATDISK_DRIVER_INTERNAL0x00000042
NO_SUCH_PARTITION0x00000043

Если отладчик ядра (kernel debugger) доступен, команда Виртуальной Машины (VM) показывает различные величины. Параметры:

  1. величина запроса, который не может быть удовлетворён
  2. номер страниц, которые были использованы из nonpaged pool.
  3. номер слишком больших страниц, запрашиваемых из nonpaged pool.
  4. номер доступных страниц
 
MULTIPLE_IRP_COMPLETE_REQUESTS0x00000044
INSUFFICIENT_SYSTEM_MAP_REGS0x00000045
DEREF_UNKNOWN_LOGON_SESSION0x00000046
REF_UNKNOWN_LOGON_SESSION0x00000047

Драйвер запросил завершение IRP [IoCompleteRequest()], но пакет был уже завершён. Эту ошибку сложно выявить, так как самый простой случай - драйвер пытается завершить одну и ту же операцию дважды - обычно не то, что случается на самом деле. Реже - 2 различных драйвера пытаются завладеть пакетом и завершить его. Первый как правило срабатывает, а второй нет. Отследить, какой именно драйвер сделал это, трудно, так как следы первого драйвера были переписаны вторым. Тем не менее, конфликт может быть выявлен, рассматривая DeviceObject поля, в каждом местоположении стека. Параметры:

  1. адрес IRP
 
CANCEL_STATE_IN_COMPLETED_IRP0x00000048

Это ошибка указывает, что I/O Request Packet (IRP), который должен быть завершён, имеет порядок отмены определённый в нём, означая, что пакет в таком положении, что может быть отменен. Тем не менее, пакет не относиться более к драйверу, так как он уже вошёл в стадию завершения.

 
PAGE_FAULT_WITH_INTERRUPTS_OFF0x00000049
IRQL_GT_ZERO_AT_SYSTEM_SERVICE0x0000004A
STREAMS_INTERNAL_ERROR0x0000004B

Означает именно то, что пишет: ошибка страницы с выключенным прерыванием. Рассматривайте эту ошибку, так же как 0x0A

FATAL_UNHANDLED_HARD_ERROR0x0000004C

Если ошибка появиться во время загрузки NT, загрузка прервётся синим экраном. Наиболее частые причины:

  1. x218 - необходимая библиотека реестра не может быть загружена. Этот файл может отсутствовать или быть повреждённым. Чтобы решить эту проблему, вам понадобиться загрузочная дискета.
  2. Драйвер может иметь повреждённый ключ реестра во время загрузки в память, или память, в которую происходила загрузка этого ключа, может быть и не память на самом деле. Особенно AST EISA машины с 16М и выше памятью должны иметь доступ к памяти выше 16М, т.е. в утилите конфигурации EISA этот параметр должен быть ENABLED (разрешён). Иначе файл, который загрузится в ту память, при чтении покажет - 0xffffffff.
  3. x21A - или Winlogon или CSRSS (Windows) "умерли" внезапно. Выходящий код может сказать больше. Обычно это - c0000005, что говорит о том, что неподдерживаемое исключение рухнуло в том или другом процессе. Здесь вы не так много можете сделать по этому поводу.
  4. x221 - означает, что драйвер повреждён или системная библиотека была распознана, как повреждённая. NT делает всё, чтобы проверять нетронутость важных системных файлов. Синий экран показывает имя повреждённого файла. Если такое случилось, загрузитесь в любую другую систему или, если таковых нет, переустановите систему... Убедитесь, что версия файла, который был выявлен, как повреждённый, совпадает с версией файла в дистрибутиве NT и если так, то замените его с диска. Постоянные ошибки с разными именами файлов означают проблемы с железом в I/O пути драйвера.
NO_PAGES_AVAILABLE0x0000004D

Нет больше свободного места, чтобы закончить операцию. Параметры:

  1. количество использованных страниц
  2. кол-во физических страниц на машине
  3. Extended commit value in pages
  4. Total commit value in pages

Если отладчик (kernel debugger) доступен, печатайте следующие команды:

!process 0 7
!vm
dd mmpagingfiles
dd @$p

которые покажут какие драйвера, где и сколько ресурсов памяти занимают

 
PFN_LIST_CORRUPT0x0000004E

Причина - повреждённая/неисправная I/O структура драйвера. Параметры:

  1. значение 1
  2. значение ListHead, которое повреждено
  3. число доступных страниц
  4. 0
  5. значение 2
  6. данные, которые удаляются
  7. наивысшее число физических страниц
  8. итог удаляемых данных
 
PAGE_FAULT_IN_NONPAGED_AREA0x00000050

Появляется, когда запрошенная информация не была найдена в памяти. Система проверяет файл подкачки (page file), но отсутствующая информация была обозначена, как невозможная для записи в файл подкачки (page file). Если это случилось на Terminal Server, проверьте драйвера третьей стороны для принтера. Параметры:

  1. указывает на адрес в памяти, который допустил ошибку
  2. тип обращения ( 0x00000000 = операция чтения, 0x00000001 = операция записи )
  3. если параметр не нулевой, то он показывает адрес инструкции, ссылающийся на адрес памяти в первом параметре.
 
REGISTRY_ERROR0x00000051
MAILSLOT_FILE_SYSTEM0x00000052
NO_BOOT_DEVICE0x00000053
LM_SERVER_INTERNAL_ERROR0x00000054
DATA_COHERENCY_EXCEPTION0x00000055
INSTRUCTION_COHERENCY_EXCEPTION0x00000056
XNS_INTERNAL_ERROR0x00000057

Что-то случилось с реестром. Если отладчик (kernel debugger) доступен, отследите ошибку. Если он вам покажет, что вы в ветке системы (CmpWorker будет присутствовать в перечне), введите следующие команды:

dd CmpRegistryMutex+18 L1
!thread

Это выдаст вам ветку и место ошибки, которое обращалось к реестру. Эта ошибка так же может означать, что реестр получил ошибку I/O, когда пытался прочитать один из его файлов, отсюда следует, что ошибка могла быть вызвана проблемой с оборудованием или что сама система повреждена. Это так же может означать, что ошибка вызвана операцией обновления, которую использует только система безопасности и это только когда ресурсы на исходе. Если такая ошибка появилась, проверьте, является ли машина PDC или BDC и сколько аккаунтов в базе данных SAM (Менеджер Безопасности Аккаунтов), может ли это быть цель эхо и не заполнены ли соответствующие библиотеки почти до конца. Параметры:

  1. значение 1 (указывает, где появилась ошибка)
  2. значение 2 (указывает, где появилась ошибка)
  3. может указывать на библиотеку
  4. может быть возвратным кодом HvCheckHive'а, если какая-либо библиотека повреждена
 
FTDISK_INTERNAL_ERROR0x00000058
PINBALL_FILE_SYSTEM0x00000059
CRITICAL_SERVICE_FAILED0x0000005A
SET_ENV_VAR_FAILED0x0000005B
HAL_INITIALIZATION_FAILED0x0000005C
HEAP_INITIALIZATION_FAILED0x0000005D
OBJECT_INITIALIZATION_FAILED0x0000005E
SECURITY_INITIALIZATION_FAILED0x0000005F
PROCESS_INITIALIZATION_FAILED0x00000060
HAL1_INITIALIZATION_FAILED0x00000061
OBJECT1_INITIALIZATION_FAILED0x00000062
SECURITY1_INITIALIZATION_FAILED0x00000063
SYMBOLIC_INITIALIZATION_FAILED0x00000064
MEMORY1_INITIALIZATION_FAILED0x00000065
CACHE_INITIALIZATION_FAILED0x00000066

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

 
CONFIG_INITIALIZATION_FAILED0x00000067
FILE_INITIALIZATION_FAILED0x00000068

Это означает, что реестр не может создать место, необходимое для содержания файлов реестра. Это ошибка не должна никогда появляться, так как процесс создания такого места происходит на ранней стадии загрузки системы и поэтому должно быть достаточно места для создания бассейна. Параметры:

  1. 5
  2. указывает на NTOS\CONFIG\CMSYSINI, который потерпел неудачу.
 
IO1_INITIALIZATION_FAILED0x00000069
LPC_INITIALIZATION_FAILED0x0000006A

Инициализация I/O системы не удалась по каким-либо причинам. Больше, практически, никакой информации нет. Такое могло случиться, если установка приняла не правильное решение по поводу инсталляции системы, или пользователь переконфигурировал систему.

 
PROCESS1_INITIALIZATION_FAILED0x0000006B
REFMON_INITIALIZATION_FAILED0x0000006C
SESSION1_INITIALIZATION_FAILED0x0000006D
SESSION2_INITIALIZATION_FAILED0x0000006E
SESSION3_INITIALIZATION_FAILED0x0000006F
SESSION4_INITIALIZATION_FAILED0x00000070

Параметры:

  1. указывает на код статуса, который решил, что инициализация NT не прошла успешно.
  2. указывает на место в NTOS\PS\PSINIT.C, где ошибка была обнаружена.
 
SESSION5_INITIALIZATION_FAILE0x00000071
ASSIGN_DRIVE_LETTERS_FAILED0x00000072

Это коды кодов (SESSION1 - SESSION5) указывают место в NTOS\INIT\INIT.C, где была допущена ошибка. Параметры:

  1. указывает код статуса, который решил, что инициализация NT не прошла успешно.
 
CONFIG_LIST_FAILED0x00000073

Указывает, что одна из системных библиотек повреждена или не читаема. Эта библиотека может быть или SOFTWARE, или SECURITY, или SAM (Менеджера Безопасности Аккаунтов). Тем не менее ошибка не означает, что раздел реестра поврежден. Параметры:

  1. 5
  2. Код состояния Windows указывает на то, что система обнаружила невозможность подключения куста
  3. Индекс раздела реестра в списке разделов
  4. Указатель UNICODE_STRING содержащий имя файла раздела реестра.
 
BAD_SYSTEM_CONFIG_INFO0x00000074

Эта ошибка может показывать то, что библиотека SYSTEM, загружаемая OSLOADER/NTLDR, повреждена. Тем не менее, это практически невозможно, так как OSLOADER всегда проверяет библиотеки после загрузки и убеждается, что они не повреждены.

Эта ошибка так же может означать, что некоторые требуемые ключи реестра и их параметры отсутствуют. Загрузка в LastKnownGood (Последней хорошей конфигурации) может решить проблему, или вам придётся переустанавливать систему, или используйте Emergency Repair Disk.

 
CANNOT_WRITE_CONFIGURATION 0x00000075

Эта ошибка может появиться, если файлы SYSTEM библиотеки (SYSTEM и SYSTEM.ALT) не могут достичь accommodate additional data записанные в hive между инициализациями реестра и первой фазы (когда файловые системы доступны). Эта ошибка обычно означает, что на диске нет свободного места, так же это может произойти при попытке сохранить реестр на устройстве "только чтение".

 
PROCESS_HAS_LOCKED_PAGES 0x00000076

Эта ошибка может возникнуть по причине драйвера, который не полностью вычищен после I/O операции. Параметры:

  1. адрес процесса
  2. число замкнутых страниц
  3. число частных страниц
  4. 0
 
KERNEL_STACK_INPAGE_ERROR0x00000077
PHASE0_EXCEPTION0x00000078

Запрошенная страница ядра не может быть прочтена. Причина ошибки может быть в плохом блоке файла виртуальной памяти или ошибки контролера диска (очень редко, когда причиной может быть нехватка ресурсов, а конкретней, резерв nonpaged pool (невиртуальной памяти) со статусом c0000009a [STATUS_INSUFFICIENT_RESOURCES]).

Если первый и второй параметры кода ошибки равны 0, означает, что место ошибки в ядре не было найдено. Значит, эта ошибка вызвана плохим оборудованием.

I/O статус c000009c (STATUS_DEVICE_DATA_ERROR) или C000016AL (STATUS_DISK_OPERATION_FAILED) обычно означает, что информация не может быть прочитана из-за плохого блока в памяти. После перезагрузки автоматическая проверка диска попытается определить адрес плохого блока в памяти. Если статус будет C0000185

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

  1. 0
  2. 0
  3. значение PTE на момент ошибки
  4. адрес ошибки ядра
  5. код статуса
  6. I/O код статуса
  7. номер страницы виртуальной памяти
  8. Компенсация в страничный файл
 
MISMATCHED_HAL0x00000079

Уровень проверки HAL и тип конфигурации HAL не подходят ядру системы или типу машины. Такая ошибка, скорее всего, вызвана тем, что пользователь вручную обновил либо NTOSKRNL.EXE либо HAL.DLL. Или на машине мультипроцессорный HAL (MP) и мультипроцессорное ядро (UP), или наоборот. Параметры:

1. тип несовпадения (1, 2 или 3):
2. несовпадение уровней выпуска PRCB (несовпадение дат). Если дело в этом, то параметры 2 и 3:
  • 2 - больший уровень NTOSKRNL.EXE
  • 3 - больший уровень HAL.DLL
2. несовпадение типов бильдов, в этом случае параметры 2 и 3:
  • 2 - тип бильда NTOSKRNL.EXE
  • 3 - тип бильда HA L.DLL
  • типы бильдов:
  • 0 -
  • 1 -
  • 2 -
3. Micro Channel Architecture (MCA) компьютерам требуется специфичный MCA HAL, в этом случае параметры 2 и 3:

2 - тип машины, определённый NTDETECT.COM
значение 2 означает, что компьютер - MCA
3 - тип машин, которые этот HAL поддерживает
значение 2 означает, что этот HAL сделан для MCA

 
KERNEL_DATA_INPAGE_ERROR0x0000007A

Не может быть прочитана запрашиваемая ядром страница памяти. Ошибка вызвана плохим блоком в памяти или ошибкой контроллера диска. Параметры:

  1. тип блока который повис
  2. статус ошибки (обычно I/O код статуса)
  3. текущий процесс (виртуальный адрес для лока типа 3 или PTE)
  4. адрес виртуальной памяти, который не может войти в файл подкачки
 
INACCESSIBLE_BOOT_DEVICE0x0000007B
BUGCODE_PSS_MESSAGE0x0000007C

В процессе инсталляции I/O системы, драйвер загрузочного устройства, возможно, не смог инициализировать устройство, с которого система пыталась загрузиться, или файловая система, которая должна была прочитать это устройство, либо не смогла инициализироваться, либо просто не распознала информацию на устройстве, как структуру файловой системы. В случае составителя, первый аргумент - это адрес уникодовой структуры информации, которая является ARC именем устройства, с которого была попытка загрузиться. Во втором случае, первый аргумент - это адрес объекта устройства, которое не может быть смонтировано.

Если эта ошибка возникла при начальной инсталляции системы, то она может означать, что система была установлена на диск или SCSI контроллер, которые ей не поддерживаются. Имейте в виду, что некоторые контроллеры поддерживаются только драйверами из виндовских библиотек (WDL), которые должны быть установлены выборочной установкой.

При запуске компьютера с системой Windows 7 после изменения режима SATA для загрузочного диска.

Эта ошибка так же может произойти после установки нового SCSI адаптера или контроллера или после изменений системной партиции. В этом случае, на x86 системах, нужно отредактировать BOOT.INI; на ARC системах, нужно запустить Setup. Для большей информации, как должен быть изменён BOOT.INI, смотрите Windows NT Advanced Server "Administrator's Guide".

Если аргумент указывает на ARC имя стринга (string), формат первых двух (это только в этом случае) длинных слов будет:

USHORT Length;
USHORT MaximumLength;
PVOID Buffer;

Например, если первое длинное слово содержит что-то типа 00800020, где 20 длина Уникодового стринга (Unicode string), и следующее длинное слово будет содержать адрес буфера.

Если аргумент указывает на объект устройства, формат первого слова будет: USHORT Type;

Значит, первое слово содержит 0003, где Type код всегда будет 0003.

Примечание: Вы сразу сможете опознать, указывает ли аргумент на ARC имя или на объект устройства, так как Уникодовый стринг (Unicode string) никогда не содержит нечётное число байтов, а объект устройства всегда будет содержать тип кода - 3. Параметры:

  1. указатель на объект устройства или Уникодовый стринг (Unicode string), или ARC имя.
INSTALL_MORE_MEMORY0x0000007D

Не хватает памяти, чтобы загрузить Windows NT (необходимо 5 MB). Параметры:

  1. номер найденных физических страниц
  2. нижняя физическая страница
  3. высшая физическая страница
  4. 0
 0x0000007E

Это может случиться, когда системная генерирует исключение, которое поддержка ошибок (error handler) не может уловить. Причины:

  1. Не хватает дискового пространства. Если ошибка появилась после первой перезагрузки во время установки Windows или сразу после того, как установка завершилась, на жёстком диске может быть не достаточно места, чтобы запустить Windows.
  2. Несовместимость BIOS. Если ошибка появилась после первого рестарта во время установки Windows или сразу после того, как установка завершилась, BIOS может быть несовместим с Windows.
  3. Несовместимые драйвера видео адаптера
  4. Повреждённый Random Access Memory (RAM).
  5. Повреждённый драйвер оборудования или системный сервис.
  6. Несовместимая программа третьей стороны удалённого управления. Если ошибка ассоциируется с Win32k.sys файлом, это может быть из-за программы третьей стороны удалённого управления компьютером
UNEXPECTED_KERNEL_MODE_TRAP0x0000007F

Эта ошибка означает, что произошло непредвиденное прерывание в режиме ядра, или вид прерывания, которое ядро не разрешает иметь или получить (захват(a bound trap)), или вид прерывания, которое влечёт за собой немедленную смерть (двойная ошибка(double fault)). Первое число в интервалах кода бага - число прерывания (8 = double fault). Чтобы узнать больше, что это за прерывание, обратитесь к мануалу Intel x86 семьи.

Пользуясь отладчиком ядра (kernel debugger), KB и !TRAP в подходящем фрейме (который будет EBP, что идёт вместе с процедурой KiTrap--at минимум на x86 машинах) покажет, откуда прерывание взялось.

В общем, баг появляется, когда процессор допускает ошибку, с которой ядро не может справиться. Чаще всего возникает из-за плохого RAM, так же из-за разгона процессора.

Попробуйте отменить в BIOS - sync negotiation (синхронная передача данных).

NMI_HARDWARE_FAILURE0x00000080
SPIN_LOCK_INIT_FAILURE0x00000081

HAL должен сообщить всю конкретную информацию, которую имеет, и предложить пользователю обратиться к его поставщику оборудования за поддержкой.

SETUP_FAILURE0x00000085

Примечание: текстовая форма setup больше не использует проверку ошибок (bugcheck), чтобы выйти из серьёзных ошибок. Поэтому вы никогда не столкнётесь с 0x85. Все проверки багов были заменены на более дружелюбные и (где возможно) более информативные сообщения об ошибках. Тем не менее, некоторые составители ошибок просто были заменены нашими bugcheck экранами, и код для этих состояний ошибок такой же, как и был. Они приведены ниже.)

0: OEM HAL шрифт - недействительный формат файла *.fon, поэтому установка не смогла отобразить текст. Это означает, что vgaxxx.fon на CD или флоппи повреждён.

1: Не смогло инициализироваться видео. Эта ошибка имеет собственный экран и пользователю предоставляется только 2 варианта. Это означает, что файл vga.sys (или другой драйвер, в зависимости от машины) повреждён, или то, что данное оборудование не поддерживается

Причина ошибки:

0: NtCreateFile of devicevideo0
1: IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES
2: IOCTL_VIDEO_QUERY_AVAIL_MODES
3: Желаемый режим видео не поддерживается. Это означает внутреннюю ошибку установки.
4: IOCTL_VIDEO_SET_CURRENT_MODE (невозможно установить режим видео)
5: IOCTL_VIDEO_MAP_VIDEO_MEMORY
6: IOCTL_VIDEO_LOAD_AND_SET_FONT (3 - код статуса NT API вызова)

2: Нехватка памяти. Теперь эта ошибка использует более дружественный экран, в зависимости от того, как далеко зашла установка.

3: Клавиатура не была инициализирована. Теперь используются 2 разных экрана в зависимости от ошибок, которые тут могли появиться. Это может означать, что диск, содержащий драйвера для клавиатуры (i8042prt.sys или kbdclass.sys) повреждён или машина имеет клавиатуру, которая не поддерживается.

Так же это может означать, что dll раскладки клавиатуры не может быть загружен. Причина ошибки:

0: NtCreateFile of deviceKeyboardClass0 . "Установка не обнаружила клавиатуру, подключённую к вашему компьютеру."
1: Unable to load keyboard layout dll. "Установка не может загрузить dll раскладки клавиатуры ." Это значит, что на флоппи или CD нет файла (kbdus.dll для us или других dll).

4: Установка не смогла выяснить путь устройства, с которого началась установка. Это внутренняя ошибка установки.

5: Не прошла проверка на работоспособность разделов жесткого диска. Это означает, что ошибка в драйвере диска. Параметры имеют значение только для группы установки.

MBR_CHECKSUM_MISMATCH0x0000008B

Эта ошибка возникает в процессе загрузки, когда контрольная сумма MBR, которую посчитала система, не совпадает с контрольной суммой загрузчика. Обычно это означает вирус. Некоторые вирусы не могут быть определены/найдены. Загрузитесь с дискеты с вирус-сканером (убедитесь, что дискета защищена от записи! KerBugCheckEx

Параметры:

  1. Disk Signature from MBR.
  2. MBR checksum calculated by osloader.
  3. MBR checksum calculated by system.
 0x0000008E

Применяется к следующим системам:

  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional SP1
  • Microsoft Windows XP Home Edition SP1
PP0_INITIALIZATION_FAILED0x0000008F

Это сообщение появляется, если инициализация фазы 0 менеджера Plug and Play не прошла на стадии инициализации ядра (kernel-mode Plug and Play Manager failed).Вообще-то нет ничего такого, что бы могло вызвать эту ошибку.

PP1_INITIALIZATION_FAILED0x00000090

Это сообщение появляется, если инициализация фазы 1 менеджера Plug and Play не прошла на стадии инициализации ядра (kernel-mode Plug and Play Manager failed). Вот здесь происходят практический все инициализации, включая конфигурацию среды (реестр и т.д.) драйверов для вызова I/O впоследствии.

 
UP_DRIVER_ON_MP_SYSTEM0x00000092

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

Параметры:

  1. The Base address of the driver.
INVALID_KERNEL_HANDLE0x00000093

Эта ошибка появляется, когда код ядра (kernel code), такой, как сервер, перенаправитель (redirector), другие драйвера и так далее пытаются закрыть handle, который не является действительным. Параметры:

  1. указатель, с которым NtClose был вызван
  2. 0 означает, что был закрыт защищённый указатель
  3. 1 значит, был закрыт неверный указатель.
KERNEL_STACK_LOCKED_AT_EXIT0x00000094

Это сообщение появляется, когда нить существует, в то время как её стек ядра помечен, как не swapable.

INVALID_WORK_QUEUE_ITEM0x00000096

Это сообщение появляется, когда KeRemoveQueue удаляет очередь данных, flink или blink поле равно 0. Это практический всегда вызывается неправильным применением кода работающей нити текущего объекта, но неправильное применение любой очереди может привести к этому. Правило - ввод данных в очередь может быть произведено только однажды. Когда предмет удаляется из очереди, его flink поле равно 0. Этот баг возникает, когда происходит попытка удалить данные, flink или blink поля которых равны 0.

Для того, чтобы разрешить этот баг, вам необходимо выяснить очередь, на которую он ссылается. Если эта очередь одна из ЕХ работающих очередей (ExWorkerQueue), тогда объект, который удаляется - WORK_QUEUE_ITEM. Этот баг подразумевает, что это и есть причина. Параметры бага помогают выявить драйвер, который неправильно использует очередь.

BOUND_IMAGE_UNSUPPORTED0x00000097

MmLoadSystemImage была вызвана, чтобы загрузить bound image. Это не поддерживается ядром. Убедитесь, что bind.exe не был запушен на картинке. KeBugCheckEx. Параметры:

  1. Адрес данных в очереди, flink/blink поле которых ноль.
  2. Адрес на ссылающуюся очередь. Обычно это одна из ExWorkerQueues очередей.
  3. Начальный адресс ExWorkerQueue массива. Это поможет выявить, если очередь в вопросе одна из ExWorkerQueue очередей и если так, то офсет из этого параметра выявит очередь.
  4. Если это ExWorkerQueue очередь (как это бывает обычно), это адрес работающей рутины, которая бы вызывалась, если работающий элемент был бы действительным. Это может быть использовано, чтобы выявить драйвер, который неправильно использует рабочую очередь.
END_OF_NT_EVALUATION_PERIOD0x00000098

Ваша NT система - триал с ограниченной датой, которая подошла к концу. KeBugCheckEx. Параметры:

  1. Низкий 32-дитный запрос вашей даты инсталляции.
  2. Высокий 32-дитный запрос вашей даты инсталляции.
  3. Триал период в минутах.
 
INVALID_REGION_OR_SEGMENT0x00000099

ExInitializeRegion или ExInterlockedExtendRegion были вызваны с неправильным набором параметров.

SYSTEM_LICENSE_VIOLATION0x0000009A

Выявился испытательный срок лицензии софта. Это может быть или из-за попытки изменить тип продукта офлайновой системы, или попытки изменить срок триального периода НТ.

MACHINE_CHECK_EXCEPTION0x0000009C

Фатальная ошибка Machine Check Exception (проверка машины). KeBugCheckEx

Если процессор имеет ТОЛЬКО MCE функции доступными (например: Intel Pentium), то параметры:

  1. Low 32 bits of P5_MC_TYPE MSR
  2. .
  3. High 32 bits of P5_MC_ADDR MSR
  4. Low 32 bits of P5_MC_ADDR MSR

Если процессор имеет так же MCA функции доступными (например: Intel Pentium Pro), то параметры:

  1. Пустой номер
  2. Адрес поля MCi_ADDR MSR MCA, где ошибка случилась
  3. High 32 bits MCi_STATUS MSR, где ошибка случилась
  4. Low 32 bits MCi_STATUS MSR, где ошибка случилась
DRIVER_POWER_STATE_FAILURE0x0000009F

Применяется к Microsoft Windows 2000

Причиной этого стопа является драйвер устройства, который не выдержал вызова на переход в другое состояние электропитания.

Вы должны обновить или удалить неработоспособный драйвер устройства или драйвер-фильтр файловой системы (file system filter driver), который, возможно, был установлен антивирусной программой, программой удалённого доступа или ПО CDW/CDRW

VIDEO_DRIVER_INIT_FAILURE0x000000B4

Windows не удалось перейти в графический режим, потому что ни один видео драйвер не был загружен. Обычно проблема с драйвером или какой-то конфликт видео оборудования с другим оборудованием. Загрузитесь в Safe Mode и посмотрите, если это решит проблему. Если так, то обновите драйвера видео оборудования или откатите на рабочую версию

ATTEMPTED_WRITE_TO_READONLY_MEMORY0x000000BE

Применяется к Windows 2000 Datacenter Server

Драйвер попытался записать в read-only (только чтение) память. Обычно возникает после установки неисправного драйвера оборудования, системного сервиса, BIOS `a. Если имя драйвера указано в ошибке, попытайтесь исправить проблему отключением, удалением или откаткой драйверов. .

PECIAL_POOL_DETECTED_MEMORY_CORRUPTION0x000000C1
Попытка произвести запись драйвером по неправильному адресу памяти.
BAD_POOL_CALLER0x000000C2

Процесс ядра или драйвер попытались неверно произвести операцию с памятью. Обычно причиной являются неисправные драйвера или софт.

DRIVER_VERIFIER_DETECTED_VIOLATION0x000000C4

This is the general bug check code for fatal errors that the Driver Verifier finds. The accompanying parameters are the parameters that are passed to KeBugCheckEx and displayed on a blue screen. (ошибка 0x000000C4 возникает, если в проверке драйверов включено обнаружение взаимоблокировок) Чтобы устранить проблему, следует отключить обнаружение взаимоблокировок в проверке драйверов

 
DRIVER_CORRUPTED_EXPOOL0x000000C5

Почти всегда причиной является неисправный драйвер. Если вы только что установили новое программное обеспечение, проверьте обновление его драйверов на сайте производителя. .

DRIVER_CAUGHT_MODIFYING_FREED_POOL0x000000C6
A driver tried to access a freed memory pool. Replace the driver.
TIMER_OR_DPC_INVALID0x000000C7

A kernel timer or Delayed Procedure Call (DPC) was found somewhere in memory where it is not permitted. This is usually caused by a driver's failure to cancel the timer or the DPC before freeing the memory in which the timer or DPC resides.

DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS0x000000CB

This is related to Stop Code 0x76. It appears instead of 0x76 if diagnostic tracking is enabled as described in the General Discussion article below. It indicates that a driver or the I/O manager failed to release locked pages after an I/O operation. Note the name of the problem driver on the blue error screen.

DRIVER_IRQL_NOT_LESS_OR_EQUAL0x000000D1

Была сделана попытка затронуть виртуальную память на внутреннем процессе IRQ уровня, который слишком высок. Возможные причины:

- Неполадки в работе драйвера
- Неполадки в работе модуля памяти
- Поврежден файл подкачки
RESOURCE_NOT_OWNED0x000000E3

Сбой файловой системы NTFS. Эта ошибка возникает, когда ресурсы высвобождаются дважды в Ntfs.sys.

THREAD_STUCK_IN_DEVICE_DRIVER0x000000EA

Обычно драйвер дисплея ожидает отклика от оборудования перешедшего в неактивный режим когда оборудование перейдёт в спящий режим. Проблема может быть с видео адаптером или его драйвером. Для устранения проблемы необходимо установить последнюю версию драйвера видеокарты

UNMOUNTABLE_BOOT_VOLUME0x000000ED

I/O система ядра пыталась смонтировать устройство для загрузки системы, а оно отказалось работать. Такая ошибка может возникнуть во время обновления до Windows XP на систему, где используется высокопроизводительные ATA диски или контроллеры, а подсоединены они низкопропускным кабелем. (Смените 40-wire кабель на 80-wire UDMA кабель). В некоторых случаях, после перезагрузки, система может продолжать работать без видимых сбоев. В BIOS загрузите `Fail-Safe` установки по умолчанию и потом сконфигурируйте самые важные его компоненты. .

UNKNOWN_HARD_ERROR0xC0000218

Такое поведение может наблюдаться, когда необходимая библиотека реестра повреждена или не найдена. Это может произойти из-за повреждённого жёсткого диска или других проблем с оборудованием. Так же проблема может появиться, если драйвер повредил информацию реестра во время загрузки её в память, или когда память, в которую загружается информация реестра, повреждена (в этом случае отключите внешнюю память и проверьте чипы памяти на ошибки).

STATUS_SYSTEM_PROCESS_TERMINATED0xC000021A

Это может случиться, когда драйвер оборудования (.sys) не найден или повреждён. Пропавший или повреждённый файл скорее всего тот, который упомянут в стоп-сообщени. User32.dll не найден или повреждён.

 0xC0000244

A "Stop 0xc0000244" Error Occurs When You Audit Policy Changes If CrashOnAuditFail Is Turned On {KB 323475} Windows XP

 0xC000026C

Usually indicates device driver problems.
Unable to Load Device Driver {KB 160495} Win NT, Win 2000, Win XP

MANUALLY_INITIATED_CRASH10xDEADDEAD

"It's dead, Jim!" This Stop message indicates that the user deliberately initiated a crash dump from either the kernel debugger or the keyboard. Perhaps it goes without saying that you don't ever want to see this error message unless you did it on purpose!



Автор: Неизвестен

Устранение неполадок при возникновении Blue Screen Of Death (BSOD)
HTML-cсылка: BB-cсылка: Прямая ссылка:
КОММЕНТАРИИ
Имя*
E-Mail
Кликните на изображение чтобы обновить код, если он неразборчив

Переводчик

Перейти к статьям