Синий "экран смерти" BSoD


Все наверное уже видели этот синий экран с непонятными буквами и код начинающийся со STOP.













Вот описание некоторых кодов ошибок и варианты их устранения и исправления:

0x00000001: APC_INDEX_MISMATCH

Внутренняя ошибка ядра (kernel).Ошибка зачастую означает, что не соответствует число KeEnterCriticalRegion числу KeLeaveCriticalRegion в файловой системе.Проблема связана чаще всего с неполадкой в драйверах, нехваткой оперативной памяти или места на жестком диске.

[0x0000000A: IRQL_NOT_LESS_OR_EQUAL] общий обзор

STOP 0x0000000A показывает, что процесс ядра или драйвер пытались обратиться к памяти, к которой у них нет разрешения обращаться.
Самая распространенная причина - это некорректный или повреждённый указатель (pointer), который указывает на неправильный участок в памяти. Указатель (pointer) - это переменная, которая используется программой, для указания на блок в памяти. Если переменная имеет неправильное значение, тогда программа пытается обратиться к памяти, к которой у неё нет прав обращаться. Когда это происходит в программе пользователя, она генерирует нарушение доступа. Когда это происходит в режиме ядра, она генерирует STOP 0x0000000A сообщение.
Одна из самых часто возникающих ошибок Windows NT - STOP 0x0000000A. Этот STOP может быть вызван как Программным Обеспечением, так и проблемой с оборудованием. Для выявления причин вы должны разобрать этот STOP, используя дебагер. Тем не менее, некоторые выводы можно сделать, рассмотрев параметры STOP сообщения и сообщения сопутствующего этот STOP.

0x00000023: FAT_FILE_SYSTEM

Произошла ошибка во время записи или чтения с системного диска на фаловой системе FAT16 или FAT32. Возможна проблема с самим диском или с Interrupt Request Packet (IRP) пакетом.
Так же присиной может быть большая фрагментация диска, проблема в антивирусном програмном обеспечение или в ПО слежения за дисками (drive monitoring).
Решение:
Для решения этой проблемы следуйте следующим шагам, прока проблема не будет устранена.
1. Проверьте диск с помощмью утилит ChkDsk или ScanDisk.
2. Отключите сторонние фильтры файловой системы (такие как антивирусные сканнеры, брандмауэры, утилиты для архивирования данных)
3. Проверьте версию файла FASTFAT.SYS и убедитесь, что он соответствует действующей операционной системе.
4. Обновите оборудование, такое как жёсткие диски, CD-ROM и т.п.

0x00000024: NTFS_FILE_SYSTEM

 Произошла ошибка во время записи или чтения с системного диска на фаловой системе NTFS. Возможна проблема с самим диском или с Interrupt Request Packet (IRP) пакетом.
Так же присиной может быть большая фрагментация диска, проблема в антивирусном програмном обеспечение или в ПО слежения за дисками (drive monitoring).
Решение:
Для решения этой проблемы следуйте следующим шагам, прока проблема не будет устранена.
1. Проверьте диск с помощмью утилит ChkDsk или ScanDisk.
2. Отключите сторонние фильтры файловой системы (такие как антивирусные сканнеры, брандмауэры, утилиты для архивирования данных)
3. Проверьте версию файла NTFS.SYS и убедитесь, что он соответствует действующей операционной системе и сервисному паку.
4. Обновите оборудование, такое как жёсткие диски, CD-ROM и т.п

0x0000002A: INCONSISTENT_IRP

 Состояния IRP (пакет ввода/вывода – I/O packet) не соответствовали друг другу.
Это когда поле или несколько полей IRP не соответствовали остальному состоянию IRP. Например, IRP, который был закончен, указывался, как всё ещё ждущий выполнения команд драйвера какого-либо устройства.

0x0000002B: PANIC_STACK_SWITCH

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

0x0000002E: DATA_BUS_ERROR

Чаще всего данная ошибка указывает на неполадки памяти.
Параметры:
1 - адрес виртуальной памяти, который стал причиной ошибки
2 - физический адрес причины ошибки
3 - регистр статуса процессора (PSR)
4 - регистр инструкции ошибки (FIR)
Почти всегда причиной является оборудование системы – неверная конфигурация, несовместимое или повреждённое оборудование.
В большинстве случаев это неисправный RAM, Level 2 (L2) RAM cache ошибки, ошибки видео RAM и повреждённый жёсткий диск.
Так же это может случиться, когда драйвер обращается к 0x8XXXXXXX адресу памяти, который не существует.

0x00000035: NO_MORE_IRP_STACK_LOCATIONS

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

0x00000036: DEVICE_REFERENCE_COUNT_NOT_ZERO

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

0x0000003E: MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTED

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

0x0000003F: NO_MORE_SYSTEM_PTES

Это случается, когда система выполнила слишком много операций ввода/вывода ( I/O ), что приводит к фрагментации виртуальной памяти.
В общем, ошибка говорит о нехватке РТЕ (page file entries), но на самом деле из-за фрагментации не возможно выделить драйверу целый кусок запрашиваемого количества памяти.
Часто видео драйвера пытаются получить большие каски виртуальной памяти. Так же программы резервирующие данные.
Так же причиной может являться драйвер, который плохо вычищает файл подкачки (swap).

0x00000041: MUST_SUCCEED_POOL_EMPTY

Ошибка показывает, что какой-то драйвер запросил слишком много места в must_succeed pool.
В winNT и win2000 must_succeed pool очень мал, а в XP драйверам в обще не разрешено запрашивать там место для выполнения своих команд.

0x00000044: MULTIPLE_IRP_COMPLETE_REQUESTS

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

0x00000048: CANCEL_STATE_IN_COMPLETED_IRP

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

Это может быть вызвано драйвером, который сначала просит выполнить операцию, а потом отменить её выполнение.
Или это может быть вызвано несколькими драйверами, пытающимися неправильно завладеть одним и тем же IRP.

0x0000004C: FATAL_UNHANDLED_HARD_ERROR

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

0x0000004D: NO_PAGES_AVAILABLE

Не хватает свободного места, чтобы продолжать операции.

0x0000004E: PFN_LIST_CORRUPT

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

0x00000051: REGISTRY_ERROR

Ошибка указывает на повреждение системного реестра.

0x00000067: CONFIG_INITIALIZATION_FAILED

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

0x00000069: IO1_INITIALIZATION_FAILED

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

0x00000071: SESSION5_INITIALIZATION_FAILED

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

0x00000074: BAD_SYSTEM_CONFIG_INFO

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

0x00000075: CANNOT_WRITE_CONFIGURATION

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

0x00000076: PROCESS_HAS_LOCKED_PAGES

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

0x00000077: KERNEL_STACK_INPAGE_ERROR

Запрошенная страница ядра не может быть прочитана. Причина ошибки может быть в плохом блоке файла виртуальной памяти или ошибки контролера диска (очень редко, причиной может быть нехватка ресурсов, а конкретней, резерв 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 диске, то должно быть проверено подключение и срок годности.

0x00000079: MISMATCHED_HAL

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

0x0000007A: KERNEL_DATA_INPAGE_ERROR

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

0x0000007D: INSTALL_MORE_MEMORY

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

0x0000007F: UNEXPECTED_KERNEL_MODE_TRAP

Эта ошибка означает, что произошло непредвиденное прерывание в режиме ядра, или вид прерывания, которое ядро не разрешает (захват(a bound trap)), или вид прерывания, которое влечёт за собой немедленную смерть (двойная ошибка(double fault)). Первое число в интервалах кода бага - число прерывания (8 = double fault). Чтобы узнать больше, что это за прерывание, обратитесь к мануалу Intel x86 семьи.
Пользуясь отладчиком ядра (kernel debugger), KB и !TRAP можно выяснить от куда прерывание происходит.
В общем, баг появляется, когда процессор допускает ошибку, с которой ядро не может справиться. Чаще всего возникает из-за плохого RAM, так же из-за разгона процессора.
Попробуйте отменить в BIOS - sync negotiation (синхронная передача данных).

0x00000085: SETUP_FAILURE

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

0x0000008B: MBR_CHECKSUM_MISMATCH

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

0x0000008F: PP0_INITIALIZATION_FAILED

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

0x00000090: PP1_INITIALIZATION_FAILED

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

0x00000092: UP_DRIVER_ON_MP_SYSTEM

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

0x00000093: INVALID_KERNEL_HANDLE

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

0x00000096: INVALID_WORK_QUEUE_ITEM

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

0x00000097: BOUND_IMAGE_UNSUPPORTED

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

0x0000009C: MACHINE_CHECK_EXCEPTION

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

0x000000B4: VIDEO_DRIVER_INIT_FAILURE

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

0x000000C5: DRIVER_CORRUPTED_EXPOOL

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

0x000000D1: DRIVER_IRQL_NOT_LESS_OR_EQUAL

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

0x000000ED: UNMOUNTABLE_BOOT_VOLUME

I/O система ядра пыталась смонтировать устройство для загрузки системы, а оно отказалось работать. Такая ошибка может возникнуть во время обновления до Windows XP на систему, где используется высокопроизводительные ATA диски или контроллеры, а подсоединены они низкопропускным кабелем. В некоторых случаях, после перезагрузки, система может продолжать работать без видимых сбоев.

0X000000C2: BAD_POOL_CALLER

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

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