Ошибки возникновения "Синих экранов смерти"
и описание некоторых из них.
Если вы получили одну из этих ошибок, запустите отладчик ядра (kerneldebugger)
и напечатайте следующие команды:
kb
!process 0 7
!vm
!errlog
Примечание: BUGCODES.H and EXLEVELS.H are both in the Windows NT DDK.
Или просто посмотрите, если здесь есть решения для вашего стопа.
Когда ищите описание ошибки,
смотрите не столько на номер, сколько на название, потому что в системах
NT-2000-XP номера могут отличаться. Так же советую читать не только
то, что написано для Вашей системы, но и для других 2-х, потому что все
три системы схожи и решения близки.
Ниже приведены самые часто встречающиеся ошибки. Дано их описание и решения.
INSTALL_MORE_MEMORY |
0x0000007D |
Не хватает памяти, чтобы загрузить Windows NT (необходимо 5 MB). Параметры:- номер найденных физических страниц
- нижняя физическая страница
- высшая физическая страница
- 0
|
|
|
0x0000007E |
Это может случиться, когда системная генерирует исключение, которое поддержка ошибок (error handler) не может уловить.
Причины:- Не хватает дискового пространства. Если ошибка появилась после первой перезагрузки во время установки Windows или сразу после того, как установка завершилась, на жёстком диске может быть не достаточно места, чтобы запустить Windows.
- Несовместимость BIOS. Если ошибка появилась после первого рестарта во время установки Windows или сразу после того, как установка завершилась, BIOS может быть несовместим с Windows.
- Несовместимые драйвера видео адаптера
- Повреждённый Random Access Memory (RAM).
- Повреждённый драйвер оборудования или системный сервис.
- Несовместимая программа третьей стороны удалённого управления. Если ошибка ассоциируется с Win32k.sys файлом, это может быть из-за программы третьей стороны удалённого управления компьютером
|
|
UNEXPECTED_KERNEL_MODE_TRAP |
0x0000007F |
Эта ошибка означает, что произошло непредвиденное прерывание в
режиме ядра, или вид прерывания, которое ядро не разрешает иметь или
получить (захват(a bound trap)), или вид прерывания, которое влечёт за
собой немедленную смерть (двойная ошибка(double fault)). Первое число в
интервалах кода бага - число прерывания (8 = double fault). Чтобы
узнать больше, что это за прерывание, обратитесь к мануалу Intel x86
семьи.
Пользуясь отладчиком ядра (kernel debugger), KB и !TRAP в подходящем
фрейме (который будет EBP, что идёт вместе с процедурой KiTrap--at
минимум на x86 машинах) покажет, откуда прерывание взялось.
В общем, баг появляется, когда процессор допускает ошибку, с которой
ядро не может справиться. Чаще всего возникает из-за плохого RAM, так
же из-за разгона процессора.
Попробуйте отменить в BIOS - sync negotiation (синхронная передача данных). |
|
NMI_HARDWARE_FAILURE |
0x00000080 |
SPIN_LOCK_INIT_FAILURE |
0x00000081 |
HAL должен сообщить всю конкретную информацию, которую имеет, и
предложить пользователю обратиться к его поставщику оборудования за
поддержкой. |
|
SETUP_FAILURE |
0x00000085 |
Примечание: текстовая форма 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_MISMATCH |
0x0000008B |
Эта ошибка возникает в процессе загрузки, когда контрольная сумма
MBR, которую посчитала система, не совпадает с контрольной суммой
загрузчика. Обычно это означает вирус. Некоторые вирусы не могут быть
определены/найдены. Загрузитесь с дискеты с вирус-сканером (убедитесь,
что дискета защищена от записи!)
KerBugCheckEx Параметры:- Disk Signature from MBR.
- MBR checksum calculated by osloader.
- 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_FAILED |
0x0000008F |
Это сообщение появляется, если инициализация фазы 0 менеджера Plug
and Play не прошла на стадии инициализации ядра (kernel-mode Plug and
Play Manager failed).Вообще-то нет ничего такого, что бы могло вызвать
эту ошибку. |
|
PP1_INITIALIZATION_FAILED |
0x00000090 |
Это сообщение появляется, если инициализация фазы 1 менеджера Plug
and Play не прошла на стадии инициализации ядра (kernel-mode Plug and
Play Manager failed). Вот здесь происходят практический все
инициализации, включая конфигурацию среды (реестр и т.д.) драйверов для
вызова I/O впоследствии. |
|
UP_DRIVER_ON_MP_SYSTEM |
0x00000092 |
Этот баг появляется только когда UNIPROCESSOR драйвер загружается на систему,
в которой больше чем один активный процессор.
KeBugCheckEx Параметры:- The Base address of the driver.
|
|
INVALID_KERNEL_HANDLE |
0x00000093 |
Эта ошибка появляется, когда код ядра (kernel code), такой, как сервер,
перенаправитель (redirector), другие драйвера и так далее пытаются закрыть
handle, который не является действительным. Параметры:- указатель, с которым NtClose был вызван
- 0 означает, что был закрыт защищённый указатель
- 1 значит, был закрыт неверный указатель.
|
|
KERNEL_STACK_LOCKED_AT_EXIT |
0x00000094 |
Это сообщение появляется, когда нить существует, в то время как её стек ядра
помечен, как не swapable. |
|
INVALID_WORK_QUEUE_ITEM |
0x00000096 |
Это сообщение появляется, когда KeRemoveQueue удаляет очередь данных, flink
или blink поле равно 0. Это практический всегда вызывается неправильным
применением кода работающей нити текущего объекта, но неправильное применение
любой очереди может привести к этому. Правило - ввод данных в очередь может быть
произведено только однажды. Когда предмет удаляется из очереди, его flink поле
равно 0. Этот баг возникает, когда происходит попытка удалить данные, flink или
blink поля которых равны 0. Для того, чтобы разрешить этот баг, вам необходимо
выяснить очередь, на которую он ссылается. Если эта очередь одна из ЕХ
работающих очередей (ExWorkerQueue), тогда объект, который удаляется -
WORK_QUEUE_ITEM. Этот баг подразумевает, что это и есть причина. Параметры бага
помогают выявить драйвер, который неправильно использует очередь. |
|
BOUND_IMAGE_UNSUPPORTED |
0x00000097 |
MmLoadSystemImage была вызвана, чтобы загрузить bound image. Это не
поддерживается ядром. Убедитесь, что bind.exe не был запушен на картинке.
KeBugCheckEx. Параметры:- Адрес данных в очереди, flink/blink поле которых ноль.
- Адрес на ссылающуюся очередь. Обычно это одна из ExWorkerQueues очередей.
- Начальный адресс ExWorkerQueue массива. Это поможет выявить, если очередь в
вопросе одна из ExWorkerQueue очередей и если так, то офсет из этого параметра
выявит очередь.
- Если это ExWorkerQueue очередь (как это бывает обычно), это адрес работающей
рутины, которая бы вызывалась, если работающий элемент был бы действительным.
Это может быть использовано, чтобы выявить драйвер, который неправильно
использует рабочую очередь.
|
|
END_OF_NT_EVALUATION_PERIOD |
0x00000098 |
Ваша NT система - триал с ограниченной датой, которая подошла к концу.
KeBugCheckEx. Параметры:- Низкий 32-дитный запрос вашей даты инсталляции.
- Высокий 32-дитный запрос вашей даты инсталляции.
- Триал период в минутах.
|
|
INVALID_REGION_OR_SEGMENT |
0x00000099 |
ExInitializeRegion или ExInterlockedExtendRegion были вызваны с неправильным
набором параметров. |
|
SYSTEM_LICENSE_VIOLATION |
0x0000009A |
Выявился испытательный срок лицензии софта. Это может быть или из-за попытки
изменить тип продукта офлайновой системы, или попытки изменить срок триального
периода НТ. |
|
Продолжение... |
|
|