Работа с системным реестром Windows XP

         

CompEbook ru



CompEbook.ru

Железо, дизайн, обучение и другие







Диалоговое окно Загрузка и восстановление



Рисунок 15.2. Диалоговое окно Загрузка и восстановление (Startup and Recovery)

Группа Загрузка операционной системы (System startup), расположенная в верхней части окна, позволяет задать операционную систему, загружаемую по умолчанию (в случае, когда на компьютере установлено несколько операционных систем), и временной интервал, в течение которого на экране будет отображаться меню загрузки.

Группа, которая интересует нас в данном случае — Отказ системы (System Failure). Она позволяет определить поведение системы в случае возникновения ошибок STOP. Рассмотрим ее опции более подробно. Системный журнал событий Windows XP - хороший источник информации, помогающей выяснить причину возникновения ошибки. Именно поэтому в любом случае рекомендуется установить флажок Записать событие в системный журнал (Write an event to the system log) — тогда при каждом возникновении ошибки STOP в системном журнале событий будет делаться соответствующая запись. Пример такой записи приведен ниже:

Event ID: :1001 Source: Save Dump Description: The computer has rebooted from a bugcheck. The bugcheck was : 0xc000021a (0xel270188, 0x00000001, ,0x00000000, 0x00000000). Microsoft Windows NT (v15.1381). A dump was saved in: C:\WINNT\MEMORY.DMP.

Если установить флажок Отправить административное оповещение (Send an administrative alert), то в случае возникновения ошибки STOP на компьютер сетевого администратора будет отправляться административное уведомление.

Наконец, если компьютер, на котором происходит такая ошибка, необходимо как можно скорее привести в рабочее состояние, возможно, вы захотите, чтобы он автоматически перезагружался в случае возникновения ошибок STOP. Для этого установите флажок Выполнить автоматическую перезагрузку (Automatically reboot).

Если ошибки, приводящие к появлению "синего экрана", появляются систематически, то наилучшим источником информации о причине их возникновения будет отладочный дамп. Для конфигурирования системы таким образом, чтобы при ее крахе содержимое физической памяти записывалось в файл на жестком диске, используются опции группы Запись отладочной информации (Write Debugging Information). Поле Файл дампа памяти (Dump File) предназначено для ввода имени файла, в который будет сбрасываться эта информация, а установленный флажок Затирать существующий файл (Overwrite any existing file) определяет, что содержимое существующего файла дампа каждый раз будет замещаться новой информацией. Эти опции используются так же, как и в предыдущих версиях Windows NT.

Однако Windows XP предлагает и усовершенствование по сравнению с Windows NT 4.0 при сохранении отладочного дампа. Если у вас есть опыт работы с предыдущими версиями Windows NT, вы наверняка помните, что в Windows NT 4.0 в отладочный дамп можно было записать только содержимое физической памяти компьютера. Объем файла, который при этом генерирует система, всегда несколько больше, нежели объем физической памяти, установленной на компьютере, и при этом значительная часть данных в файле дампа практически бесполезна. Как в Windows NT 4.0, так и в Windows XP ошибки STOP представляют собой ошибки ядра. Следовательно, именно информация ядра (состояние системы на момент возникновения ошибки, сведения об активных приложениях, загруженных драйверах устройств и т. д.) и представляет практический интерес при анализе дампа. Данные о режиме пользователя обычно просто увеличивают размер файла дампа и не предоставляют полезной информации.

Именно поэтому в Windows XP в диалоговом окне Загрузка и восстановление появилась новая опция, позволяющая регулировать размер файла аварийного дампа. Первый список в группе Запись отладочной информации позволяет выбрать режим сохранения дампа. Наряду с возможностью сохранения полного дампа (как в Windows NT 4.0) в нем есть опция Дамп памяти ядра (Kernel Memory Dump)^ при выборе которой в файле дампа будет сохранена только информация ядра. Средства анализа аварийного дампа; совместимые с Windows XP, в том числе dumpexam и WinDbg, будут интерпретировать этот файл корректно. Экономия дискового пространства, которой можно добиться, выбрав эту опцию, может отличаться в разных системах (и даже зависеть от типа возникающих ошибок). Тем не менее, на основании практического опыта авторов можно сказать, что на компьютерах с объемом оперативной памяти 128 Мбайт полный дамп составит чуть более 128 Мбайт, а дамп ядра — около 40 Мбайт.





Дополнительные источники информации



Дополнительные источники информации

К сожалению, здесь невозможно более подробно описать интереснейшую и увлекательнейшую (хотя и весьма сложную) тему устранения ошибок STOP, анализа аварийного дампа и работу с отладочным сеансом.

Авторы считают своим долгом отослать заинтересованных читателей к источникам информации, где они могут получить исчерпывающие ответы на все интересующие их вопросы. Вот список этих источников:

http://msdn.microsoft.com/developer/wmdowsXP — масса полезной информации для разработчиков, в том числе можно загрузить версию Windows XP Device Driver Kit.

http://mspress.mkrosoft.com/Reslink — информация о продуктах Resource Kit.

http://www.microsoft.com/hwdev/driver/Ntdebugging.htm — ссылки на дополнительные источники с информацией по отладке.

http://www.microsoft.com/HWTEST/sysdocs/ntdebug.htm — полный справочник по отладке, начиная с установки отладочного режима и заканчивая подробным списком всех команд отладчика ядра.

http://support.microsoft.com/support/ — статьи Microsoft Knowledge Base, содержащие полную и подробную информацию об устранении ошибок STOP.




Хосткомпьютер



Хост-компьютер

Термин "хост-компьютер" (host computer) в данной главе относится к компьютеру, на котором вы запускаете отладчик. Этот компьютер должен работать под управлением версии Windows XP, по крайней мере такой же (или более новой), как и отлаживаемый компьютер.




Наиболее распространенные ошибки STOP



Наиболее распространенные ошибки STOP

Этот раздел содержит краткую информацию и инструкции по устранению наиболее часто встречающихся ошибок STOP. Представленные здесь материалы собраны на основании статей Microsoft Knowledge Base, а также документации, входящей в состав Windows XP Resource Kit. Если, несмотря на все предпринятые вами меры, ошибка продолжает появляться, обратитесь в службу технической поддержки.




Окно HKEY_LOCAL_MACHINE после



Рисунок 15.3. Окно HKEY_LOCAL_MACHINE после загрузки раздела System из поврежденной копии Windows XP

4. Раскройте куст oldsystem, найдите в составе ключа HKEY_LOCAL_ MACHINE\SYSTEM\Contix)lSetca\Gontrol\CrashControl параметр AutoReboot и установите его значение в 0 (эту операцию надо проделать для всех наборов Con trolSetxxx). 5. Сверните ключ HKEY_LOCAL_Mb\CHINE, выделите куст oldsystem и выберите в меню Реестр команду Выгрузить куст.

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

Предупреждение

При загрузке некоторого куста размер реестра увеличивается и может превысить максимальное допустимое значение. Поэтому перед операцией загрузки рекомендуется проверить текущий размер реестра в окне Виртуальная память (Рисунок 15.2) и при необходимости увеличить его.

Шаг 2. Если после перезагрузки "синий экран" больше не появляется t то проблема решена (хотя бы временно). Не забудьте после запуска Windows XP просмотреть журнал системных событий. (Возможно, именно там вы обнаружите сообщения об ошибках, которые позволят идентифицировать источник проблемы.) Для этого запустите оснастку Просмотр событий (Event Viewer).

Шаг3. Если ошибка STOP появилась при первой же перезагрузке компьютера после установки нового оборудования или Дополнительного программного обеспечения, и вы еще не регистрировались в системе, то попробуйте перезагрузить компьютер, и при появлении списка доступных операционных систем нажмите клавишу <F8>. В появившемся меню выберите опцию Загрузка последней удачной конфигурации (Last Known Good Configuration). Перезагрузка компьютера с использованием последней успешно загруженной конфигурации удалит все конфигурационные изменения, внесенные с момента последней успешной загрузки Windows XP.

Шаг 4. Если Windows XP все же не может нормально стартовать, попробуйте выполнить загрузку в безопасном режиме (safe mode), а затем блокировать или удалить вновь установленные программы и драйверы (подробная информация об опциях отладочного меню, выводимого при загрузке Windows XP по нажатии клавиши <F8>, приведена в главе 8). Просмотрите последнюю версию списка совместимых аппаратных средств (Hardware Compatibility List, HCL) и проверьте, все ли аппаратные средства, установленные на компьютере, присутствуют в этом списке. Убедитесь в правильности подключения всех вновь установленных устройств. Попробуйте отключить новые устройства или заменить их (возможно, именно это и решит проблему), а также запустить диагностическое программное обеспечение, полученное от поставщика данного компьютера. Особое внимание следует уделить тестированию памяти.

Шаг 5. Выполните сканирование компьютера на вирусы с помощью новейшей версии антивирусного программного обеспечения, совместимого с Windows XP. Вирусы могут повреждать как тома FAT, так и тома NTFS, и эти повреждения могут проявляться как ошибки STOP.

Шаг 6. Просмотрите базу знаний Microsoft, выполнив поиск по ключевым словам winnt и конкретному коду ошибки. Более подробная информация о Microsoft Knowledge Base приведена в последнем разделе данной главы, в списке источников дополнительной информации.

Наиболее распространенные ошибки STOP

Этот раздел содержит краткую информацию и инструкции по устранению наиболее часто встречающихся ошибок STOP. Представленные здесь материалы собраны на основании статей Microsoft Knowledge Base, а также документации, входящей в состав Windows XP Resource Kit. Если, несмотря на все предпринятые вами меры, ошибка продолжает появляться, обратитесь в службу технической поддержки.

STOP 0х00000000А - IRQL_NOT_LESS_OR_EQUAL

Это сообщение STOP, известное также под названием STOP OxA, указывает на то, что процесс режима ядра пытался получить доступ к участку памяти на слишком высоком уровне запроса прерывания (Interrupt Request Level, IRQL), в то время как такие процессы могут получать доступ только к процессам с IRQL не более высоким, чем их собственный,

Рекомендации. Чаще всего эта ошибка бывает вызвана некорректно работающим драйвером устройств, системным сервисом или BIOS. Чтобы попытаться быстро выполнить восстановление после такой ошибки, попробуйте перезагрузить компьютер, при появлении списка доступных операционных систем нажмите клавишу <F8> и выберите опцию Загрузка последней удачной конфигурации.

Примечание

Использование этой опции наиболее эффективно, если установка драйверов, сервисов и устройЬтв производится по одному за раз

Если сообщение появляется во время установки Windows XP, просмотрите HCL и убедитесь в том, что все установленные на компьютере периферийные устройства перечислены в этом списке.

Более подробная информация об диагностике ошибок STOP 0xA приведена в статье из MicrosQft, Knowledge, Base "Troubleshooting: 'Stop 0x0A' Messages in Windows XP которую можно найти по адресу http://support.microsoft.com /supportAb/articles/ql65/8/63.asp

STOP 0x0000001 Е - KMODE_EXGEPTION_NOT_HANDLED

Это сообщение STOP, известное также как STOP Ox IE, указывает на то, что процесс режима ядра пытался выполнить недопустимую инструкцию.

Рекомендации. Проблема может быть вызвана несовместимыми аппаратными средствами, некорректно работающим драйвером или системным сер-

висом. Как правило, второй параметр этого сообщения идентифицирует проблемный драйвер или устройство его адресом (иногда может указываться имя этого драйвера). Попробуйте загрузить компьютер в безопасном режиме и блокировать указанный драйвер. Если это не поможет, то, как правило проблему можно решить с помощью консоли восстановления (Recovery Console) (см. главу 8).

В ряде случаев может помочь блокирование кэширования памяти через программу BIOS Setup.

STOP 0x00000024 - NTFS_FILE_SYSTEM

Это сообщение, известное также как STOP 0x24, указывает на проблему с драйвером Ntfs.sys, позволяющим системе выполнять чтение информации с томов NTFS и запись на такие тома.

Рекомендации. Чаще всего ошибка вызвана повреждением файловой системы NTFS или сбойными кластерами на жестком диске. Поврежденные драйверы SCSI и IDE также вызывают эту ошибку.

Рекомендации, позволяющие избежать ошибки такого рода приведены в начале главы 8. Если ошибка все же возникла, запустите программу Chkdsk /f /r для устранения повреждений файловой системы.

STOP OX0000002E - DATA_BUS_ERROR

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

Рекомендации. Если ошибка возникла после установки нового аппаратного компонента, попробуйте удалить вновь установленное оборудование. Запустите диагностические утилиты, полученные от поставщика аппаратных средств. Иногда ошибка может быть вызвана повреждением жесткого диска, — в этом случае воспользуйтесь консолью восстановления (Recovery Console).

STOP 0x00000050 - PAGE_FAULT_IN_NONPAGED_AREA

Эти сообщения (STOP 0x50) появляются, когда запрошенные данные не найдены в памяти. Система при этом генерирует так называемую страничную ошибку или страничное прерывание (page fault),/которая при обычных условиях означает, что система ищет данные в файле подкачки (paging file), В этом случае, однако, искомые данные идентифицируются системой как находящиеся в резидентном, невыгружаемом пуле (nonpaged pool), а это значит, что они ни при каких обстоятельствах не могли быть сброшены на диск. Таким образом, система не может найти требуемые данные и, следовательно, не может продолжать работу. Этот тип ошибки может быть вызван дефектными аппаратными средствами, некорректно работающим системным сервисом, резидентным антивирусным программным обеспечением, несовместимым с Windows XP, и повреждениями файловой системы NTFS.

Рекомендации. Если ошибка произошла сразу же после установки нового устройства, попробуйте удалить его, чтобы проверить повторяемость ошибки. Чтобы исключить отказ уже установленных аппаратных средств, запустите диагностическую утилиту, полученную от поставщика компьютера (чаще всего эта ошибка генерируется дефектными микросхемами RAM).

В случае несовместимых или некорректно работающих системных сервисов можно попытаться использовать последнюю успешно загруженную конфигурацию (см. главу 8). Если проблема вызвана повреждением тома NTFS, ее поможет решить запуск программы Chkdsk /f /r. Иногда помогает запрет кэширования памяти в BIOS.

STOP 0x00000077 - KERNEL_STACKJNPAGE_ERROR

Сообщения STOP (STOP 0x77) указывают, что ядро не может прочесть запрошенную страницу из файла подкачки.

Рекомендации. Чаще всего причину возникновения этой ошибки можно определить по второму параметру сообщения (значение этого параметра следует записать). Список наиболее распространенных кодов приведен ниже:

0хС000009А - STATUS_INSUFFICIENT_RESOURCES. Недостаточный объем нерезидентного (выгружаемого) пула.
0хС000009С - STATUS_DEVICE_DATA_ERROR. Чаще всего является результатом появления плохих блоков на жестком диске.
0xC000009D- STATUS_DEVICE_NOT_CONNECTED. Чаще всего указывает на неправильное подключение жесткого диска.
0хС00001бА - STATUS_DISK_OPERATION_FAILED. Чаще всего вызывается плохими блоками на жестком диске.
0Xc0000ISS — STATUS_IO_DEVJCE_ERROR. Чаще всего возникает при неправильном подключении устройств SCSI или при попытке двух устройств использовать одно и то же прерывание.

Это наиболее распространенные коды, полный список можно найти в файле Ntstatus.h, входящем в состав продукта Windows XP Device Driver Kit (DDK).

STOP 0x00000079 - MISMATCHED_HAL

Эти сообщения (STOP 0x79) появляются при несовпадении уровня аппаратных абстракций (HAL) и ядра или типа компьютера, в основном, при смешении конфигурационных файлов однопроцессорной и многопроцессорных систем в пределах одной системы.

Рекомендации. Чаще всего эта ошибка возникает после ручной модификации или переписывания файлов Ntoskrnl.exe и Hal.dll. Эта ошибка может также указывать на несовпадение версий этих файлов (например, версия HAL предназначена для Windows NT 4.0, а версия ядра — для Windows XP). Возможно также, что на компьютере по ошибке используется мультипроцессорный HAL и однопроцессорное ядро (или наоборот). Для устранения этой проблемы необходимо использовать диск аварийного восстановления (ERD) или консоль восстановления (см. главу 8).

STOP 0x0000007А - KERNEL_DATA_INPAGE_ERROR

Это сообщение (STOP 0x7А) указывает на то, что запрошенная страница данных ядра не могла быть считана в память из файла подкачки. Обычно ошибка вызвана появлением плохих блоков в файле подкачки, вирусами, ошибками контроллера жесткого диска или дефектной RAM.

Рекомендации. Выполните сканирование системы на вирусы, проверьте правильность подключения дисков и запустите диагностические утилиты, полученные от поставщика аппаратных средств. В случае необходимости проведите восстановление системы с помощью консоли восстановления.

STOP 0х0000007В - INACCESSIBLE_BOOT_DEVICE

Это сообщение (STOP 0x7B) появляется в процессе запуска системы и указывает на то, что в процессе загрузки ОС Windows XP потеряла доступ к загрузочному диску.

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

Возможно, проблема может быть решена редактированием файла Boot.ini. Более подробную информацию по данному вопросу можно найти в статье из Microsoft Knowledge Base "BOOT.INI and ARC Path Naming Conventions and Usage " (http://support.microsoft.eom/support/kb/articles/ql02/8/73.asp) Если такая ошибка возникает в процессе установки системы, возможно, используется несовместимый жесткий диск или контроллер SCSI. Если программа Setup автоматически распознала контроллер, возможно, при установке системы следует пропустить фазу детектирования (поиска оборудования) и вручную указать драйвер, который должен быть загружен. Для этого: когда система на текстовой фазе инсталляции предложит нажать клавишу <F6>, чтобы указать драйвер накопителя вручную, следует нажать клавишу и вставить дискету с драйвером, полученным от поставщика этого устройства.

Если в системе недавно было установлено новое устройство (особенно жесткие диски или контроллеры), поможет выбор опции Загрузка последней удачной конфигурации в меню, выводимом после нажатия клавиши <F8>.

Наконец, эта ошибка может быть следствием повреждения жесткого диска. Если ошибка появляется раньше, чем вы можете зарегистрироваться в системе, запустите консоль восстановления и дайте команду chkdsk /f /r.

STOP OX0000007F - UNEXPECTED_KERNEL_MO0E_TRAP

Сообщения STOP 0x7F указывают на фатальную ошибку, вызванную программным прерыванием. Иногда эти ошибки могут быть вызваны программным обеспечением, но в большинстве случаев они являются следствием аппаратного сбоя.

Рекомендации. Первый и самый главный параметр этого сообщения (0х0000000х) принимает различные значения в зависимости от типа ошибки (полный список всех кодов можно найти в Windows XP Device Driver Kit).

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

Убедитесь в том, что все жесткие диски, контроллеры и адаптеры SCSI перечислены в HCL и установлены правильно. Чтобы исключить аппаратный сбой одного из устройств, которое раньше работало нормально (особенно это относится к памяти), запустите диагностические утилиты, полученные от поставщика компьютера. Следует отметить, что эта ошибка может также быть вызвана неумелым разгоном процессора (в этом случае верните процессор к его штатной тактовой частоте).

STOP ОхС000021 А - STATUS_SYSTEM_PROCESS_TERMINATED

Редкий случай, когда сообщение STOP вызвано сбоем сервиса, работающего не в режиме ядра, а в режиме пользователя. Это сообщение (STOP 0xC21A) появляется когда одна, из подсистем (например, Winlogon или CSRSS), настолько повреждена, что Windows. XP не может гарантировать безопасности и переключается в режим ядра с генерацией .этой ошибки.

Рекомендации. Подробную информацию о кодах статуса этой ошибки (первый из трех параметров) можно найти в файле Ntstatus.h, входящем в состав программного продукта Windows XP Device Driver Kit (DDK).

Поскольку ошибка STOP OxC21A происходит в режиме пользователя, наиболее .вероятной ее причиной являются плохо работающие приложения третьих фирм. Воспользуйтесь опцией Загрузка последней удачной конфигурации.

STOP OxC0000221 - STATUS _IMAGE_CHECKSUM_MISMATCH

Это сообщение STOP (STOP OxC221) указывает на повреждение драйвера или системного файла DLL. Как правило, в сообщении STOP указывается имя файла, вызвавшего проблему.

Рекомендации. См. главу 8.

Отладка ядра

Отладка ядра оказывается исключительно полезным средством, когда все другие методы устранения ошибок STOP не помогли, или когда проблема повторяется часто. В этих случаях отладка предоставляет способ определить, какой именно код драйвера дает сбой, путем перехватывания точного текста сообщения об ошибке.

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

Сообщение STOP, "синий экран" или прерывание

Когда операционная система Windows NT/XP сталкивается с аппаратными проблемами, противоречивостью данных, необходимых для ее работы, или иными подобными ошибками, она обрабатывает эту ситуацию на основании информации, введенной в диалоговом окне Загрузка и восстановление.

Если пользователь в этом диалоговом окне не указал опцию Выполнить автоматическую перезагрузку, Windows NT/XP отображает синий экран, на который выводится информация об ошибке, после чего работа операционной системы останавливается.

В Базе знаний Microsoft и другой документации по Windows NT/XP это состояние часто называется "синим экраном" (blue screen), ошибкой ядра (kernel STOP error) или программной ловушкой (software trap). Все эти термины используются для обозначения таких состояний операционной системы, когда ядро, обнаружив ошибку, может выполнить запись в файл Дампа памяти (эта процедура может являться частью процесса обработки ошибки).

Символы и деревья символов

Как правило, при компиляции кода могут быть созданы две версии исполняемого файла — отладочная версия (debug version, известная также под названием checked version) и обычная (nodebug или free). Отладочная версия содержит дополнительный код, который позволяет разработчику отлаживать программу. Файл отладочной версии имеет больший размер и исполняется медленнее. Обычная версия исполняемого файла компактнее и исполняется быстрее, но не позволяет осуществлять отладку.

Все исполняемые файлы, DLL, драйверы и другие программы представляют собой обычные (неотладочные) версии. Каждому программному файлу ставится в соответствие символьный файл, который содержит отладочный код. Отладочная версия Windows XP, а также инструкции по ее установке входят в состав программного продукта Windows XP Device Driver Kit (DDK). Отладочная версия находится в подкаталоге Symbols, который содержит подкаталоги для файлов каждого типа (exe, dll, sys). Эта структура называется символьным деревом (symbol tree).

Утилитам, используемым для отладки Windows NT/XP или для интерпретации файлов дампа памяти, требуется символьное дерево, в котором содержатся символьные файлы соответствующей версии Windows NT/XP (на момент, когда имеет место ошибка ядра STOP). Некоторые утилиты требуют, чтобы подкаталог \Symbols находился на жестком диске в каталоге %SystemRoot%. Некоторые утилиты допускают указание пути к подкаталогу \Symbols в качестве одной из опций командной строки (в режиме командной строки или в диалоговом окне).

Отладка ядра требует наличия двух компьютеров — так называемого целевого компьютера (target machine) и хост-компьютера (host machine).

Целевой компьютер

Термин "целевой компьютер" (target computer) относится к компьютеру, на котором происходит ошибка ядра STOP. Именно этот компьютер и является отлаживаемым. Он может располагаться где угодно — как в нескольких шагах от компьютера, на котором работает отладчик, так и на достаточно большом расстоянии (связь можно поддерживать через модем).

Хост-компьютер

Термин "хост-компьютер" (host computer) в данной главе относится к компьютеру, на котором вы запускаете отладчик. Этот компьютер должен работать под управлением версии Windows XP, по крайней мере такой же (или более новой), как и отлаживаемый компьютер.

Отладчик ядра

Программный продукт Windows XP DDK содержит графический отладчик WinDbg, применяемый для отладки драйверов и приложений, работающих как в режиме пользователя, так, и в режиме ядра. Подробная информация об использовании и конфигурировании отладчика содержится в файле справочной системы, поставляемом в комплекте с отладчиком.

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

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

Оба компьютера обмениваются отладочной информацией через коммуникационные порты. Порты на обоих компьютерах должны быть сконфигурированы на одну и ту же скорость передачи данных, выраженную в битах в секунду (бит/с).

После появления "синего экрана" запишите всю важную информацию, которая была выведена в сообщении, и перезагрузите компьютер. Возможно, вам потребуется сконфигурировать целевой компьютер для локальной, ил и удаленной отладки и перезагрузить систему еще раз. После этого вы можете работать с Windows XP до тех пор, пока сообщение не появится снова. Когда "синий экран" появится еще раз, обратитесь к местному специалисту технической поддержки за помощью. На этом этапе можно решить, как будет проводиться отладка (локально или удаленно). Специалисты технической поддержки могут проинструктировать вас по вопросам конфигурирования системы для отладки.

Установка отладочного сеанса

Если принято решение использовать отладчик ядра для анализа ошибки ядра STOP, вам потребуется установить хост и соединить целевой и хост-компьютеры. Для этого необходимо использовать нуль-модемный кабель (в случае проведения локального отладочного сеанса) или модемный кабель (в случае удаленной отладки).

Прежде чем начинать отладку, выполните подготовительные действия:

1. Установите соединение между двумя компьютерами через модем или нуль-модемный кабель.
2. Сконфигурируйте целевой компьютер для отладки.
3. Установите в хост-системе символьное дерево.
4. Установите в хост-системе отладчик.
5. Запустите отладчик в хост-системе.

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

Чтобы сконфигурировать систему для удаленной отладки, необходимо изменить загрузочные опции Windows XP таким образом, чтобы на этапе за-

грузки выполнялась загрузка отладчика ядра. На платформах х86 это делается nyfeivr редактирования файла Boot.ini. Кроме того, необходимо подключить внешний модем к соответствующему СОМ-порту целевого компьютера и соединить его с входным (inbound) телефонным каналом.

Установка модема на целевом компьютере. Чтобы установить сеанс удаленной отладки, необходимо подключить к целевому компьютеру внешний модем и переконфигурировать параметры модема таким образом, чтобы они соответствовали требованиям отладчика ядра. Чтобы сконфигурировать модем; необходимо иметь возможность запустить программу Terminal.exe или другую подобную коммуникационную утилиту. Если запуск таких программ на левом компьютере невозможен, сконфигурируйте модем на другом компьютере, имеющем близкие конфигурационные параметры. Подключите сконфигурированный модем к целевому компьютеру и убедитесь, что он работает., Использование внутренних модемов в данном случае невозможно, так ,как при перезагрузке система сбрасывает изменения, внесенные в их конфигурацию.

Модем необходимо подключить к свободному СОМ-порту и установить конфигурационные параметры:

Auto answer mode

Hardware compression

Error detection

Flow control .

On

Disabled

Disabled

Disabled

Рекомендуются скорости передачи данных: 9600 бит/с для систем х86

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

Редактирование файла Boot.ini на целевом компьютере. Чтобы сконфигурировать отлаживаемый компьютер для проведения сеанса отладки, необходимо отредактировать опции загрузки в файле Boot.ini таким образом, чтобы Windows NT загрузила отладчик ядра.

Опции отладчика. Ниже перечислены опции отладчика, которые можно использовать при конфигурировании системы для сеанса отладки.

/Debug

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

/Debugport

Указывает последовательный порт, который должен использоваться отладчиком ядра. Если последовательный порт не указан, на компьютерах х86 отладчик по умолчанию будет использовать порт COM2

/Crashdebug

Отладчик загружается при загрузке системы, но остается неактивным до тех пор, пока не произойдет сбой. Это позволяет другим приложениям использовать указанный СОМ-порт (по умолчанию используется СОМ1) в течение всего времени, пока система еще работает

/Baudrate

Задает скорость передачи данных, которую будет использовать отладчик ядра. По умолчанию задается скорость 19 200 бит/с, которая является нормальной при удаленной отладке через модем

Чтобы сконфигурировать отлаживаемый компьютер на платформе х86, отредактируйте файл Boot.ini при помощи стандартного текстового редактора и добавьте в этот файл соответствующие опции отладчика.

Дополнительные источники информации

К сожалению, здесь невозможно более подробно описать интереснейшую и увлекательнейшую (хотя и весьма сложную) тему устранения ошибок STOP, анализа аварийного дампа и работу с отладочным сеансом.

Авторы считают своим долгом отослать заинтересованных читателей к источникам информации, где они могут получить исчерпывающие ответы на все интересующие их вопросы. Вот список этих источников:

http://msdn.microsoft.com/developer/wmdowsXP — масса полезной информации для разработчиков, в том числе можно загрузить версию Windows XP Device Driver Kit.

http://mspress.mkrosoft.com/Reslink — информация о продуктах Resource Kit.

http://www.microsoft.com/hwdev/driver/Ntdebugging.htm — ссылки на дополнительные источники с информацией по отладке.

http://www.microsoft.com/HWTEST/sysdocs/ntdebug.htm — полный справочник по отладке, начиная с установки отладочного режима и заканчивая подробным списком всех команд отладчика ядра.

http://support.microsoft.com/support/ — статьи Microsoft Knowledge Base, содержащие полную и подробную информацию об устранении ошибок STOP.

">



Отладчик ядра



Отладчик ядра

Программный продукт Windows XP DDK содержит графический отладчик WinDbg, применяемый для отладки драйверов и приложений, работающих как в режиме пользователя, так, и в режиме ядра. Подробная информация об использовании и конфигурировании отладчика содержится в файле справочной системы, поставляемом в комплекте с отладчиком.

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

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

Оба компьютера обмениваются отладочной информацией через коммуникационные порты. Порты на обоих компьютерах должны быть сконфигурированы на одну и ту же скорость передачи данных, выраженную в битах в секунду (бит/с).

После появления "синего экрана" запишите всю важную информацию, которая была выведена в сообщении, и перезагрузите компьютер. Возможно, вам потребуется сконфигурировать целевой компьютер для локальной, ил и удаленной отладки и перезагрузить систему еще раз. После этого вы можете работать с Windows XP до тех пор, пока сообщение не появится снова. Когда "синий экран" появится еще раз, обратитесь к местному специалисту технической поддержки за помощью. На этом этапе можно решить, как будет проводиться отладка (локально или удаленно). Специалисты технической поддержки могут проинструктировать вас по вопросам конфигурирования системы для отладки.




Отладка ядра



Отладка ядра

Отладка ядра оказывается исключительно полезным средством, когда все другие методы устранения ошибок STOP не помогли, или когда проблема повторяется часто. В этих случаях отладка предоставляет способ определить, какой именно код драйвера дает сбой, путем перехватывания точного текста сообщения об ошибке.

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




Пример экрана сообщения STOP



Рисунок 15.1. Пример экрана сообщения STOP

Составные части сообщения STOP

В отличие от предыдущих версий Windows NT, где экран сообщения STOP состоит из пяти основных частей, экран сообщения STOP в Windows XP (Рисунок 15.1) содержит только три части:

Информация кода ошибки (bugcheck information)
Рекомендации пользователю (recommended user action)
Информация отладочного порта (debug port information)

При появлении сообщения STOP рекомендуется в первую очередь ознакомиться с информацией кода ошибки, помогающей ее устранить. Одно из важных нововведений в Windows XP — теперь сообщения STOP включают рекомендации пользователю по устранению ошибок. Наконец, третья часть экрана сообщения STOP содержит информацию о сохранении отладочного дампа памяти, который впоследствии может быть использован отладчиком ядра.

Информация кода ошибки

Первый раздел экрана сообщения STOP называется разделом информации кода ошибки (bugcheck information section). Он содержит код ошибки STOP (STOP code), за которым может следовать до четырех заключенных в скобки параметров, определенных разработчиком, а также символьное имя ошибки.

На Рисунок 15.1 показан экран с кодом ошибки 0x000000IE (символьное имя KMODE_EXCEPTION_NOT_HANDLED).

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

Примечание

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

Рекомендации пользователю

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

Информация отладочного порта

Наконец, последний раздел сообщения STOP - это раздел информации отладочного порта (debug port information). В этом разделе содержится информация о коммуникационных параметрах (СОМ-порт и скорость передачи данных на компьютер, с которого будет производиться отладка) Эта ин-4к”рмация выводится, если в системе активизирован отладчик ядра (kernel debugger). Помимо этого, в данном разделе приводится информация о сохранении файла дампа памяти (если эта функция активизирована).

Подготовка к устранению проблем

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

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

которая гарантирует их совместимость и корректную работу в Windows XP.-Во избежание возникновения проблем рекомендуется Пользоваться этими средствами, подробно описанными в главе 8. Так вы существенно снизите риск появления ошибок STOP.

Если даже вы сами никогда не будете выяснять причину возникновения ошибки — предположим, за вас это сделает специалист службы технической поддержки, — рекомендуется хотя бы сконфигурировать систему так, чтобы облегчить ему эту задачу. Вызовите утилиту Система (System) на панели управления, в раскрывшемся диалоговом окне Свойства системы (System Properties) перейдите на вкладку Дополнительно (Advanced) и нажмите кнопку Загрузка и восстановление (Startup and Recovery). На экране появится окно Загрузка и восстановление (Рисунок 15.2).


Рекомендации по устранению ошибок STOP



Рекомендации по устранению ошибок STOP

Общая методика

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

Шаг 1. В первую очередь попробуйте перезагрузить компьютер. В некоторых случаях, если ошибка возникла случайно, этого достаточно. Что делать, если в процессе загрузки Windows XP постоянно появляется "синий экран", после чего компьютер автоматически перезагружается, и ошибка появляется снова? Это может происходить, если в процессе подготовки к устранению последствий ошибок STOP вы установите в окне Загрузка и восстановление опцию автоматической перезагрузки компьютера при крахе системы, а ошибка STOP, делающая невозможной дальнейшую работу компьютера, будет возникать вновь и вновь. Легко догадаться, что каждый раз после ее появления компьютер будет перезагружаться, и цикл перезагрузок будет бесконечным. Как же выйти из этого порочного круга и хотя бы получить возможность исследовать, возникающую ошибку, STOP? Данную проблему можно решить, установив на другом разделе жесткого диска этого компьютера еще одну копию Windows XP (одна из официальных рекомендаций Microsoft, которая приводится, например, в главах по обеспечению отказоустойчивости системы в продуктах Resource Kit):

1. Загрузите вторую копию Windows XP, вызовите приложение Regedt32 и перейдите в окно HKEYJLOCALJMACHINE.
2. В меню Реестр (Registry) выберите команду Загрузить куст (Load Hive) и загрузите куст System той копии Windows XP, в которой возникла проблема (хотя подробная информация о местоположении кустов реестра

приведена в главе 14, напомним, что они располагаются в папке %SystemRoot%\System32\Config).

3. Когда вам будет предложено указать имя для загружаемого куста, введите любую строку, например, oldsystem.

После этого окно HKEY_LOCAL_MACHINE (рис, 15.3) будет содержать список следующих кустов:

HARDWARE oldsystem SAM SECURITY SOFTWARE SYSTEM


Символы и деревья символов



Символы и деревья символов

Как правило, при компиляции кода могут быть созданы две версии исполняемого файла — отладочная версия (debug version, известная также под названием checked version) и обычная (nodebug или free). Отладочная версия содержит дополнительный код, который позволяет разработчику отлаживать программу. Файл отладочной версии имеет больший размер и исполняется медленнее. Обычная версия исполняемого файла компактнее и исполняется быстрее, но не позволяет осуществлять отладку.

Все исполняемые файлы, DLL, драйверы и другие программы представляют собой обычные (неотладочные) версии. Каждому программному файлу ставится в соответствие символьный файл, который содержит отладочный код. Отладочная версия Windows XP, а также инструкции по ее установке входят в состав программного продукта Windows XP Device Driver Kit (DDK). Отладочная версия находится в подкаталоге Symbols, который содержит подкаталоги для файлов каждого типа (exe, dll, sys). Эта структура называется символьным деревом (symbol tree).

Утилитам, используемым для отладки Windows NT/XP или для интерпретации файлов дампа памяти, требуется символьное дерево, в котором содержатся символьные файлы соответствующей версии Windows NT/XP (на момент, когда имеет место ошибка ядра STOP). Некоторые утилиты требуют, чтобы подкаталог \Symbols находился на жестком диске в каталоге %SystemRoot%. Некоторые утилиты допускают указание пути к подкаталогу \Symbols в качестве одной из опций командной строки (в режиме командной строки или в диалоговом окне).

Отладка ядра требует наличия двух компьютеров — так называемого целевого компьютера (target machine) и хост-компьютера (host machine).




Сообщение STOP "синий экран" или прерывание



Сообщение STOP, "синий экран" или прерывание

Когда операционная система Windows NT/XP сталкивается с аппаратными проблемами, противоречивостью данных, необходимых для ее работы, или иными подобными ошибками, она обрабатывает эту ситуацию на основании информации, введенной в диалоговом окне Загрузка и восстановление.

Если пользователь в этом диалоговом окне не указал опцию Выполнить автоматическую перезагрузку, Windows NT/XP отображает синий экран, на который выводится информация об ошибке, после чего работа операционной системы останавливается.

В Базе знаний Microsoft и другой документации по Windows NT/XP это состояние часто называется "синим экраном" (blue screen), ошибкой ядра (kernel STOP error) или программной ловушкой (software trap). Все эти термины используются для обозначения таких состояний операционной системы, когда ядро, обнаружив ошибку, может выполнить запись в файл Дампа памяти (эта процедура может являться частью процесса обработки ошибки).




Сообщения STOP появляющиеся при



Сообщения STOP, появляющиеся при инициализации исполняющей подсистемы (Executive)

Некоторые из сообщений STOP могут появляться только в течение относительно краткого периода инициализации модуля Executive (это — четвертая фаза загрузки Windows XP). Исполняющая подсистема Windows XP (Windows XP Executive) — это набор программных компонентов, предоставляющих базовые сервисы операционной системы. Как и при загрузке Windows NT 4.0, загрузку модуля Executive можно разделить на два этапа (этап 0 и этап 1). Во время этапа 0 прерывания блокированы, инициализированы лишь немногие компоненты модуля Executive, такие как уровень аппаратных абстракций (HAL). Во время выполнения этапа 1 система становится полностью работоспособной, и все компоненты Windows NT/XP проходят инициализацию.

Если вы получите одно из сообщений STOP, появляющихся только на этапе 0 инициализации модуля Executive, запустите программу диагностики аппаратных средств, полученную от поставщика аппаратных средств. Сообщения STOP, появление которых возможно только на этапе 0 инициализации модуля Executive, перечислены в табл. 15.1.

Примечание
Примечание

Аппаратные сбои в Windows XP часто проявляются как ошибки, генерирующие сообщения STOP. Если при диагностике аппаратных средств не будет обнаружено никаких проблем, попытайтесь переустановить Windows XP. Если сообщение появится вновь, обратитесь в службу технической поддержки.



Сообщения STOP появляющиеся в процессе установки Windows XP



Сообщения STOP, появляющиеся в процессе установки Windows XP

Одним из вероятных вариантов исхода неудачной попытки установки Windows XP может быть появление сообщения STOP. Если это произойдет, в первую очередь проверьте все периферийные устройства компьютера на совместимость с Windows XP. Для этого возьмите последнюю версию списка совместимых аппаратных средств Windows XP (HCL). Все компьютеры и устройства, включенные в этот список, тестировались Microsoft в жестких условиях и были признаны совместимыми с Windows XP. Список совместимости постоянно обновляется по мере того, как тестирование проходят все новые и новые устройства; его последнюю версию всегда можно найти на веб-сервере Microsoft.

Если используемое вами устройство не указано в HCL, обратитесь к поставщику устройства, т. к. только он может предоставить информацию о вновь тестируемых аппаратных средствах и/или доступных обновлениях BIOS. Кроме того, это сотрудничество позволит свести к минимуму трудозатраты при выявлении конфликтов инсталляции.




Сообщения STOP вызванные программными прерываниями



Сообщения STOP, вызванные программными прерываниями

Эта группа сообщений STOP вызывается программными (или внутренними) прерываниями, или ловушками (software traps). Такие прерывания появляются при возникновении программных ошибок, после которых нормальное продолжение программы невозможно: например, при наличии в команде недопустимых операндов, при попытке деления на нуль, в случае выхода индекса массива за пределы допустимых значений или при обращении к памяти, находящейся за пределами стека.

Пример первой строки сообщения STOP, отображаемой для подобных сообщений STOP:

*** STOP: 0x0000007F (0x00000000n, 00000000, 00000000, 00000000) UNEXPECTED_KERNEL_MODE_TRAP

Ошибка UNEXPECTED_KERNEL_MODE_TRAP указывает на то, что программная ошибка слишком серьезна и не позволяет продолжать работу. Примерами таких ошибок могут быть, например, деление на ноль или ошибка, возникающая в процессе обработки другой ошибки (так называемая двойная ошибка).

Получив одно из таких сообщений, запишите информацию о коде ошибки STOP и перезагрузите компьютер. Если сообщение появится повторно, для устранения проблемы вы можете принять следующие меры:

Выполнить диагностику проблемы, используя информацию и рекомендации, отображенные на экране сообщения STOP (в разделе рекомендаций пользователю). Дополнительная информация по наиболее распространенным сообщениям STOP, методам диагностики и устранения проблем, вызвавших их появление, приведена в сопроводительной документации к программному продукту Microsoft® Windows® XP Resource Kit.
Обратиться в службу технической поддержки.



Сообщения Windows XP и отладчик



Сообщения Windows XP и отладчик

Поговорим о грустном... чтобы, столкнувшись с неприятной неожиданностью — "синим экраном смерти", вы не погрустнели вдвойне. Возможно, вы уже достаточно хорошо знакомы с Windows XP, но во время работы еще не попадали в такую ситуацию. Хотя эта система и надежнее предыдущих версий Windows NT, это не значит, что "синий экран смерти" — следствие серьезных ошибок — не возникнет никогда. Если даже такие ошибки и не появятся, вы все равно должны быть готовы устранить их!

"Синий экран" и Windows XP

Итак, "синий экран" можно увидеть и в Windows XP. Когда система выявляет серьезную ошибку, которую не может устранить самостоятельно, она, в зависимости от типа ошибки, генерирует соответствующие системные сообщения, которые и известны под собирательным названием "синий экран". В этом разделе мы рассмотрим основные причины возникновения таких ошибок в Windows XP и классифицируем их по типам.

Как и в Windows NT, исполняющая подсистема Windows XP (модуль Executive) представляет собой часть операционной системы, работающую в режиме ядра. Режим ядра (kernel mode) — это привилегированный режим работы процессора, в котором поток (thread) имеет доступ к системной памяти и к аппаратным средствам. Режимом пользователя (user mode) называется непривилегированный режим работы процессора, выполняясь в котором поток не имеет прямого доступа к системной памяти и аппаратным средствам, для получения такого доступа он должен обратиться к сервисам операционной системы. Модуль Executive обеспечивает структуру процессов, диспетчеризацию потоков, межпроцессную коммуникацию, управление памятью, управление объектами, безопасность и защиту объектов, обработку прерываний и ввод/вывод.

Ядро Windows NT/XP представляет собой часть модуля Executive, управляющую процессором. Ядро выполняет диспетчеризацию потоков, обработку исключении и прерываний, а также мультипроцессорную синхронизацию. Кроме того ядро, ядро поставляет модулю Executive объекты-примитивы, из которых он создает объекты режима пользователя.

Итак, существуют два типа системных сообщений Windows XP:

Сообщения;STOP. Генерируются в символьном режиме и появляются, когда ядро Windows XP выявит противоречивое состояние, из которого оно не способно выйти самостоятельно.
Сообщения о неисправности аппаратуры (Hardware malfunction messages). Как и сообщения STOP, эти сообщения также генерируются в символьном режиме. Их появление указывает на то, что система обнаружила аппаратную ошибку, после которой продолжение работы невозможно.

Практически для каждой ситуации, делающей невозможным продолжение работы системе Windows XP предусмотрены соответствующие сообщения. Как правило, для диагностики сообщений Windows XP и устранения причин, вызвавших их появление большинству пользователей требуется техническая поддержка. Однако системный администратор должен иметь навыки устранения последствий аппаратных сбоев и уметь интерпретировать сообщения STOP.




STOP 0х00000000А IRQL_NOT_LESS_OR_EQUAL



STOP 0х00000000А - IRQL_NOT_LESS_OR_EQUAL

Это сообщение STOP, известное также под названием STOP OxA, указывает на то, что процесс режима ядра пытался получить доступ к участку памяти на слишком высоком уровне запроса прерывания (Interrupt Request Level, IRQL), в то время как такие процессы могут получать доступ только к процессам с IRQL не более высоким, чем их собственный,

Рекомендации. Чаще всего эта ошибка бывает вызвана некорректно работающим драйвером устройств, системным сервисом или BIOS. Чтобы попытаться быстро выполнить восстановление после такой ошибки, попробуйте перезагрузить компьютер, при появлении списка доступных операционных систем нажмите клавишу <F8> и выберите опцию Загрузка последней удачной конфигурации.

Примечание
Примечание

Использование этой опции наиболее эффективно, если установка драйверов, сервисов и устройЬтв производится по одному за раз

Если сообщение появляется во время установки Windows XP, просмотрите HCL и убедитесь в том, что все установленные на компьютере периферийные устройства перечислены в этом списке.

Более подробная информация об диагностике ошибок STOP 0xA приведена в статье из MicrosQft, Knowledge, Base "Troubleshooting: 'Stop 0x0A' Messages in Windows XP которую можно найти по адресу http://support.microsoft.com /supportAb/articles/ql65/8/63.asp




STOP 0х0000007В INACCESSIBLE_BOOT_DEVICE



STOP 0х0000007В - INACCESSIBLE_BOOT_DEVICE

Это сообщение (STOP 0x7B) появляется в процессе запуска системы и указывает на то, что в процессе загрузки ОС Windows XP потеряла доступ к загрузочному диску.

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

Возможно, проблема может быть решена редактированием файла Boot.ini. Более подробную информацию по данному вопросу можно найти в статье из Microsoft Knowledge Base "BOOT.INI and ARC Path Naming Conventions and Usage " (http://support.microsoft.eom/support/kb/articles/ql02/8/73.asp) Если такая ошибка возникает в процессе установки системы, возможно, используется несовместимый жесткий диск или контроллер SCSI. Если программа Setup автоматически распознала контроллер, возможно, при установке системы следует пропустить фазу детектирования (поиска оборудования) и вручную указать драйвер, который должен быть загружен. Для этого: когда система на текстовой фазе инсталляции предложит нажать клавишу <F6>, чтобы указать драйвер накопителя вручную, следует нажать клавишу и вставить дискету с драйвером, полученным от поставщика этого устройства.

Если в системе недавно было установлено новое устройство (особенно жесткие диски или контроллеры), поможет выбор опции Загрузка последней удачной конфигурации в меню, выводимом после нажатия клавиши <F8>.

Наконец, эта ошибка может быть следствием повреждения жесткого диска. Если ошибка появляется раньше, чем вы можете зарегистрироваться в системе, запустите консоль восстановления и дайте команду chkdsk /f /r.




STOP 0x0000001 Е KMODE_EXGEPTION_NOT_HANDLED



STOP 0x0000001 Е - KMODE_EXGEPTION_NOT_HANDLED

Это сообщение STOP, известное также как STOP Ox IE, указывает на то, что процесс режима ядра пытался выполнить недопустимую инструкцию.

Рекомендации. Проблема может быть вызвана несовместимыми аппаратными средствами, некорректно работающим драйвером или системным сервисом. Как правило, второй параметр этого сообщения идентифицирует проблемный драйвер или устройство его адресом (иногда может указываться имя этого драйвера). Попробуйте загрузить компьютер в безопасном режиме и блокировать указанный драйвер. Если это не поможет, то, как правило проблему можно решить с помощью консоли восстановления (Recovery Console) (см. главу 8).

В ряде случаев может помочь блокирование кэширования памяти через программу BIOS Setup.




STOP 0x0000007А KERNEL_DATA_INPAGE_ERROR



STOP 0x0000007А - KERNEL_DATA_INPAGE_ERROR

Это сообщение (STOP 0x7А) указывает на то, что запрошенная страница данных ядра не могла быть считана в память из файла подкачки. Обычно ошибка вызвана появлением плохих блоков в файле подкачки, вирусами, ошибками контроллера жесткого диска или дефектной RAM.

Рекомендации. Выполните сканирование системы на вирусы, проверьте правильность подключения дисков и запустите диагностические утилиты, полученные от поставщика аппаратных средств. В случае необходимости проведите восстановление системы с помощью консоли восстановления.




STOP 0x00000024 NTFS_FILE_SYSTEM



STOP 0x00000024 - NTFS_FILE_SYSTEM

Это сообщение, известное также как STOP 0x24, указывает на проблему с драйвером Ntfs.sys, позволяющим системе выполнять чтение информации с томов NTFS и запись на такие тома.

Рекомендации. Чаще всего ошибка вызвана повреждением файловой системы NTFS или сбойными кластерами на жестком диске. Поврежденные драйверы SCSI и IDE также вызывают эту ошибку.

Рекомендации, позволяющие избежать ошибки такого рода приведены в начале главы 8. Если ошибка все же возникла, запустите программу Chkdsk /f /r для устранения повреждений файловой системы.




STOP 0x00000050 PAGE_FAULT_IN_NONPAGED_AREA



STOP 0x00000050 - PAGE_FAULT_IN_NONPAGED_AREA

Эти сообщения (STOP 0x50) появляются, когда запрошенные данные не найдены в памяти. Система при этом генерирует так называемую страничную ошибку или страничное прерывание (page fault),/которая при обычных условиях означает, что система ищет данные в файле подкачки (paging file), В этом случае, однако, искомые данные идентифицируются системой как находящиеся в резидентном, невыгружаемом пуле (nonpaged pool), а это значит, что они ни при каких обстоятельствах не могли быть сброшены на диск. Таким образом, система не может найти требуемые данные и, следовательно, не может продолжать работу. Этот тип ошибки может быть вызван дефектными аппаратными средствами, некорректно работающим системным сервисом, резидентным антивирусным программным обеспечением, несовместимым с Windows XP, и повреждениями файловой системы NTFS.

Рекомендации. Если ошибка произошла сразу же после установки нового устройства, попробуйте удалить его, чтобы проверить повторяемость ошибки. Чтобы исключить отказ уже установленных аппаратных средств, запустите диагностическую утилиту, полученную от поставщика компьютера (чаще всего эта ошибка генерируется дефектными микросхемами RAM).

В случае несовместимых или некорректно работающих системных сервисов можно попытаться использовать последнюю успешно загруженную конфигурацию (см. главу 8). Если проблема вызвана повреждением тома NTFS, ее поможет решить запуск программы Chkdsk /f /r. Иногда помогает запрет кэширования памяти в BIOS.




STOP 0x00000077 KERNEL_STACKJNPAGE_ERROR



STOP 0x00000077 - KERNEL_STACKJNPAGE_ERROR

Сообщения STOP (STOP 0x77) указывают, что ядро не может прочесть запрошенную страницу из файла подкачки.

Рекомендации. Чаще всего причину возникновения этой ошибки можно определить по второму параметру сообщения (значение этого параметра следует записать). Список наиболее распространенных кодов приведен ниже:

0хС000009А - STATUS_INSUFFICIENT_RESOURCES. Недостаточный объем нерезидентного (выгружаемого) пула.
0хС000009С - STATUS_DEVICE_DATA_ERROR. Чаще всего является результатом появления плохих блоков на жестком диске.
0xC000009D- STATUS_DEVICE_NOT_CONNECTED. Чаще всего указывает на неправильное подключение жесткого диска.
0хС00001бА - STATUS_DISK_OPERATION_FAILED. Чаще всего вызывается плохими блоками на жестком диске.
0Xc0000ISS — STATUS_IO_DEVJCE_ERROR. Чаще всего возникает при неправильном подключении устройств SCSI или при попытке двух устройств использовать одно и то же прерывание.

Это наиболее распространенные коды, полный список можно найти в файле Ntstatus.h, входящем в состав продукта Windows XP Device Driver Kit (DDK).




STOP 0x00000079 MISMATCHED_HAL



STOP 0x00000079 - MISMATCHED_HAL

Эти сообщения (STOP 0x79) появляются при несовпадении уровня аппаратных абстракций (HAL) и ядра или типа компьютера, в основном, при смешении конфигурационных файлов однопроцессорной и многопроцессорных систем в пределах одной системы.

Рекомендации. Чаще всего эта ошибка возникает после ручной модификации или переписывания файлов Ntoskrnl.exe и Hal.dll. Эта ошибка может также указывать на несовпадение версий этих файлов (например, версия HAL предназначена для Windows NT 4.0, а версия ядра — для Windows XP). Возможно также, что на компьютере по ошибке используется мультипроцессорный HAL и однопроцессорное ядро (или наоборот). Для устранения этой проблемы необходимо использовать диск аварийного восстановления (ERD) или консоль восстановления (см. главу 8).




STOP ОхС000021 А STATUS_SYSTEM_PROCESS_TERMINATED



STOP ОхС000021 А - STATUS_SYSTEM_PROCESS_TERMINATED

Редкий случай, когда сообщение STOP вызвано сбоем сервиса, работающего не в режиме ядра, а в режиме пользователя. Это сообщение (STOP 0xC21A) появляется когда одна, из подсистем (например, Winlogon или CSRSS), настолько повреждена, что Windows. XP не может гарантировать безопасности и переключается в режим ядра с генерацией .этой ошибки.

Рекомендации. Подробную информацию о кодах статуса этой ошибки (первый из трех параметров) можно найти в файле Ntstatus.h, входящем в состав программного продукта Windows XP Device Driver Kit (DDK).

Поскольку ошибка STOP OxC21A происходит в режиме пользователя, наиболее .вероятной ее причиной являются плохо работающие приложения третьих фирм. Воспользуйтесь опцией Загрузка последней удачной конфигурации.




STOP OX0000002E DATA_BUS_ERROR



STOP OX0000002E - DATA_BUS_ERROR

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

Рекомендации. Если ошибка возникла после установки нового аппаратного компонента, попробуйте удалить вновь установленное оборудование. Запустите диагностические утилиты, полученные от поставщика аппаратных средств. Иногда ошибка может быть вызвана повреждением жесткого диска, — в этом случае воспользуйтесь консолью восстановления (Recovery Console).




STOP OX0000007F UNEXPECTED_KERNEL_MO0E_TRAP



STOP OX0000007F - UNEXPECTED_KERNEL_MO0E_TRAP

Сообщения STOP 0x7F указывают на фатальную ошибку, вызванную программным прерыванием. Иногда эти ошибки могут быть вызваны программным обеспечением, но в большинстве случаев они являются следствием аппаратного сбоя.

Рекомендации. Первый и самый главный параметр этого сообщения (0х0000000х) принимает различные значения в зависимости от типа ошибки (полный список всех кодов можно найти в Windows XP Device Driver Kit).

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

Убедитесь в том, что все жесткие диски, контроллеры и адаптеры SCSI перечислены в HCL и установлены правильно. Чтобы исключить аппаратный сбой одного из устройств, которое раньше работало нормально (особенно это относится к памяти), запустите диагностические утилиты, полученные от поставщика компьютера. Следует отметить, что эта ошибка может также быть вызвана неумелым разгоном процессора (в этом случае верните процессор к его штатной тактовой частоте).




STOP OxC0000221 STATUS



STOP OxC0000221 - STATUS

_IMAGE_CHECKSUM_MISMATCH

Это сообщение STOP (STOP OxC221) указывает на повреждение драйвера или системного файла DLL. Как правило, в сообщении STOP указывается имя файла, вызвавшего проблему.

Рекомендации. См. главу 8.




Сообщения STOP появляющиеся



Таблица 15.1. Сообщения STOP, появляющиеся только на этапе инициализации исполняющей подсистемы Windows XP

Код сообщения

Символическое имя

0x0031

PHASED JNITIALIZATION_FAILED

0x0050 0x0050 0x00SE 0x00SF 0x0060

HAL_INITIALIZATION_FAILED HEAP_INITIALIZATION_F AILED OBJECT_INmALIZATION_FAILED SECURITY_INITIALIZATION_FAILED PROCESS_INITIALIZATION_FAILED

Сообщения STOP, которые могут появиться на этапе 1 инициализации модуля Executive, перечислены в табл. 15.2. Получив одно из таких сообщений, попытайтесь переустановить Windows XP, и если сообщение появится снова, обратитесь в службу технической поддержки,



Сообщения STOP Появляющиеся



Таблица 15.2. Сообщения STOP, Появляющиеся только на этапе 1 инициализации исполняющей подсистемы Windows XP

Код сообщения

Символическое имя

0x0032

0x0061

0x0062

0x0063

0x0064

0x0065

0x0066

0x0067

0x0068

0x0069

0х006А

0х006В

0х006С

0x0060

0х006Е

0х006Р

0x0070

0x0071

PHASE 1 _INITIALIZATION_FAILED

HAL1_INITIALIZATION_FAILED OBJECT1

_IN1TIALIZATION_FAILED SECURITY1

JNITIALIZATION_FAILED

SYMBOLIC_INITIALIZATION_FAILED

MEMORY1JNITIALIZATION_FAILED

CHEJNITIALIZATION_FAILED CONFIG

JNITIALIZATION_FAILED

FILE_INITIALIZATION_FAILED

IO1_INITIALIZATION_FAILED

LPCJNITIALIZATION_FAILED

PROCESSt_INITiAUZATION_FAILED

REFMONJNITIALIZATION_FAILED

SESSION1_INITIALIZATION_FAILED

SESSION2JNITIALIZAT1ON_FAILED SESSION

JNmAUZATION_FA|LED

SESSION4JNITIALIZATION_FAILED

SESSION5JNITIALIZATION_FAILED

Сообщения STOP, вызванные программными прерываниями

Эта группа сообщений STOP вызывается программными (или внутренними) прерываниями, или ловушками (software traps). Такие прерывания появляются при возникновении программных ошибок, после которых нормальное продолжение программы невозможно: например, при наличии в команде недопустимых операндов, при попытке деления на нуль, в случае выхода индекса массива за пределы допустимых значений или при обращении к памяти, находящейся за пределами стека.

Пример первой строки сообщения STOP, отображаемой для подобных сообщений STOP:

*** STOP: 0x0000007F (0x00000000n, 00000000, 00000000, 00000000) UNEXPECTED_KERNEL_MODE_TRAP

Ошибка UNEXPECTED_KERNEL_MODE_TRAP указывает на то, что программная ошибка слишком серьезна и не позволяет продолжать работу. Примерами таких ошибок могут быть, например, деление на ноль или ошибка, возникающая в процессе обработки другой ошибки (так называемая двойная ошибка).

Получив одно из таких сообщений, запишите информацию о коде ошибки STOP и перезагрузите компьютер. Если сообщение появится повторно, для устранения проблемы вы можете принять следующие меры:

Выполнить диагностику проблемы, используя информацию и рекомендации, отображенные на экране сообщения STOP (в разделе рекомендаций пользователю). Дополнительная информация по наиболее распространенным сообщениям STOP, методам диагностики и устранения проблем, вызвавших их появление, приведена в сопроводительной документации к программному продукту Microsoft® Windows® XP Resource Kit.
Обратиться в службу технической поддержки.
Сообщения, свидетельствующие о неполадках в работе аппаратных средств

Сообщения, свидетельствующие о неполадках в работе аппаратных средств, вызываются тем, что процессор выявляет ошибочные состояния устройств. Первые две строки таких сообщений могут различаться (в зависимости от типа HAL (Hardware Abstraction. Layer), загруженного при запуске системы). Типичный пример первых строк такого сообщения приведен ниже:

Hardware malfunction

Call your hardware vendor for support

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

Примечание

В редких ситуациях сообщения об аппаратном сбое в действительности могут быть вызваны ошибками в программах, в особенности — плохо разработанными драйверами.

Рекомендации по устранению ошибок STOP Общая методика

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

Шаг 1. В первую очередь попробуйте перезагрузить компьютер. В некоторых случаях, если ошибка возникла случайно, этого достаточно. Что делать, если в процессе загрузки Windows XP постоянно появляется "синий экран", после чего компьютер автоматически перезагружается, и ошибка появляется снова? Это может происходить, если в процессе подготовки к устранению последствий ошибок STOP вы установите в окне Загрузка и восстановление опцию автоматической перезагрузки компьютера при крахе системы, а ошибка STOP, делающая невозможной дальнейшую работу компьютера, будет возникать вновь и вновь. Легко догадаться, что каждый раз после ее появления компьютер будет перезагружаться, и цикл перезагрузок будет бесконечным. Как же выйти из этого порочного круга и хотя бы получить возможность исследовать, возникающую ошибку, STOP? Данную проблему можно решить, установив на другом разделе жесткого диска этого компьютера еще одну копию Windows XP (одна из официальных рекомендаций Microsoft, которая приводится, например, в главах по обеспечению отказоустойчивости системы в продуктах Resource Kit):

1. Загрузите вторую копию Windows XP, вызовите приложение Regedt32 и перейдите в окно HKEYJLOCALJMACHINE.
2. В меню Реестр (Registry) выберите команду Загрузить куст (Load Hive) и загрузите куст System той копии Windows XP, в которой возникла проблема (хотя подробная информация о местоположении кустов реестра

приведена в главе 14, напомним, что они располагаются в папке %SystemRoot%\System32\Config).

3. Когда вам будет предложено указать имя для загружаемого куста, введите любую строку, например, oldsystem.

После этого окно HKEY_LOCAL_MACHINE (рис, 15.3) будет содержать список следующих кустов:

HARDWARE oldsystem SAM SECURITY SOFTWARE SYSTEM


Типы сообщений STOP



Типы сообщений STOP

Сообщения STOP можно классифицировать по следующим категориям:

Сообщения, появляющиеся в процессе работы Windows XP
Сообщения, появляющиеся во время установки Windows XP
Сообщения, появляющиеся в процессе загрузки Windows XP
Сообщения, вызванные программными ловушками (software trap)
Сообщения STOP, появляющиеся в процессе работы с Windows XP

Наиболее распространенные сообщения STOP генерируются во время выполнения стандартных повседневных операций. Даже в такой отказоустойчивой операционной системе, как Windows NT/XP, иногда происходит зависание системы с невозможностью продолжения работы, и появляется "синий экран" (сообщение STOP). В Windows NT/XP появление сообщения STOP может быть вызвано необрабатываемым исключением (unhandled exception) в коде драйвера или файловой системы или выполнением недопустимой инструкции.

Примечание

Подробный список сообщений STOP, которые могут возникнуть а процессе работы с Windows XP, а также информация об их диагностике и устранении, приведены в Microsoft Knowledge Base в статье Q103059 "Descriptions of Bug Codes for Windows XP".

Сообщения STOP, появляющиеся в процессе установки Windows XP

Одним из вероятных вариантов исхода неудачной попытки установки Windows XP может быть появление сообщения STOP. Если это произойдет, в первую очередь проверьте все периферийные устройства компьютера на

совместимость с Windows XP. Для этого возьмите последнюю версию списка совместимых аппаратных средств Windows XP (HCL). Все компьютеры и устройства, включенные в этот список, тестировались Microsoft в жестких условиях и были признаны совместимыми с Windows XP. Список совместимости постоянно обновляется по мере того, как тестирование проходят все новые и новые устройства; его последнюю версию всегда можно найти на веб-сервере Microsoft.

Если используемое вами устройство не указано в HCL, обратитесь к поставщику устройства, т. к. только он может предоставить информацию о вновь тестируемых аппаратных средствах и/или доступных обновлениях BIOS. Кроме того, это сотрудничество позволит свести к минимуму трудозатраты при выявлении конфликтов инсталляции.

Сообщения STOP, появляющиеся при инициализации исполняющей подсистемы (Executive)

Некоторые из сообщений STOP могут появляться только в течение относительно краткого периода инициализации модуля Executive (это — четвертая фаза загрузки Windows XP). Исполняющая подсистема Windows XP (Windows XP Executive) — это набор программных компонентов, предоставляющих базовые сервисы операционной системы. Как и при загрузке Windows NT 4.0, загрузку модуля Executive можно разделить на два этапа (этап 0 и этап 1). Во время этапа 0 прерывания блокированы, инициализированы лишь немногие компоненты модуля Executive, такие как уровень аппаратных абстракций (HAL). Во время выполнения этапа 1 система становится полностью работоспособной, и все компоненты Windows NT/XP проходят инициализацию.

Если вы получите одно из сообщений STOP, появляющихся только на этапе 0 инициализации модуля Executive, запустите программу диагностики аппаратных средств, полученную от поставщика аппаратных средств. Сообщения STOP, появление которых возможно только на этапе 0 инициализации модуля Executive, перечислены в табл. 15.1.

Примечание

Аппаратные сбои в Windows XP часто проявляются как ошибки, генерирующие сообщения STOP. Если при диагностике аппаратных средств не будет обнаружено никаких проблем, попытайтесь переустановить Windows XP. Если сообщение появится вновь, обратитесь в службу технической поддержки.



Установка отладочного сеанса



Установка отладочного сеанса

Если принято решение использовать отладчик ядра для анализа ошибки ядра STOP, вам потребуется установить хост и соединить целевой и хост-компьютеры. Для этого необходимо использовать нуль-модемный кабель (в случае проведения локального отладочного сеанса) или модемный кабель (в случае удаленной отладки).

Прежде чем начинать отладку, выполните подготовительные действия:

1. Установите соединение между двумя компьютерами через модем или нуль-модемный кабель.
2. Сконфигурируйте целевой компьютер для отладки.
3. Установите в хост-системе символьное дерево.
4. Установите в хост-системе отладчик.
5. Запустите отладчик в хост-системе.

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

Чтобы сконфигурировать систему для удаленной отладки, необходимо изменить загрузочные опции Windows XP таким образом, чтобы на этапе за-

грузки выполнялась загрузка отладчика ядра. На платформах х86 это делается nyfeivr редактирования файла Boot.ini. Кроме того, необходимо подключить внешний модем к соответствующему СОМ-порту целевого компьютера и соединить его с входным (inbound) телефонным каналом.

Установка модема на целевом компьютере. Чтобы установить сеанс удаленной отладки, необходимо подключить к целевому компьютеру внешний модем и переконфигурировать параметры модема таким образом, чтобы они соответствовали требованиям отладчика ядра. Чтобы сконфигурировать модем; необходимо иметь возможность запустить программу Terminal.exe или другую подобную коммуникационную утилиту. Если запуск таких программ на левом компьютере невозможен, сконфигурируйте модем на другом компьютере, имеющем близкие конфигурационные параметры. Подключите сконфигурированный модем к целевому компьютеру и убедитесь, что он работает., Использование внутренних модемов в данном случае невозможно, так ,как при перезагрузке система сбрасывает изменения, внесенные в их конфигурацию.

Модем необходимо подключить к свободному СОМ-порту и установить конфигурационные параметры:

Auto answer mode

Hardware compression

Error detection

Flow control .

On

Disabled

Disabled

Disabled

Рекомендуются скорости передачи данных: 9600 бит/с для систем х86

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

Редактирование файла Boot.ini на целевом компьютере. Чтобы сконфигурировать отлаживаемый компьютер для проведения сеанса отладки, необходимо отредактировать опции загрузки в файле Boot.ini таким образом, чтобы Windows NT загрузила отладчик ядра.

Опции отладчика. Ниже перечислены опции отладчика, которые можно использовать при конфигурировании системы для сеанса отладки.

/Debug

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

/Debugport

Указывает последовательный порт, который должен использоваться отладчиком ядра. Если последовательный порт не указан, на компьютерах х86 отладчик по умолчанию будет использовать порт COM2

/Crashdebug

Отладчик загружается при загрузке системы, но остается неактивным до тех пор, пока не произойдет сбой. Это позволяет другим приложениям использовать указанный СОМ-порт (по умолчанию используется СОМ1) в течение всего времени, пока система еще работает

/Baudrate

Задает скорость передачи данных, которую будет использовать отладчик ядра. По умолчанию задается скорость 19 200 бит/с, которая является нормальной при удаленной отладке через модем

Чтобы сконфигурировать отлаживаемый компьютер на платформе х86, отредактируйте файл Boot.ini при помощи стандартного текстового редактора и добавьте в этот файл соответствующие опции отладчика.



">