Книга: 2.Внутреннее устройство Windows (гл. 5-7)

Ведение протокола при загрузке в безопасном режиме

Ведение протокола при загрузке в безопасном режиме

Если вы загружаете систему в безопасном режиме, Ntldr передает ядру Windows вместе с параметрами, устанавливающими безопасный режим, и параметр /BOOTLOG. При инициализации ядро проверяет наличие параметра /BOOTLOG независимо от того, задан ли безопасный режим. Если ядро обнаруживает соответствующую строку, оно протоколирует все свои действия при загрузке каждого драйвера. Так, если функция IopSafeBootDriverLoad запрещает загрузку какого-либо драйвера, диспетчер ввода-вывода вызывает функцию IopBootLog, регистрируя, что данный драйвер не загружен. Аналогичным образом после успешной загрузки драйвера, входящего в конфигурацию безопасного режима, IopLoadDriver вызывает IopBootLog для внесения записи о загрузке этого драйвера. Изучив файлы протокола загрузки, можно выяснить, какие драйверы являются частью данной конфигурации.

Поскольку ядро избегает изменения данных на диске до запуска Chkdsk, который происходит на более позднем этапе загрузки, IopBootLog не может просто сбрасывать записи в файл. Вместо этого она записывает их в раздел реестра HKLMSYSTEMCurrentControlSetBootLog. Диспетчер сеансов (Smss), первый загружаемый компонент пользовательского режима, запускает Chkdsk для проверки целостности системного диска, а потом завершает инициализацию реестра, вызывая NtInitializeRegistry. Этот вызов указывает ядру, что уже можно безопасно открыть на диске файл протокола, что и делается вызовом IopCopyBootLogRegistryToFile. Эта функция создает в системном каталоге Windows (по умолчанию — Windows) файл Ntbtlog.txt и копирует в него содержимое раздела реестра BootLog. IopCopyBootLogRegistryToFile также устанавливает флаг, сигнализирующий IopBootLog о возможности записи непосредственно в файл протокола. Ниже показан фрагмент образца такого файла.

Service Pack 1 3 30 2004 14:05:21.500

Loaded driver WIND0WSsystem32ntoskrnl.exe

Loaded driver WIND0WSsystem32hal.dll

Loaded driver WIND0WSsystem32KDC0M.DLL

Loaded driver WIND0WSsystem32B00TVID.dll

Loaded driver ACPI.sys

Loaded driver WIND0WSSystem32DRIVERSWMILIB.SYS

Loaded driver pci.sys

Loaded driver isapnp.sys

Loaded driver intelide.sys

Loaded driver WIND0WSSystem32DRIVERSPCIIDEX.SYS

Loaded driver MountMgr.sys

Loaded driver ftdisk.sys

Loaded driver dmload.sys

Loaded driver dmio.sys Microsoft (R)Windows 2000 (R)Version 5.0 (Build 2195) 2 11 2000 10:53:27.500

Loaded driver WINNT System32 ntoskrnl.exe

Loaded driver WINNT System32 hal.dll

Loaded driver WINNT System32 B00TVID.DLL

Loaded driver ACPI.sys

Loaded driver WINNT System32 DRIVERS WMILIB.SYS

Loaded driver pci.sys

Loaded driver isapnp.sys

Loaded driver compbatt.sys

Loaded driver WINNT System32 DRIVERS BATTC.SYS

Loaded driver intelide.sys

Loaded driver WINNT System32 DRIVERS PCIIDEX.SYS

Loaded driver pcmcia.sys

Loaded driver ftdisk.sys

Loaded driver Diskperf.sys

Loaded driver dmload.sys

Loaded driver dmio.sys

Did not load driver SystemRootSystem32Driverslbrtfdc.SYS

Did not load driver SystemRootSystem32DriversSfloppy.SYS

Did not load driver SystemRootSystem32Driversi2omgmt.SYS

Did not load driver Media Control Devices

Did not load driver Communications Port

Did not load driver Audio Codecs

Оглавление книги

Оглавление статьи/книги

Генерация: 1.248. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз