Раздел: Документация
0 ... 88 89 90 91 92 93 94 ... 102 деление базового адреса вообще возможно). Воспользовавшись любым подходящим отладчиком (например, soft-ice от Нумсга или i386kd от Microsoft), введем команду, распечатывающую перечень загруженных драйверов с их краткими характеристиками (в i386kd это осуществляется командой !drivers). Как одним из вариантов можно воспользоваться утилитой drivers.exe, входящей в NTDDK. но, какой бы вы путь ни выбрали, результат будет приблизительно следующим: kd> !drivers!drivers Loaded System Driver Summary Base Code Size Data Sue Driver Name Creation Time 80400000 I42dc0 (1291 kb) 4d680 (309 kD) ntoskrnl.exe Wed Dec 08 02:41:11 1999 80062000 cc20 ( 51 kb) 32c0 ( 12 kb) hal.dll Wed Nov 03 04:14:22 1999 f4010000 1760 ( 5 kb) 1000 ( 4 kb) B00TV1D.DLL Thu Nov 04 04:24:33 1999 Dffd8000 21ee0 с 135 kb) 59a0 ( 22 kb) ACPI.sys Thu Nov 11 04:06:04 1999 bel93C00 16f60 ( 91 kb) cccO ( 51 kb) knixer.sys Wed Nov 10 09:52:30 1999 bddb40C0 355e0 ( 213 kb) ЮасО ( 66 kb) ATMFD.DLL Fri Nov 12 06:48:40 1999 ЬевОаООО 200 ( 0 kb) aOO ( 2 kb) w2k ki11.sys Mon Aug 28 02:40:12 2000 1CTAL: 835ca0 (8407 kb) 326180 (3224 kb) ( 0 kb 0 kb) Обратите внимание на выделенную полужирным строку с именем w2k kill. sys, найденную по ее базовому адресу 0хВЕ80А00. Это и есть тот самый драйвер, который нам нужен! А впрочем, этого можно и не делать, поскольку имя «неправильного» драйвера и без того присутствует на голубом экране; • Две нижние строки отражают прогресс сброса дампа на диск, развлекая на это время администратора чередой быстро меняющихся циферок. Таблица А.1. Физический смысл наиболее популярных Bug Check-кодов с краткими пояснениями. Определение рейтинга популярности Bug Check-кодов осуществлялось путем подсчета упоминаний о них в конференциях Интернета (спасибо старику Googly) Hex-код Символьное имяОписание ОхОА IRQLNOTLESSOREQUAL Драйвер попытался обратиться к странице памяти на уровне DISPATCH LEVEL или более высоком, что и привело к краху, поскольку менеджер виртуальной памяти работает на более низком уровне (это частая ошибка разработчиков, и, чтобы беда не застала вас врасплох, тщательно тестируйте все драйверы, устанавливаемые в систему. В состав DDK входит замечательная утилита driver verifier, — которая гоняет драйверы в хвост и гриву). Источником сбоя может быть и BIOS, и драйвер, и системный сервис (особенно этим грешат вирусные сканеры и FM-тюнеры)- Как вариант — проверьте кабельные терминаторы на SCSI-накопителях и Master/Slayer на IDE, отключите кэширование памяти в BIOS. Если и это не поможет, обратитесь к четырем параметрам Bug Check-кода, содержащим ссылку на память, к которой осуществлялся доступ, уровень IRQL, тип доступа (чтение/запись) и адрес машинной инструкции драйвера Таблица А.1 (продолжение) Hex-код Символьное имя Oxli KMODEEXCEPTIONNOTHANDLED 0x24 NTFSFILESYSTEM 0х2Е DATA BUS ERROR 0x35 N0 M0RE IRP STACK L0CATI0NS Описание Компонент ядра возбудил исключение и «забыл» его обработать; номер исключения содержится в первом Bug Check-параметре. Обычно он принимает одно из следующих значений-0x80000003 (STATUSBREAKPOINT): встретилась программная точка останова — отладочный рудимент, по небрежности не удаленный разработчиком дравйера; (0хС0000005) STATUSACCESSVIOLATION: доступ к запрещенному адресу (четвертый Bug Check-параметр уточняет, к какому) — ошибка разработчика; (0хС000021А) STATUS SYSTEM PROCESS TERMINATED: сбой процессов CSRSS и/или Winlogon, источником которого могут быть как компоненты ядра, так и пользовательские приложения; обычно это происходит при заражении машины вирусом или нарушении целостности системных файлов. (0хС0000221) STATUS IMAGE CHECSUM MISMATCH: целостность одного из системных файлов оказалась нарушена; второй Bug Check-параметр содержит адрес машинной команды, возбудившей исключение Проблема с драйвером NTFS.SYS, обычно возникающая вследствие физического разрушения диска, реже — при остром недостатке физической оперативной памяти Драйвер обратился к несуществующему физическому адресу; если только это не ошибка драйвера; оперативная память и/или кэш-память процессора (видеопамять) неисправны или же работают на запредельных тактовых частотах Драйвер более высокого уровня обратился к драйверу более низкого уровня через IoCallDriver-интерфейс, однако свободного пространства в IRP-стеке не оказалось, и передать весь IRP-пакет целиком не удалось. Это гибельная ситуация, не имеющая прямых решений; попытайтесь удалить один или несколько наименее нужных драйверов, быть может, тогда система заработает Hex-код Символьное имя 0x3F NOMORESYSTEMPTES 0x50 PAGE FAULT IN NONPAGED AREA 0x58 FTDISK INTERNAL ERROR 0x76 PROCESSHASLOCKEDPAGES Описание Результат сильной фрагментации таблицы РТЕ, приводящей к невозможности выделения затребованного драйвером блока памяти; обычно это характерно для аудио/видеодрайверов, манипулирующих огромными блоками памяти и к тому же не всегда их вовремя освобождающих; для решения проблемы попробуйте увеличить кол-во РТЕ (до 50 ООО максимум) в следующей ветке peecTpa:HLLM\SYSTEM\ CurrentControlSet\Control\ Session Manager\Memory Management\SystemPages Обращение к несуществующей странице памяти, вызванное либо неисправностью оборудования (как правило — оперативной-, видео- или кэш-памяти), либо некорректно спроектированным сервисом (этим грешат многие антивирусы, в том числе Касперский и Доктор Веб), либо разрушениями NTFS-тома (запустите chkdsk с ключами /f и /г), также попробуйте запретить кэширование памяти в BIOS Сбой RAID-массива — при попытке загрузки с основного диска система обнаружила, что он поврежден, тогда она обратилась к его зеркалу, но таблицы разделов не оказалось и там Драйвер не смог освободить залоченные страницы после завершения операции ввода/вывода; для определения имени дефектного драйвера следует обратиться к ветке реестра: HKLM\SYSTEM\CurrentControlSet\ Control\Session Manager\ Memory Management, и установить параметр . TrackLockedPages типа DWORD в значение 1, потом перезагрузить систему, после чего та будет сохранять трассируемый стек, и, если нехороший драйвер вновь начнет «чудить», возникнет BSOD с Bug Check-кодом ОхСВ, позволяющим определить виновника 0 ... 88 89 90 91 92 93 94 ... 102
|