Ошибки возникновения "Синих экранов смерти"
и описание некоторых из них.
Если вы получили одну из этих ошибок, запустите отладчик ядра (kerneldebugger)
и напечатайте следующие команды:
kb
!process 0 7
!vm
!errlog
Примечание: BUGCODES.H and EXLEVELS.H are both in the Windows NT DDK.
Или просто посмотрите, если здесь есть решения для вашего стопа.
Когда ищите описание ошибки,
смотрите не столько на номер, сколько на название, потому что в системах
NT-2000-XP номера могут отличаться. Так же советую читать не только
то, что написано для Вашей системы, но и для других 2-х, потому что все
три системы схожи и решения близки.
Ниже приведены самые часто встречающиеся ошибки. Дано их описание и решения.
FATAL_UNHANDLED_HARD_ERROR |
0x0000004C |
Если ошибка появиться во время загрузки NT, загрузка прервётся синим экраном.
Наиболее частые причины:- x218 - необходимая
библиотека реестра не может быть загружена. Этот файл может
отсутствовать или быть повреждённым. Чтобы решить эту проблему, вам
понадобиться загрузочная дискета.
- Драйвер может иметь повреждённый ключ реестра во время загрузки в
память, или память, в которую происходила загрузка этого ключа, может
быть и не память на самом деле. Особенно AST EISA машины с 16М и выше
памятью должны иметь доступ к памяти выше 16М, т.е. в утилите
конфигурации EISA этот параметр должен быть ENABLED (разрешён). Иначе
файл, который загрузится в ту память, при чтении покажет - 0xffffffff.
- x21A - или Winlogon или CSRSS (Windows) "умерли" внезапно. Выходящий код может сказать больше. Обычно это - c0000005,
что говорит о том, что неподдерживаемое исключение рухнуло в том или
другом процессе. Здесь вы не так много можете сделать по этому поводу.
- x221 - означает, что драйвер повреждён или
системная библиотека была распознана, как повреждённая. NT делает всё,
чтобы проверять нетронутость важных системных файлов. Синий экран
показывает имя повреждённого файла. Если такое случилось, загрузитесь в
любую другую систему или, если таковых нет, переустановите систему...
Убедитесь, что версия файла, который был выявлен, как повреждённый,
совпадает с версией файла в дистрибутиве NT и если так, то замените его
с диска. Постоянные ошибки с разными именами файлов означают проблемы с
железом в I/O пути драйвера.
|
|
NO_PAGES_AVAILABLE |
0x0000004D |
Нет больше свободного места, чтобы закончить операцию. Параметры:- количество использованных страниц
- кол-во физических страниц на машине
- Extended commit value in pages
- Total commit value in pages
Если отладчик (kernel debugger) доступен, печатайте следующие команды:
!process 0 7 !vm dd mmpagingfiles dd @$p которые покажут какие драйвера, где и сколько ресурсов памяти занимают
|
|
PFN_LIST_CORRUPT |
0x0000004E |
Причина - повреждённая/неисправная I/O структура драйвера.
Параметры:- значение 1
- значение ListHead, которое повреждено
- число доступных страниц
- 0
- значение 2
- данные, которые удаляются
- наивысшее число физических страниц
- итог удаляемых данных
|
|
PAGE_FAULT_IN_NONPAGED_AREA |
0x00000050 |
Появляется, когда запрошенная информация не была найдена в памяти.
Система проверяет файл подкачки (page file), но отсутствующая
информация была обозначена, как невозможная для записи в файл подкачки
(page file). Дополнительная информация. Если это случилось на Terminal Server, проверьте драйвера третьей стороны для принтера. Параметры:- указывает на адрес в памяти, который допустил ошибку
- тип обращения ( 0x00000000 = операция чтения, 0x00000001 = операция записи )
- если параметр не нулевой, то он показывает адрес инструкции, ссылающийся на адрес памяти в первом параметре.
|
|
REGISTRY_ERROR |
0x00000051 |
MAILSLOT_FILE_SYSTEM |
0x00000052 |
NO_BOOT_DEVICE |
0x00000053 |
LM_SERVER_INTERNAL_ERROR |
0x00000054 |
DATA_COHERENCY_EXCEPTION |
0x00000055 |
INSTRUCTION_COHERENCY_EXCEPTION |
0x00000056 |
XNS_INTERNAL_ERROR |
0x00000057 |
Что-то случилось с реестром. Если отладчик (kernel debugger)
доступен, отследите ошибку. Если он вам покажет, что вы в ветке системы
(CmpWorker будет присутствовать в перечне), введите следующие команды: dd CmpRegistryMutex+18 L1 !thread <whatever value the above command printed out>
Это выдаст вам ветку и место ошибки, которое обращалось к реестру.
Эта ошибка так же может означать, что реестр получил ошибку I/O,
когда пытался прочитать один из его файлов, отсюда следует, что ошибка
могла быть вызвана проблемой с оборудованием или что сама система
повреждена. Это так же может означать, что ошибка вызвана операцией
обновления, которую использует только система безопасности и это только
когда ресурсы на исходе. Если такая ошибка появилась, проверьте,
является ли машина PDC или BDC и сколько аккаунтов в базе данных SAM
(Менеджер Безопасности Аккаунтов), может ли это быть цель эхо и не
заполнены ли соответствующие библиотеки почти до конца. Параметры:- значение 1 (указывает, где появилась ошибка)
- значение 2 (указывает, где появилась ошибка)
- может указывать на библиотеку
- может быть возвратным кодом HvCheckHive'а, если какая-либо библиотека повреждена
|
|
FTDISK_INTERNAL_ERROR |
0x00000058 |
PINBALL_FILE_SYSTEM |
0x00000059 |
CRITICAL_SERVICE_FAILED |
0x0000005A |
SET_ENV_VAR_FAILED |
0x0000005B |
HAL_INITIALIZATION_FAILED |
0x0000005C |
HEAP_INITIALIZATION_FAILED |
0x0000005D |
OBJECT_INITIALIZATION_FAILED |
0x0000005E |
SECURITY_INITIALIZATION_FAILED |
0x0000005F |
PROCESS_INITIALIZATION_FAILED |
0x00000060 |
HAL1_INITIALIZATION_FAILED |
0x00000061 |
OBJECT1_INITIALIZATION_FAILED |
0x00000062 |
SECURITY1_INITIALIZATION_FAILED |
0x00000063 |
SYMBOLIC_INITIALIZATION_FAILED |
0x00000064 |
MEMORY1_INITIALIZATION_FAILED |
0x00000065 |
CACHE_INITIALIZATION_FAILED |
0x00000066 |
Система загрузилась с восстановленной первичной партиции, поэтому
библиотеки говорят, что зеркало в порядке, но на самом деле это не так.
Настоящие образы библиотек оттенены. Вам нужно загрузиться с них. |
|
CONFIG_INITIALIZATION_FAILED |
0x00000067 |
FILE_INITIALIZATION_FAILED |
0x00000068 |
Это означает, что реестр не может создать место, необходимое для
содержания файлов реестра. Это ошибка не должна никогда появляться, так
как процесс создания такого места происходит на ранней стадии загрузки
системы и поэтому должно быть достаточно места для создания бассейна. Параметры:- 5
- указывает на NTOS\CONFIG\CMSYSINI, который потерпел неудачу.
|
|
IO1_INITIALIZATION_FAILED |
0x00000069 |
LPC_INITIALIZATION_FAILED |
0x0000006A |
Инициализация I/O системы не удалась по каким-либо причинам. Больше,
практически, никакой информации нет. Такое могло случиться, если
установка приняла не правильное решение по поводу инсталляции системы,
или пользователь переконфигурировал систему. |
|
PROCESS1_INITIALIZATION_FAILED |
0x0000006B |
REFMON_INITIALIZATION_FAILED |
0x0000006C |
SESSION1_INITIALIZATION_FAILED |
0x0000006D |
SESSION2_INITIALIZATION_FAILED |
0x0000006E |
SESSION3_INITIALIZATION_FAILED |
0x0000006F |
SESSION4_INITIALIZATION_FAILED |
0x00000070 |
Параметры:- указывает на код статуса, который решил, что инициализация NT не прошла успешно.
- указывает на место в NTOS\PS\PSINIT.C, где ошибка была обнаружена.
|
|
SESSION5_INITIALIZATION_FAILE |
0x00000071 |
ASSIGN_DRIVE_LETTERS_FAILED |
0x00000072 |
Это коды кодов (SESSION1 - SESSION5) указывают место в NTOS\INIT\INIT.C, где была допущена ошибка.
Параметры:- указывает код статуса, который решил, что инициализация NT не прошла успешно.
|
|
CONFIG_LIST_FAILED |
0x00000073 |
Указывает, что одна из системных библиотек повреждена или не
читаема. Эта библиотека может быть или SOFTWARE, или SECURITY, или SAM
(Менеджера Безопасности Аккаунтов). Тем не менее ошибка не означает, что раздел реестра поврежден. Параметры:- 5
- Код состояния Windows указывает на то, что система обнаружила невозможность подключения куста
- Индекс раздела реестра в списке разделов
- Указатель UNICODE_STRING содержащий имя файла раздела реестра.
|
|
BAD_SYSTEM_CONFIG_INFO |
0x00000074 |
Эта ошибка может показывать то, что библиотека 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 операции. Параметры:- адрес процесса
- число замкнутых страниц
- число частных страниц
- 0
|
|
KERNEL_STACK_INPAGE_ERROR |
0x00000077 |
PHASE0_EXCEPTION |
0x00000078 |
Запрошенная страница ядра не может быть прочтена. Причина ошибки
может быть в плохом блоке файла виртуальной памяти или ошибки
контролера диска (очень редко, когда причиной может быть нехватка
ресурсов, а конкретней, резерв 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 диске, то должно быть проверено подключение и срок годности. Параметры:- 0
- 0
- значение PTE на момент ошибки
- адрес ошибки ядра
- код статуса
- I/O код статуса
- номер страницы виртуальной памяти
- Компенсация в страничный файл
|
|
MISMATCHED_HAL |
0x00000079 |
Уровень проверки HAL и тип конфигурации HAL не подходят ядру системы
или типу машины. Такая ошибка, скорее всего, вызвана тем, что
пользователь вручную обновил либо NTOSKRNL.EXE либо HAL.DLL. Или на
машине мультипроцессорный HAL (MP) и мультипроцессорное ядро (UP), или
наоборот. Параметры: 1. тип несовпадения (1, 2 или 3): 1. несовпадение уровней выпуска 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_ERROR |
0x0000007A |
Не может быть прочитана запрашиваемая ядром страница памяти.
Ошибка вызвана плохим блоком в памяти или ошибкой контроллера диска. Параметры:- тип блока который повис
- статус ошибки (обычно I/O код статуса)
- текущий процесс (виртуальный адрес для лока типа 3 или PTE)
- адрес виртуальной памяти, который не может войти в файл подкачки
|
|
INACCESSIBLE_BOOT_DEVICE |
0x0000007B |
BUGCODE_PSS_MESSAGE |
0x0000007C |
В процессе инсталляции I/O системы, драйвер загрузочного устройства,
возможно, не смог инициализировать устройство, с которого система
пыталась загрузиться, или файловая система, которая должна была
прочитать это устройство, либо не смогла инициализироваться, либо
просто не распознала информацию на устройстве, как структуру файловой
системы. Дополнительная информация. В случае составителя, первый аргумент - это адрес уникодовой
структуры информации, которая является ARC именем устройства, с
которого была попытка загрузиться. Во втором случае, первый аргумент -
это адрес объекта устройства, которое не может быть смонтировано.
Если эта ошибка возникла при начальной инсталляции системы, то она
может означать, что система была установлена на диск или SCSI
контроллер, которые ей не поддерживаются. Имейте в виду, что некоторые
контроллеры поддерживаются только драйверами из виндовских библиотек
(WDL), которые должны быть установлены выборочной установкой.
Эта ошибка так же может произойти после установки нового 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. Параметры:- указатель на объект устройства или Уникодовый стринг (Unicode string), или ARC имя.
|
|
Продолжение... |
|
|