Загрузка и инициализация драйверов устройств

На этом этапе ядро Windows 2000 выполняет инициализацию низкоуровневых драйверов устройств, загруженных на стадии загрузки ядра. Если один из драйверов не удается инициализировать, система принимает корректирующие меры, используя параметр реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DriverName\ErrorControl

Определение драйверов для загрузки

После инициализации базовых драйверов Ntoskrnl.exe сканирует реестр в поисках драйверов устройств, значение параметра Start у которых равно 0x01. Эти драйверы загружаются в порядке, определяемом их принадлежностью к определенной группе.

Порядок загрузки драйверов определяется двумя ключевыми параметрами реестра:

Раздел реестра, содержащий порядок загрузки групп драйверов:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder

Различие между драйверами ядра и драйверами устройств

В отличие от драйверов, загружаемых на стадии загрузки ядра, драйверы устройств, у которых Start = 0x01, загружаются не через BIOS или микропрограммы ПЗУ, а с помощью драйверов, уже загруженных и инициализированных ядром.

При возникновении ошибок во время инициализации драйверов система снова обращается к значению параметра ErrorControl в реестре соответствующего драйвера. В зависимости от этого параметра Windows 2000 может либо игнорировать ошибку, либо прервать загрузку, либо перейти в режим восстановления.

Дополнительная информация

Более подробную информацию о приоритете загрузки драйверов можно найти в разделе Раздел Memory Management, где рассматриваются механизмы управления памятью, используемые при загрузке Windows 2000.