Устранение неполадок при возникновении Blue Screen Of Death (BSOD)
BlueScreenView – утилита для анализа «синих экранов смерти»
Бесплатная утилита под названием BlueScreenView
позволит пользователям разобраться, что именно послужило причиной
появления «синего экрана», и принять меры во избежание указанной
проблемы в дальнейшем.
Приложение сканирует содержимое файлов
малого дампа памяти, создаваемых при критическом сбое системы, и
представляет информацию в виде удобной, легко интерпретируемой таблицы.
В том числе пользователи смогут увидеть имя соответствующего
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
Ошибки возникновения "Синих экранов смерти"
и описание некоторых из них.
Если вы получили одну из этих ошибок, запустите отладчик ядра (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)
адрес виртуальной памяти, который не может войти в файл подкачки
В процессе инсталляции 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 имя.