BlueScreenView v1.31 – Анализ «синих экранов смерти» - Бесплатная утилита позволит пользователям разобраться, что именно послужило причиной появления «синего экрана», и принять меры во избежание указанной проблемы в дальнейшем. Приложение сканирует содержимое файлов малого дампа памяти, создаваемых при критическом сбое системы, и представляет информацию в виде удобной, легко интерпретируемой таблицы. В том числе пользователи смогут увидеть имя соответствующего minidump-файла, время и дату сбоя, изображение конкретного «синего экрана», а также подробные сведения о драйвере или модуле, которые являются предполагаемой причиной выхода системы из строя (название продукта, имя файла, а также его версия и краткое описание). Если на жестком диске компьютера установлено несколько экземпляров операционной системы Windows, программу можно использовать с любым из них. Пользователям достаточно выбрать альтернативное местоположение папки minidump (в меню Advanced Options). Интерфейс приложения может быть модифицирован в соответствии с предпочтениями пользователя. В частности, BlueScreenView позволяет скрывать или отображать отдельные столбцы данных. Утилита не требует установки на жесткий диск и активируется путем запуска exe-файла. Продукт BlueScreenView можно загрузить. Если вы получили одну из этих ошибок, запустите отладчик ядра (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_MISMATCH 0x00000001 DEVICE_QUEUE_NOT_BUSY 0x00000002 INVALID_AFFINITY_SET 0x00000003 INVALID_DATA_ACCESS_TRAP 0x00000004 INVALID_PROCESS_ATTACH_ATTEMPT 0x00000005 INVALID_PROCESS_DETACH_ATTEMPT 0x00000006 INVALID_SOFTWARE_INTERRUPT 0x00000007 IRQL_NOT_DISPATCH_LEVEL 0x00000008 IRQL_NOT_GREATER_OR_EQUAL 0x00000009 Это внутренняя ошибка ядра (kernel). Ошибка может возникнуть из-за несовпадения KeEnterCricticalRegion и KeLeaveCriticalRegion в файловой системе. IRQL_NOT_LESS_OR_EQUAL 0x0000000A NO_EXCEPTION_HANDLING_SUPPORT 0x0000000B MAXIMUM_WAIT_OBJECTS_EXCEEDED 0x0000000C Была сделана попытка затронуть виртуальную память на внутреннем процессе IRQ уровня, который слишком высок. Если kernel debugger доступен, вы можете отследить, где именно система запнулась. Дополнительная информация. Одна из самых часто возникающих ошибок Windows NT - STOP 0x0000000A. Этот STOP может быть вызван как Программным Обеспечением, так и проблемой с оборудованием. Для выявления причин вы должны разобрать этот STOP, используя дебагер. Тем не менее, некоторые выводы можно сделать, рассмотрев параметры STOP сообщения и сообщения сопутствующего этот STOP. Параметры: адрес, по которому выполнено ошибочное обращение IRQL, который использовался для обращения к памяти тип доступа к памяти: 0 = операция чтения, 1 = операция записи адрес инструкции, которая затребовала доступ к памяти по адресу Примечание: Имейте ввиду, что эта ошибка возникает в 99% из-за "кривых" драйверов. Некоторые из них в Windows XP вы можете обнаружить используя утилиту verifier.exe: Start (Пуск) -> Run (Выполнить) -> verifier.exe MUTEX_LEVEL_NUMBER_VIOLATION 0x0000000D NO_USER_MODE_CONTEXT 0x0000000E SPIN_LOCK_ALREADY_OWNED 0x0000000F SPIN_LOCK_NOT_OWNED 0x00000010 THREAD_NOT_MUTEX_OWNER 0x00000011 TRAP_CAUSE_UNKNOWN 0x00000012 EMPTY_THREAD_REAPER_LIST 0x00000013 CREATE_DELETE_LOCK_NOT_LOCKED 0x00000014 LAST_CHANCE_CALLED_FROM_KMODE 0x00000015 CID_HANDLE_CREATION 0x00000016 CID_HANDLE_DELETION 0x00000017 REFERENCE_BY_POINTER 0x00000018 BAD_POOL_HEADER 0x00000019 MEMORY_MANAGEMENT 0x0000001A PFN_SHARE_COUNT 0x0000001B PFN_REFERENCE_COUNT 0x0000001C NO_SPIN_LOCK_AVAILABLE 0x0000001D KMODE_EXCEPTION_NOT_HANDLED 0x0000001E Попытайтесь установить взаимоисключения используя NTOS/EX/EXLEVELS.H файл заголовков. Вы должны найти точки взаимодействия и определить, какие из них пытаются получить доступ к этому уровню в неверной последовательности. Параметры: настоящая нить уровня взаимодействия уровень взаимодействия пытающийся получить доступ KMODE_EXCEPTION_NOT_HANDLED 0x0000001E SHARED_RESOURCE_CONV_ERROR 0x0000001F Это очень часто встречающаяся ошибка - Дополнительная информация. Обычно исключённый адрес указывает на драйвер или функцию, которая вызвала стоп-экран. Всегда обращайте внимание не только на указанный драйвер, но и на сам адрес или имидж, содержащий эту ошибку. Обычно это код исключения 0x80000003. Эта ошибка означает, что точка прерывания или суждение было достигнуто при обращении к памяти, но система загрузилась с /NODEBUG ключа. Это ошибка не должна появляться слишком часто. Если ошибка появляется постоянно, убедитесь, что отладчик (debugger) подключён и система загружается с /DEBUG switch. На неИнтеловских системах, если адрес исключения 0XBFC0304, ошибка появляется вследствие кэширования процессора. Если ошибка будет появляться снова, свяжитесь с производителями. Как правило, требуется анализ второго параметра этого сообщения, который указывает на адрес драйвера/функции, которая была причиной проблемы. Параметры: код исключительной ситуации адрес, при обработке которого произошел сбой Parameter 0 of the exception Parameter 1 of the exception KERNEL_APC_PENDING_DURING_EXIT 0x00000020 QUOTA_UNDERFLOW 0x00000021 FILE_SYSTEM 0x00000022 FAT_FILE_SYSTEM 0x00000023 NTFS_FILE_SYSTEM 0x00000024 NPFS_FILE_SYSTEM 0x00000025 CDFS_FILE_SYSTEM 0x00000026 RDR_FILE_SYSTEM 0x00000027 CORRUPT_ACCESS_TOKEN 0x00000028 SECURITY_SYSTEM 0x00000029 Название ошибки указывает на повреждённый/отключённый APC счётчик. Если счётчик показывает значение не равное нулю, то он и есть источник проблемы. Отрицательное значение указывает на то, что файловая система вызывала FsRtlEnterFileSystem большее количество раз чем FsRtlExitFileSystem. Положительное значение указывает наоборот FsRtlExitFileSystem было вызвано большее количество раз чем FsRtlEnterFileSystem. Если у вас такая ситуация, проверьте все файловые системы установленные на машине. Сторонние перенаправители более всего подозреваются в сбое, так как они не были так тщательно протестированы, как NTFS, FAT, HPFS и RDR. Текущий IRQL должен быть равен 0. Если нет, то определённый порядок аннулирования драйверов может быть причиной возникновения ошибки, возвращаясь на высоком уровне IRQ. Всегда пытайтесь заметить, что вы делали или какие приложения закрывали, какие драйвера были установлены на момент возникновения синего экрана. Этот симптом указывает на серьёзную проблему в драйверах третьей стороны. Параметры: адрес APC, по которому висел (был в ожидании) на момент выхода. нить APC disable count текущий IRQ уровень INCONSISTENT_IRP 0x0000002A IRP неожиданно был обнаружен на несоответствующем состоянии; это когда поле или несколько полей были несовместимы с сохранившемся состоянием IRP. Например, IRP, который был закончен указывался, как всё ещё ждущий выполнения команд драйвера какого-либо устройства. Параметры: адрес на котором IRP был найден в несоответствующем состоянии PANIC_STACK_SWITCH 0x0000002B PORT_DRIVER_INTERNAL 0x0000002C SCSI_DISK_DRIVER_INTERNAL 0x0000002D Эта ошибка указывает а то, что область стека ядра переполнено. Это может возникнуть, когда драйвер ядра использует слишком много места в области стека. Это так же может случиться, когда серьёзная ошибка в самом ядре. DATA_BUS_ERROR 0x0000002E INSTRUCTION_BUS_ERROR 0x0000002F SET_OF_INVALID_CONTEXT 0x00000030 Этот стоп чаще всего вызывается ошибкой в памяти системы. В большинстве случаев это неисправный RAM, Level 2 (L2) RAM cache ошибки, ошибки видео RAM и повреждённый жёсткий диск. Так же это может случиться, когда драйвер обращается к 0x8XXXXXXX адресу памяти, который не существует. Параметры: адрес виртуальной памяти, который стал причиной ошибки физический адрес причины ошибки регистрация статуса процессора (PSR) регистрация инструкции ошибки (FIR) PHASE0_INITIALIZATION_FAILED 0x00000031 Инициализация системы не прошла на ранней стадии. Нужно более детально установить ошибку, так как этот код вам не говорит практический ни о чём. PHASE1_INITIALIZATION_FAILED 0x00000032 UNEXPECTED_INITIALIZATION_CALL 0x00000033 CACHE_MANAGER 0x00000034 Параметры: код статуса системы, который описывает почему система решила, что инициализация не прошла указывает место внутри INIT.C, где ошибка инициализации фазы 1 произошла NO_MORE_IRP_STACK_LOCATIONS 0x00000035 Драйвер высшего уровня пытался вызвать драйвер низшего уровня через IoCallDriver() интерфейс, но в запасе не было свободного места в области стека, поэтому драйвер низшего уровня не сможет достичь нужных параметров, так как для него вообще нет никаких параметров. Это гибельная ситуация, так как драйвер высшего уровня считает, что заполнил параметры для драйвера низшего уровня (что-то он должен был сделать, чтобы вызвать драйвер низшего уровня). Тем не менее, так как для последнего драйвера нет свободного места в области стека, составитель аннулировал конец пакета. Это означает, что, скорее всего, какая-то другая память была повреждена. Параметры: адрес IRP DEVICE_REFERENCE_COUNT_NOT_ZERO 0x00000036 FLOPPY_INTERNAL_ERROR 0x00000037 SERIAL_DRIVER_INTERNAL 0x00000038 SYSTEM_EXIT_OWNED_MUTEX 0x00000039 SYSTEM_UNWIND_PREVIOUS_USER 0x0000003A SYSTEM_SERVICE_EXCEPTION 0x0000003B INTERRUPT_UNWIND_ATTEMPTED 0x0000003C INTERRUPT_EXCEPTION_NOT_HANDLED 0x0000003D Драйвер устройства пытался удалить из системы одно из объектов его устройства, но счётчик обращений этого объекта не был равен 0, означающий что для этого объекта всё ещё были невыполненные задачи (счётчик указывает номер причин, почему данный объект на может быть удалён). Это ошибка вызова драйвера. Параметры: адрес объекта MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTED 0x0000003E Мультипроцессорная система не симметрична по отношению друг к другу. Чтобы быть симметричными, процессоры должны быть одного типа и уровня. Например, попытка использовать процессор уровня Pentium и 80486 вызовет ошибку. Кроме того, на х86 системах, возможность вычислений с плавающей точкой должны быть на обоих процессорах или ни на одном. NO_MORE_SYSTEM_PTES 0x0000003F Не хватает РТЕ (page file entries). Обычно причиной является драйвер, который плохо вычищает файл подкачки (swap). Если отладчик ядра (kernel debugger) доступен проследите, где система запнулась и введите следующую команду: !sysptes 3 или увеличите объем виртуальной памяти. TARGET_MDL_TOO_SMALL 0x00000040 Драйвер вызвал функцию IoBuildPartialMdl() и послал ей MDL, чтобы выявить часть источника MDL, но цель MDL не достаточно большая, чтобы отобразить пределы требуемых адресов. Это ошибка драйвера. Источник и цель MDL, так же как длинна линии адресов определения являются аргументами IoBuildPartialMdl() функции: IoBuildPartialMdl( IN PMDL SourceMdl, IN OUT PMDL TargetMdl, IN PVOID VirtualAddress, IN ULONG Length ) MUST_SUCCEED_POOL_EMPTY 0x00000041 ATDISK_DRIVER_INTERNAL 0x00000042 NO_SUCH_PARTITION 0x00000043 Если отладчик ядра (kernel debugger) доступен, команда Виртуальной Машины (VM) показывает различные величины. Параметры: величина запроса, который не может быть удовлетворён номер страниц, которые были использованы из nonpaged pool. номер слишком больших страниц, запрашиваемых из nonpaged pool. номер доступных страниц MULTIPLE_IRP_COMPLETE_REQUESTS 0x00000044 INSUFFICIENT_SYSTEM_MAP_REGS 0x00000045 DEREF_UNKNOWN_LOGON_SESSION 0x00000046 REF_UNKNOWN_LOGON_SESSION 0x00000047 Драйвер запросил завершение IRP [IoCompleteRequest()], но пакет был уже завершён. Эту ошибку сложно выявить, так как самый простой случай - драйвер пытается завершить одну и ту же операцию дважды - обычно не то, что случается на самом деле. Реже - 2 различных драйвера пытаются завладеть пакетом и завершить его. Первый как правило срабатывает, а второй нет. Отследить, какой именно драйвер сделал это, трудно, так как следы первого драйвера были переписаны вторым. Тем не менее, конфликт может быть выявлен, рассматривая DeviceObject поля, в каждом местоположении стека. Параметры: адрес IRP CANCEL_STATE_IN_COMPLETED_IRP 0x00000048 Это ошибка указывает, что I/O Request Packet (IRP), который должен быть завершён, имеет порядок отмены определённый в нём, означая, что пакет в таком положении, что может быть отменен. Тем не менее, пакет не относиться более к драйверу, так как он уже вошёл в стадию завершения. PAGE_FAULT_WITH_INTERRUPTS_OFF 0x00000049 IRQL_GT_ZERO_AT_SYSTEM_SERVICE 0x0000004A STREAMS_INTERNAL_ERROR 0x0000004B Означает именно то, что пишет: ошибка страницы с выключенным прерыванием. Рассматривайте эту ошибку, так же как 0x0A думаю что помог.