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 |
Смотреть часть 1 часть 2 часть 3
|