Список драйверов для загрузки windows

Windows Порядок загрузки драйверов и сервисов в Windows

Dragokas

Very kind Developer

Тем, кому интересно внутреннее устойство операционной системы Windows, предлагаю небольшое исследование. Мы попробуем выяснить, что отвечает за порядок загрузки драйверов и сервисов в Windows и можно ли этот порядок изменить.

Прежде всего посмотрим текущий порядок запуска системы с помощью программы LoadOrder от Sysinternals. Программа покажет нам, что и в каком порядке загружается при запуске операционной системы.

Как видно из рисунка, сначала загружаются драйверы устройств, необходимые для запуска системы, а потом различные Windows-сервисы. Поскольку между загрузкой сервисов и загрузкой драйверов есть некоторые различия, рассматривать их будем по отдельности.

В качестве подопытного возьмем драйвер Microsoft ACPI (Advanced Configuration and Power Interface), который отвечает за обнаружение аппаратного обеспечения и управление питанием. Задача ACPI — обеспечить взаимодействие между операционной системой и аппаратным обеспечением, поэтому драйвер ACPI загружается в самом начале.

Программа Loadorder предоставляет довольно ограниченную информацию о порядке загрузки, поэтому за более точными данными идем в реестр. У каждого драйвера и Windows-сервиса есть свой раздел в ветви реестра HKLM\SYSTEM\CurrentControlSet\Services. Названы разделы по имени драйвера\сервиса, соответственно нам нужен раздел ACPI.

За порядок загрузки драйвера отвечают три параметра реестра. Основной параметр Start — определяет тип запуска драйвера. Вот правила, по которым драйверы устанавливают значение своего параметра Start:

• Драйверы, которые должны загружаться системным загрузчиком при запуске операционной системы, указывают значение Start равное 0 ( запуск при загрузке системы ). Пример — драйверы системных шин и драйвер файловой системы, используемый при загрузке системы;
• Драйвер, который не требуется непосредственно для загрузки системы, указывает в Start значение, равное 1 ( запуск системой ). Пример — стандартный драйвер видеокарты (VgaSave);
• Драйвер, не обязательный для загрузки системы, устанавливает значение Start равным 2 ( автозапуск ). Пример — драйвер многосетевого UNC-npoвайдера (Multiple UNC Provider, MUP), поддерживающий UNC-имена удаленных ресурсов (типа \\Computer\Share);
• Драйверы, не обязательные для работы операционной системы (например, драйверы сетевых адаптеров), указывают значение Start равным 3 ( запуск по требованию ).

Также драйверы устройств могут использовать параметры Group и Tag для контроля порядка своей загрузки при запуске системы. Параметр Group драйверы\сервисы используют, чтобы указать группу, к которой они принадлежат, а порядок загрузки групп определяется параметром List, находящимся в разделе HKLM\SYSTEM\ CurrentControlSet\Control\ServiceGroupOrder\.

Кстати, параметр Group указывать не обязательно. Если драйвер\сервис не входит в какую либо группу, то он загружается в самом конце очереди.

Драйвер может еще больше детализировать порядок своей загрузки с помощью параметра Tag, который указывает конкретную позицию драйвера в группе. Диспетчер ввода-вывода сортирует драйверы в группе по значениям этого параметра, а драйверы, не имеющие параметра Tag, перемещаются в конец списка драйверов группы.

Посмотрев на порядок загрузки, можно подумать что сначала загружаются драйверы с меньшими значениями Tag, потом — с большими, но это не совсем так. Приоритет значений параметров Tag в рамках группы определяется в разделе HKLM\SYSTEM\CurrentControlSet\Control\GroupOrderList.

Для примера откроем двоичный параметр Boot Bus Extender, который соответствует одноименной группе, к которой относится и драйвер ACPI. Параметр представляет из себя набор двойных слов (по 4 байта каждое). Первое слово (выделено красным) задает общую длину переменной (количество двойных слов), в нашем примере 06. Остальные двойные слова как раз и являются тэгами. Драйверу ACPI соответствует тэг, равный 01 (выделен зеленым).

Приоритетность тега определяется не значением тега, а его положением: чем выше расположен тэг, тем выше его приоритет в группе, и тем выше приоритет драйвера, которому этот тэг соответствует. А поскольку 01 выше остальных тегов, то и драйвер ACPI загружается первым в группе.

Порядок загрузки Windows-сервисов несколько отличается от порядка загрузки драйверов. В качестве примера возьмем сервис aвтоматического обновления (wuauserv). Он не особо критичен для работы системы и поэтому грузится в последнюю очередь.

Опять идем в реестр. Параметры запуска сервиса находятся в разделе HKLM\SYSTEM\CurrentControlSet\Services\wuauserv. Я выделил два основных параметра, отвечающих за порядок загрузки данного сервиса.

Читайте также:  Http service on linux

Windows-сервисы запускаются диспетчером управления сервисами (Service Control Manager, SCM) в соответствии со значением параметра Start. Параметр этот для сервисов может принимать следующие значения:

• Авто запуск (2) — сервис запускается автоматически, сразу после запуска основного SCM-процесса Services.exe;
• Запуск по требованию (3) — сервис запускается при необходимости, по требованию какого либо сервиса или программы;
• Отключено (4) — сервис отключен и не запускается ни при каких условиях.

Значения 0 (запуск при загрузке системы) и 1 (запуск системой) для сервисов не могут быть указаны, только для драйверов устройств.

Кроме того, начиная с Windows Vista\Server 2008 для сервисов появился еще один режим запуска — отложенный автозапуск. Отвечает за него параметр DelayedAutoStart = 1, который который указывает SCM произвести автоматический старт данного сервиса с задержкой. SCM запускает службы, для которых выбран отложенный запуск, после загрузки сервисов, отмеченных для автозапуска.

Режимом запуска сервисов можно управлять не только из реестра, но и в графическом режиме, из консоли Службы (Services).

Так же как и драйверы, Windows-сервисы могут использовать параметр Group в своем разделе реестра, чтобы указать группу, к которой они принадлежат. Сейчас, для наглядности, возьмем наш сервис wuauserv, находящийся в самом конце списка загрузки. С помощью ключа Group поместим его в группу Event Log, перезагрузимся и посмотрим порядок загрузки в Loadorder. Как видите, порядок изменился и wuauserv поднялся с последнего места, загрузившись сразу после своего одногруппника — службы eventlog. Правда порядок размещения внутри группы изменить уже не получится, т.к. Tag для сервисов не используется.

И еще один параметр, который косвенно влияет на порядок загрузки сервисов — DependOnService. Он указывает, от каких сервисов зависит данный сервис. Соответственно сервис не загружается, пока не будут загружены сервисы, перечисленные в DependOnService.

Зависимости работают следующим образом — если сервисы находятся в одной группе, то зависимый сервис перемещается в конец списка и запускается после сервисов, от которых зависит. Если же группы разные, то сервис просто не запустится, а SCM выдаст ошибку.

Более наглядно это показано в оснастке Службы, где на вкладке Зависимости (Dependency) указаны как сервисы, от которых зависит данный сервис, так и сервисы, зависящие от него.

Вот мы и выяснили, в каком порядке загружаются драйверы и сервисы в Windows и как этот порядок можно изменить. Но прежде чем бросаться править реестр помните, что порядок загрузки драйверов и сервисов определяется автоматически, и не стоит вносить в него изменения без веской причины. Всего один неправильно выставленный параметр может привести к полной неработоспособности системы, и не факт что ее удасться восстановить. Поэтому, прежде чем приступить к редактированию реестра, обязательно сделайте его резервную копию, а также желательно иметь под рукой загрузочный носитель.

Как посмотреть список всех установленных драйверов Windows

Обычному пользователю не важно знать где находятся и какие драйвера установлены у него, но при появлении каких-то проблем вам может быть полезно посмотреть список всех установленных драйверов Windows. Но кому хочется кликать по каждому пункту в диспетчере устройств?

Как посмотреть список установленных драйверов Windows

Для этой цели у Windows есть встроенная утилита, которая выводит список всех установленных драйверов, что должно облегчить вашу жизнь. Все что вам нужно сделать это в командной строке ввести команду:

Это позволит вам увидеть список драйверов и дату каждого из них. Если вы хотите получить больше информации о драйверах, то можете добавить в команду ключ “/V”, который может использоваться с “| more” для того чтобы список не проматывался автоматически. Существует так же другие способы получить список установленных драйверов Windows, с выгрузкой в CSV файл и показом драйверов, которые вы подписали. Чтобы подробно от этом узнать используйте ключ “/?“.

Использование InstalledDriversList

Если вас отпугивает все что связано с словосочетанием “командная строка”, то можете использовать бесплатную утилиту InstalledDriversList .

InstalledDriversList в Windows

После того как скачали архив с программой, разархивируйте его и запустите утилиту от имени администратора. Перед вам появится список всех установленных драйверов Windows со всеми деталями. С помощью двойного нажатия по нужному драйверу вы можете получить больше информации, такой как дата, версия и местоположение драйвера. Зеленая иконка обозначает что драйвер сейчас используется, если иконка желтая — драйвер установлен, но не активен. Если вы видите красную иконку, значит что с драйвером какие-то проблемы, и вы можете устранить их отключением или удалением данного драйвера.

Читайте также:  Названия mac os по порядку

DriverPack бесплатно установит драйверы и решит проблемы с любыми устройствами

DriverPack — самый удобный и быстрый способ настроить компьютер

DriverPack — самый удобный и быстрый способ настроить компьютер

Наши партнеры

Opera Software — глобальная компания-разработчик браузеров и программного обеспечения для работы в интернете.

Насчитывает более чем 20-летнюю историю. Opera Software участвует в развитии веб-стандартов в рамках проекта W3C. Продуктами Opera пользуются более 350 млн человек во всем мире.

Штаб-квартира расположена в столице Норвегии — Осло.

Яндекс — глобальная компания-разработчик одноименной поисковой системы и популярных интернет-сервисов.

В России, откуда Яндекс родом, его поисковая доля составляет 56,4% (Яндекс.Радар, март 2018). Компания одна из немногих, кто успешно выдерживает конкуренцию с поисковым гигантом Google.

Штаб-квартира расположена в столице России — Москве.

Avast Software — глобальная компания-разработчик программного обеспечения в области информационной безопасности.

Выпускает самый популярный в мире бесплатный антивирус. Каждый месяц программы от Avast предотвращают 1.5 млрд атак на компьютеры и сети.

Штаб-квартира расположена в столице Чехии — Праге.

Из маленькой программы, написанной на чистом энтузиазме 8 лет назад, мы превратились в компанию, которая помогла настроить компьютеры более чем 40 миллионам людей по всему миру!

За эти 8 лет работы программа стала невероятно быстрее и умнее. Сегодня, DriverPack это самая большая в мире база уникальных драйверов, которая расположена на сверхскоростных серверах по всему миру. Для того, чтобы установка драйверов всегда проходила не только быстро, но и максимально качественно, мы используем технологии машинного обучения, что делает наш алгоритм подбора еще лучше и точнее. При всем этом, нам удалось оставить программу абсолютно бесплатной, чтобы каждый желающий мог ей воспользоваться.

Я и моя команда гордимся нашим продуктом и надеемся, что он станет вашим надежным помощником, который сможет быстро настроить любой компьютер. Мы тратим все наше время, чтобы экономить ваше!

Порядок загрузки драйверов и сервисов в Windows

Тем, кому интересно внутреннее устойство операционной системы Windows, предлагаю небольшое исследование. Мы попробуем выяснить, что отвечает за порядок загрузки драйверов и сервисов в Windows и можно ли этот порядок изменить.

Прежде всего посмотрим текущий порядок запуска системы с помощью программы LoadOrder от Sysinternals. Программа покажет нам, что и в каком порядке загружается при запуске операционной системы.

Как видно из рисунка, сначала загружаются драйверы устройств, необходимые для запуска системы, а потом различные Windows-сервисы. Поскольку между загрузкой сервисов и загрузкой драйверов есть некоторые различия, рассматривать их будем по отдельности.

Драйверы

В качестве подопытного возьмем драйвер Microsoft ACPI (Advanced Configuration and Power Interface), который отвечает за обнаружение аппаратного обеспечения и управление питанием. Задача ACPI — обеспечить взаимодействие между операционной системой и аппаратным обеспечением, поэтому драйвер ACPI загружается в самом начале.

Программа Loadorder предоставляет довольно ограниченную информацию о порядке загрузки, поэтому за более точными данными идем в реестр. У каждого драйвера и Windows-сервиса есть свой раздел в ветви реестра HKLM\SYSTEM\CurrentControlSet\Services. Названы разделы по имени драйвера\сервиса, соответственно нам нужен раздел ACPI.

За порядок загрузки драйвера отвечают три параметра реестра. Основной параметр Start — определяет тип запуска драйвера. Вот правила, по которым драйверы устанавливают значение своего параметра Start:

• Драйверы, которые должны загружаться системным загрузчиком при запуске операционной системы, указывают значение Start равное 0 (запуск при загрузке системы). Пример — драйверы системных шин и драйвер файловой системы, используемый при загрузке системы;
• Драйвер, который не требуется непосредственно для загрузки системы, указывает в Start значение, равное 1 (запуск системой). Пример — стандартный драйвер видеокарты (VgaSave);
• Драйвер, не обязательный для загрузки системы, устанавливает значение Start равным 2 (автозапуск). Пример — драйвер многосетевого UNC-npoвайдера (Multiple UNC Provider, MUP), поддерживающий UNC-имена удаленных ресурсов (типа \\Computer\Share);
• Драйверы, не обязательные для работы операционной системы (например, драйверы сетевых адаптеров), указывают значение Start равным 3 (запуск по требованию).

Также драйверы устройств могут использовать параметры Group и Tag для контроля порядка своей загрузки при запуске системы. Параметр Group драйверы\сервисы используют, чтобы указать группу, к которой они принадлежат, а порядок загрузки групп определяется параметром List, находящимся в разделе HKLM\SYSTEM\ CurrentControlSet\Control\ServiceGroupOrder\.

Кстати, параметр Group указывать не обязательно. Если драйвер\сервис не входит в какую либо группу, то он загружается в самом конце очереди.

Читайте также:  Драйвер рутокен lite windows 10 x64

Драйвер может еще больше детализировать порядок своей загрузки с помощью параметра Tag, который указывает конкретную позицию драйвера в группе. Диспетчер ввода-вывода сортирует драйверы в группе по значениям этого параметра, а драйверы, не имеющие параметра Tag, перемещаются в конец списка драйверов группы.

Посмотрев на порядок загрузки, можно подумать что сначала загружаются драйверы с меньшими значениями Tag, потом — с большими, но это не совсем так. Приоритет значений параметров Tag в рамках группы определяется в разделе HKLM\SYSTEM\CurrentControlSet\Control\GroupOrderList.

Для примера откроем двоичный параметр Boot Bus Extender, который соответствует одноименной группе, к которой относится и драйвер ACPI. Параметр представляет из себя набор двойных слов (по 4 байта каждое). Первое слово (выделено красным) задает общую длину переменной (количество двойных слов), в нашем примере 06. Остальные двойные слова как раз и являются тэгами. Драйверу ACPI соответствует тэг, равный 01 (выделен зеленым).

Приоритетность тега определяется не значением тега, а его положением: чем выше расположен тэг, тем выше его приоритет в группе, и тем выше приоритет драйвера, которому этот тэг соответствует. А поскольку 01 выше остальных тегов, то и драйвер ACPI загружается первым в группе.

Сервисы

Порядок загрузки Windows-сервисов несколько отличается от порядка загрузки драйверов. В качестве примера возьмем сервис aвтоматического обновления (wuauserv). Он не особо критичен для работы системы и поэтому грузится в последнюю очередь.

Опять идем в реестр. Параметры запуска сервиса находятся в разделе HKLM\SYSTEM\CurrentControlSet\Services\wuauserv. Я выделил два основных параметра, отвечающих за порядок загрузки данного сервиса.

Windows-сервисы запускаются диспетчером управления сервисами (Service Control Manager, SCM) в соответствии со значением параметра Start. Параметр этот для сервисов может принимать следующие значения:

• Авто запуск (2) — сервис запускается автоматически, сразу после запуска основного SCM-процесса Services.exe;
• Запуск по требованию (3) — сервис запускается при необходимости, по требованию какого либо сервиса или программы;
• Отключено (4) — сервис отключен и не запускается ни при каких условиях.

Значения 0 (запуск при загрузке системы) и 1 (запуск системой) для сервисов не могут быть указаны, только для драйверов устройств.

Кроме того, начиная с Windows Vista\Server 2008 для сервисов появился еще один режим запуска — отложенный автозапуск. Отвечает за него параметр DelayedAutoStart = 1, который который указывает SCM произвести автоматический старт данного сервиса с задержкой. SCM запускает службы, для которых выбран отложенный запуск, после загрузки сервисов, отмеченных для автозапуска.

Режимом запуска сервисов можно управлять не только из реестра, но и в графическом режиме, из консоли Службы (Services).

Так же как и драйверы, Windows-сервисы могут использовать параметр Group в своем разделе реестра, чтобы указать группу, к которой они принадлежат. Сейчас, для наглядности, возьмем наш сервис wuauserv, находящийся в самом конце списка загрузки. С помощью ключа Group поместим его в группу Event Log, перезагрузимся и посмотрим порядок загрузки в Loadorder. Как видите, порядок изменился и wuauserv поднялся с последнего места, загрузившись сразу после своего одногруппника — службы eventlog. Правда порядок размещения внутри группы изменить уже не получится, т.к. Tag для сервисов не используется.

И еще один параметр, который косвенно влияет на порядок загрузки сервисов — DependOnService. Он указывает, от каких сервисов зависит данный сервис. Соответственно сервис не загружается, пока не будут загружены сервисы, перечисленные в DependOnService.

Зависимости работают следующим образом — если сервисы находятся в одной группе, то зависимый сервис перемещается в конец списка и запускается после сервисов, от которых зависит. Если же группы разные, то сервис просто не запустится, а SCM выдаст ошибку.

Более наглядно это показано в оснастке Службы, где на вкладке Зависимости (Dependency) указаны как сервисы, от которых зависит данный сервис, так и сервисы, зависящие от него.

Вот мы и выяснили, в каком порядке загружаются драйверы и сервисы в Windows и как этот порядок можно изменить. Но прежде чем бросаться править реестр помните, что порядок загрузки драйверов и сервисов определяется автоматически, и не стоит вносить в него изменения без веской причины. Всего один неправильно выставленный параметр может привести к полной неработоспособности системы, и не факт что ее удасться восстановить. Поэтому, прежде чем приступить к редактированию реестра, обязательно сделайте его резервную копию, а также желательно иметь под рукой загрузочный носитель.

Оцените статью