Завантаження та ініціалізація драйверів пристроїв

Тепер ядро ​​инициализирует низькорівневі драйвери пристроїв, які були завантажені на стадії завантаження ядра. У разі помилки при ініціалізації одного з драйверів система робить коригувальну дію, ґрунтуючись на даних, визначених параметром реєстру HKEY_LOCAL_MACHINE \ SYSTEMXCurrent ControlSet \ Services \ DriverName \ ErrorControl.

Далі Ntoskrnl.exe сканує реєстр, на цей раз - в пошуках драйверів пристроїв, для яких значення ключа реєстру HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ DriverWarae \ Start встановлено як 0x01. Значення Group для кожного драйвера пристрою визначає порядок, в якому проводиться їх завантаження. Ключ реєстру HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ ServiceGroupOrder визначає порядок завантаження.

На відміну від фази завантаження ядра, драйвери пристроїв, для яких параметр start має значення 0x01, завантажуються не за рахунок викликів BIOS, а за допомогою драйверів пристроїв, завантажених на стадії завантаження ядра і тільки що ініціалізованих на цій стадії. Обробка помилок в процесі ініціалізації цієї групи драйверів пристроїв також заснована на значенні елемента ErrorControl для відповідних драйверів пристроїв.

Windows XP здійснює одночасну ініціалізацію драйверів, що скорочує час завантаження. Системі не потрібно чекати закінчення ініціалізації кожного пристрою, т. К. Багато пристроїв дозволяють проводити паралельну ініціалізацію. При цьому на час завантаження визначальний вплив робить саме "повільне" пристрій.

Схожі статті