Изтеглянето на шофьорите в безопасен режим - прозорци ennee устройства (Ch

Изтеглянето на шофьорите в безопасен режим

Когато зареждането на сигурно режим предава Ntldr ядрото (Ntoskrnl.exe), заедно с други параметри, определени в сегашния вариант Boot.ini обувка параметъра от командния ред / SAFEBOOT. прибавяне към тях на един или няколко реда, в зависимост от вида на защитен режим. За стандарт безопасен режим Ntldr добавя минимално, за безопасен режим с мрежа - мрежа, безопасен режим с команден ред - МИНИМАЛНА (ALTERNATESHELL), а за Услугите директорията Restore - DSREPAIR.

Ядрото на Windows сканира параметри за стартиране в търсенето на безопасен режим спецификатори и определя стойността на вътрешна променлива InitSafeBootMode в съответствие с резултатите от търсенето. Стойността на тази променлива се записва в раздел HKLM \ System \ CurrentControlSet Control \ SafeBoot \ Вариант \ OptionValue \, което позволява на потребителя компоненти режим (например ВСС) определи системата на режима на стартиране. Освен това, при избора на безопасен режим с команден ред, ядрото присвоява стойността 1 до параметъра UseAlternateShell в регистър ключ HKLM \ SYSTEM \ CurrentControlSet Control \ SafeBoot \ Вариант \. В допълнение, ядрото пише параметрите предават на Ntldr, в раздел HKLM \ SYSTEM \ CurrentControlSet \ Control \ SystemStartOptions.

Когато О мениджър зарежда драйверите за устройствата, изброени в HKLM \ SYSTEM \ CurrentControlSet \ Services, тя изпълнява функция IopLoadDriver. А когато диспечер щепсела и да играе разпознава новото устройство и иска да динамично зареждане на драйвер за това устройство, то извиква функция IopCallDriverAddDevice. И двете от тези функции, преди да изтеглите драйвери се обръщат към функция IopSafeBootDriverLoad. Последните проверки на стойността на променливата InitSafeBootMode и определя дали да се зареди на водача, колкото е възможно. Например, ако системата е обувка в безопасен режим, стандартен, IopSafeBootDriverLoad търси група от водачи (ако има такива) в Минимално сечение. Намирането това, IopSafeBootDriverLoad уведоми нарича функцията, че водачът може да бъде изтеглен. В противен случай IopSafeBootDriverLoad търси в едноименната секция на шофьора. Ако тя е в списъка, водачът може да бъде изтеглен. Ако IopSafeBootDriverLoad не в списък или група името на драйвера на това се забранява да изтеглите. При зареждане на системата в безопасен режим с мрежа търсения подкрепа IopSafeBootDriverLoad в подраздел мрежа, а в случай на начално зареждане на системата обикновено IopSafeBootDriverLoad позволява изтеглянето на всички драйвери.

Въпреки Ntldr натоварвания всички шофьори, в които съответните секции Започнете регистрирате стойност е 0, което показва необходимостта от тяхното натоварване по време на стартиране на системата. Защото Ntldr не проверява SafeBoot на разпределение (ако приемем, че е необходимо всеки водач с нулева стойност от стойността старт за успешното стартиране на системата), тя зарежда всички зареждане шофьори, които впоследствие се движат Ntoskrnl.