Про деток, от рождения до школы

На практике у некоторых продвинутых пользователей или ковыряльщиков софта/железа иногда возникает необходимость изменить очередность загрузки тех или иных драйверов.

Вот и у меня возникла такая потребность при исследовании антистарфоровских возможностей контроллера SiliconImage SiI0680 . В статье , посвященной этим исследованиям, я посетовал на то, что операционная система (посредством своих драйверов, естественно) обнаруживает изучаемый мною контроллер раньше, чем драйвер WpcrSet успевает изменить его (контроллера) идентификационные PCI-регистры.

И вот наконец-то найдено решение этой проблемы! Ура!

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

Большое ему человеческое СПАСИБО!

Собственно, дал наводку на официальный мелкософтовсий документ, в котором подробно описывается варианты изменения приоритета загрузки драйверов.

Вот этот документ: How To Control Device Driver Load Order (на инглише).

Эта заметка задумывалась как практическая иллюстрация изложенного в микрософтовской статье материала.

ТЕОРИЯ

Итак, в той статье говорится, что:

  • Все множество драйверов распределяется на группы.
  • У каждой группы драйверов свой приоритет при загрузке. Т.е. драйвера из группы с большим приоритетом запускаются раньше драйверов из групп с меньшим приоритетом.
  • Список всех существующих групп драйверов представлен в реестре по адресу:

    мультистроковая переменная "List ":

  • Сами драйвера представлены в реестре записями в разделах:
  • За принадлежность драйвера к той или иной группе отвечает строковая переменная "Group ".

    В данном примере драйвер PCI шины принадлежит группе драйверов "Boot Bus Extender".

    Так, хорошо. С разделением на группы понятно: чем выше приоритет группы, тем ранше запустятся драйвера из этой группы.

    А если рассмотреть два драйвера из одной группы, то какой из них будет загружен раньше?

    Очередность загрузки внутри групп определяется двоичным параметром " Tag ".

    Если этот параметр отсутствует, то драйвер будет загружен в самую последнюю очередь.

    Что можно сказать про параметр "Tag " ?

    1. Обычно он представлен неким числом. Причем, если вдруг понадобится добавить тэг драйверу, у которого его нет, то значение этого тэга нельзя брать, что называется, "от балды". Но об этом дальше.

    2. Руководствуясь только числовым значением параметра "Tag" нельзя судить о степени приоритетности драйвера.

    Допустимые значения тэгов и их приоритет задаются двоичными переменными по названию группы драйверов в ветке:

    Пример (для группы драйверов "Boot Bus Extender" ):

    Двоичная переменная представляет из себя набор двойных слов (по 4 байта каждое).

    Первое слово (выделено на рисунке красной рамкой) задает общую длину переменной (количество двойных слов)
    Остальные двойные слова как раз и являются тэгами.
    Тэг, равный единице, выделен зеленой рамкой, двойке -- синей.

    Закономерность тут простая:

    Чем левее расположен тэг тем выше его приоритет в группе.
    Тем выше приоритет драйвера, у которого такой тэг имеется.

    На приведенном выше рисунке видно, что приоритет тэга 01 выше, чем у тэга 02. Самым высоким приоритетом в этой группе обладает тэг 08 (выделен желтой рамкой).

    Кстати, в группе драйверов могут встречаться драйвера с одинаковыми тэгами.
    Как в таком случае определяется очередность -- мне не известно.

    Условно представим, что у нас есть:

    1) драйвер A, принадлежащий группе драйверов Gr1
    2) драйвер В, принадлежащий группе драйверов Gr2
    3) приоритет Gr1 > Gr2

    Из пункта (3) следует, что приоритет драйвера A выше, чем у B, т.е. драйвер A будет загружен раньше драйвера B.

    Нам нужно добиться, чтобы драйвер B грузился раньше A.

    Возможные варианты (первые два, пришедшие в голову):

    1) изменить приоритет групп драйверов в списке ServiceGroupOrder > List

    a) либо повысить приоритет Gr2 (сделать выше, чем у Gr1)
    b) (зеркальный вариант) либо понизить приоритет Gr1 (сделать ниже, чем у Gr2)

    Оба варианта одинаково плохи, особенно, если каждая из групп содержит больше одного драйвера. Ведь не всегда с уверенностью можно сказать, как на такое перемещение отреагируют остальные драйвера группы.

    2) переместить один из драйверов в другую группу:

    a) переместить драйвер B в группу Gr1 и присвоить ему более приоритетный Tag, чем у драйвера A.

    b) (зеркальный вариант) переместить драйвер B в группу Gr2 и присвоить ему менее приоритетный Tag, чем у драйвера A.

    ИМХО, самый оптимальный вариант 2a. Ему я и буду следовать на практике.

    ПРАКТИКУМ

    Настало время перейти к практике.

    Как я уже упоминал в самом начале статьи, весь сыр-бор был затеян из-за того, что драйвера винды определяли IDE-контроллер раньше, чем драйвер WpcrSet успевал изменить его идентификационные регистры, что приводило к некоторым неудобствам.

    Как оказалось, под термином " драйвера винды " скрывался вполне конкретный " Драйвер PCI шины ". (Вы, наверное, догадались, что не зря он присутствует почти на всех вышеприведенных скриншотах;-) )

    Иначе говоря, возникла острая необходимость в запуске драйвера WpcrSet раньше драйвера PCI.

    Настройки драйвера PCI:

    Boot Bus Extender ".

    2. Параметр Tag у драйвера равен двум (02h).

    Настройки драйвера WpcrSet по-умолчанию:

    Видно, что:

    1. Драйвер принадлежит группе " Extended Base ".

    2. У драйвера напрочь отсутствует параметр Tag , что говорит о его наименьшем приоритете даже в пределах родной группы.

    На следующем этапе выясняем, приоретет какой группы (Boot Bus Extender / Extended Base) выше:

    System Reserved
    Boot Bus Extender
    System Bus Extender
    SCSI miniport
    Port
    Primary Disk

    NetworkProvider
    RemoteValidation
    NetDDEGroup
    Parallel arbitrator
    Extended Base
    PCI Configuration
    MS Transactions

    Видно, что группа Boot Bus Extender вторая от начала, а Extended Base -- третья с конца. Следовательно приоритет Boot Bus Extender гораздо выше.

    Поэтому первым делом переносим драйвер WpcrSet в группу Boot Bus Extender . Для этого меняем параметр " Group " с Extended Base на Boot Bus Extender :

    Теперь требуется выставить Tag для драйвера WpcrSet. Причем такой, чтобы его приоритет был выше приоритета тэга драйвера PCI (Tag=02h).

    Для этого смотрим на содержимое переменной " Boot Bus Extender " в разделе

    Видно, что приоритет тэгов 01h,06h,07h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,08h выше приоритета тэга 02h. Поэтому в качесве тэга для WpcrSet можно выбрать один из вышеперечисленных. Но не будем жадничать (и рисковать ), возьмем Tag=01h.

      Note: На практике могла возникнуть ситуация, когда тэг драйвера PCI оказался бы наиболее приоритетным. т.е. самым левым в списке. Тогда перед ним нам пришлось бы добавить еще дополнительный тэг. При этом первое двойное слово в списке, задающее количество тэгов, пришлось бы увеличить на единицу.
    Создадим в разделе WpcrSet параметр типа DWORW и занесем в него шестнадцатиричное значение =1:

    Ну, вот и все. Настройки WpcrSet теперь выглядят так:

    Теперь, перекрестясь , можно перезагружать компьютер и наблюдать за изменениями.

    Note: Искренне надеюсь, что перед тем, как лезть в реестр, вы предварительно забакапились. Ибо еще раз повторяю: я снимаю с себя всю ответственность за то, что вы учините со своим компьютером, начитавшись моих "статей"!

    Не знаю, как у Вас, а у меня все прошло просто замечательно. Драйвер WpcrSet стартовал раньше остальных драйверов и сделал свое черное дело точно и главное вовремя .

    Так что на сегодняшний день вопрос о порядке старта драйверов в системе можно считать разрешенным.

    Так что "полуавтоматический способ", описанный в статье

  • Как установить драйвера на Windows 7 принудительно.

    Данный вид установки драйверов практически всегда помогает в том случае, когда драйвер для устройства не устанавливается простым запуском установочного файла setup , с расширениями *.exe или *.msi .

    Но главным условием для успешной установки драйвера в этом случае является то, что драйвер должен быть полностью распакован и файл с расширением *.inf должен быть доступен. Зачастую производители оборудования упаковывают свои драйвера не только стандартными ZIP-архиваторами, но и используя замысловатые программы собственного изготовления. Здесь для распаковки весьма полезной может оказаться программка Universal Extractor , которой можно распаковать практически любой инсталлятор драйвера.

    Рассмотрим, как принудительно установить драйвер в Windows 7 на примере веб-камеры Defender AV-W2035 . Имеется скачанный с просторов Интернета драйвер AV-W2035_VISTA.zip , который мы успешно распаковали в папку C:/AW-0350-MIC-VISTA . Для начала нам нужно просмотреть, где же находится у нас файл с расширением *.inf . Для этого в свойствах папок Windows нужно включить отображение расширений файлов, чтобы название файлов писались с их расширениями. Либо использовать весьма полезную программу Total Commander или схожий файловый менеджер. Просмотрев папки (можно воспользоваться поиском файла) мы нашли файл snpstd2.inf

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

    Открываем Диспетчер устройств (Пуск –> Панель Управления –> Диспетчер устройств )

    Сразу видно устройство USB camera без установленных драйверов. Правой кнопкой мыши нажимаем на камере и в контекстном меню выбираем пункт Обновить драйверы…

    в открывшемся окне нажимаем

    и далее выбираем и кнопку Далее

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

    В следующем окне у нас откроется список имеющихся драйверов в системе (если они есть). Но так как мы знаем, что у нас есть папка с драйвером, то ничего не выбирая из списка, нажимаем на кнопку

    Нажимаем кнопку Обзор…

    и с помощью Проводника ищем наш файл с расширением *.inf , выделяем его мышкой и следуем по кнопке Открыть

    и, конечно же, кнопочку ОК

    Теперь в окне со списком имеющихся драйверов появиться наш драйвер (если драйвер не подходит для оборудования, то система выдаст ошибку).

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

    Итак, после того как файл с драйвером найден, выделяем в списке мышкой наш драйвер и нажимаем кнопку Далее

    Начнется установка драйвера

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

    В успешной установке драйвера можно убедиться в Диспетчере устройств , где подключаемое устройство уже не будет иметь вопросика, а его название поменяется на правильное, созданное производителем. В нашем случае с камерой это будет появившееся устройство с названием USB PC Camera (SN9C103)

    Установка закончена, можно спокойно начать пользоваться новым оборудованием!

    Решил самостоятельно собрать и настроить сервер на базе платформы Intel SR2600URLXR, на которую установлен один процессор Intel Xeon X5650, 8Gb памяти и один SАTA - жесткий диск для пробной установки бесплатной ознакомительной версии Server 2008 R2.

    Сервер предполагает установку ключа для активации RAID контроллера, который пока не установлен и жесткий диск используется как отдельностоящий.

    В комплект поставки входит оригинальный диск производителя, который испульзуется для получения обновлений BIOS и подготовки сервера к установке ОС.

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

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

    "A required CD/DWD drive device driver is missing. If you have a driver floppy disk, CD, DVD or USB flash drive, please insert it now. Note: If the Windows installation media is in the CD/DVD drive, you can safely remove it for this step"

    На этом же сообщении есть кнопка, при нажатии которой появляется окно для выбора драйверов на установленных на компьютере носителях: диске С:, флэшке и еще каком-то носителе, природу которого я не понимаю.

    На диске С: в папочке "drivers" находятся файлы, предустановленные подготовительным диском "Intel Deployment Assistant 3.4.5"

    Выбираем подпапочку "All", куда сложены все необходимые драйверы и нажимаем "Ок" на первоначальном сообщении об ошибке. Все драйверы исправно появляются в окне отображения списка подходящих драйверов. При этом установлена галочка отображения только подходящих драйверов.

    "No new device could be found. Make sure the driver files are correct and located on the driver installation media."

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

    Естественно, хочется понять, - причина в железе, драйверах, настройках БИОСа или в ОС?

    Для прояснения вопроса беру Windows 7 64 bit rus и пытаюсь загрузиться с загрузочного диска. Выбираю 64-битную версию, нажимаю "продолжить и система выдает сообщение:

    "Чтобы продолжить установку, используйте параметр загрузки драйвера для установки 32-разрядных и подписанных 64-разрядных драйверов. Установка неподписанного 64-разрядного драйвера устройства не поддерживается и может привести к невозможности использования установки Windows".

    "Программе установки не удалось создать новый или найти существующий системный раздел. Доп. сведения см. в файлах журнала программы установки".

    Опять ничего не понимаю. Вроде бы раздел на жестком диске уже был создан во время предыдущей попытки установки Server 2008 R2. Мало того, этот диск виден в открывающемся окне выбора файлов... И, кроме всего прочего, ситема время от времени просто банально зависает и ни на что не отзывается, так что приходится перезагружаться.

    И что такое "подписанные 64-битные драйверы"?

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

    Буду очень признателен, если кто-то поможет разобраться в ситуации.

    После подключения видеокарты к материнской плате, для ее полноценной работы требуется установить специальное программное обеспечение – драйвер, который помогает операционной системе «общаться» с адаптером.

    Такие программы пишутся непосредственно разработчикам Nvidia (в нашем случае) и располагаются на официальном сайте. Это дает нам уверенность в надежности и бесперебойной работе такого софта. На деле же все обстоит не всегда так. Во время установки частенько возникают ошибки, которые не позволяют инсталлировать драйвер, а значит и пользоваться видеокартой.

    Итак, при попытке установить программное обеспечение для видеокарты Nvidia, мы видим вот такое неприятного вида окно:

    Установщик может выдавать совершенно разные причины сбоя, от той, которую Вы видите на скриншоте, до совершенно, с нашей точки зрения, абсурдных: «Нет подключения к интернету», когда сеть есть, и прочее. Сразу возникает вопрос: почему так случилось? На самом деле, при всем многообразии ошибок, причины у них только две: софтовая (программные неполадки) и железная (проблемы с оборудованием).

    В первую очередь необходимо исключить неработоспособность оборудования, а затем попытаться решить проблему с программным обеспечением.

    Железо

    Как мы уже говорили выше, для начала нужно убедиться в работоспособности видеокарты.


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

    Если устройство отказывается работать в исправном ПК, а другой ГПУ на Вашей материнке нормально функционирует, то необходимо обратиться в сервисный центр для диагностики и ремонта.

    Программное обеспечение

    Именно софтовые сбои дают самый широкий спектр ошибок при установке. В основном, это невозможность записать новые файлы поверх старых, которые остались в системе после предыдущего ПО. Есть и другие причины и сейчас мы о них поговорим.

    1. «Хвосты» старого драйвера. Это самая распространенная проблема.
      Программа установки Nvidia пытается поместить свои файлы в соответствующую папку, но там уже лежат документы с такими названиями. Не трудно догадаться, что в данном случае должна происходить перезапись, как если бы мы вручную пытались скопировать картинку с именем «1.png» в директорию, в которой такой файл уже есть.

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

      Выход из этой ситуации следующий: удалить предыдущий драйвер при помощи специализированного софта. Одной из таких программ является Display Driver Uninstaller . Если Ваша проблема заключается в «хвостах», то DDU с большой вероятностью поможет.

    2. Установщик не может подключиться к интернету.
      Здесь вполне может «хулиганить» антивирусная программа, которая по совместительству выполняет функции фаервола (брандмауэра). Такой софт может заблокировать установщику доступ в сеть, как подозрительному или потенциально опасному.

      Решение такой проблемы заключается в отключении фаервола либо добавление установщика в исключения. В том случае, если у Вас установлено антивирусное ПО от стороннего разработчика, обратитесь к руководству пользователя, либо на официальный сайт. Также, в решении этой задачи Вам может помочь наша статья:

      Стандартный брандмауэр Windows отключается следующим образом:

      После перезагрузки брандмауэр будет полностью отключен.

    3. Драйвер не совместим с видеокартой.
      Не всегда самая новая редакция драйвера подходит для старого адаптера. Такое может наблюдаться, если поколение установленного ГПУ намного старше современных моделей. Кроме того, разработчики тоже люди, и могут допустить ошибки в коде.

      Некоторым пользователям кажется, что установив новое ПО, они сделают видеокарту быстрее и свежее, но это далеко не так. Если до установки нового драйвера все функционировало нормально, то не стоит спешить инсталлировать новую редакцию. Это может привести к ошибкам и сбоям при дальнейшей эксплуатации. Не мучайте свою «старушку», она и так работает на пределе своих возможностей.

    4. Частные случаи с ноутбуками.
      Здесь также проблема кроется в несовместимости. Возможно, данная редакция драйвера от Nvidia конфликтует с устаревшим ПО для чипсета или встроенной графики. В этом случае необходимо обновить эти программы. Делать это нужно в следующем порядке: вначале устанавливается софт для чипсета, затем для интегрированной карты.

      Устанавливать и обновлять такое программное обеспечение рекомендуется, скачав его на сайте производителя. Найти ресурс легко, достаточно набрать в поисковой системе запрос, например, «драйвера для ноутбука asus официальный сайт».

      Подробнее о поиске и установке ПО для ноутбуков можете почитать в разделе «Драйвера» .

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

    На этом обсуждение ошибок при установке драйверов Nvidia закончим. Помните, что большинство неполадок происходит по вине самого программного обеспечения (устанавливаемого или уже установленного), и в большинстве случаев они решаемы.

    При установке Windows 10, 8 и Windows 7 на компьютер или ноутбук пользователь может столкнуться с ошибками «Не найден необходимый драйвер носителя. Это может быть драйвер DVD-дисковода, USB-накопителя или жесткого диска» (во время установки Windows 10 и 8), «Не найден необходимый драйвер для дисковода оптических дисков. Если у вас есть дискета, CD, DVD или флэш-накопитель USB с этим драйверов, вставьте этот носитель» (при установке Windows 7).

    Текст сообщения об ошибке не особо понятен, особенно для начинающего пользователя, потому как не ясно, о каком именно носителе идет речь и можно предположить (неверно), что дело в SSD или новом жестком диске, на который происходит установка (об этом здесь: ), однако обычно это не так и дело в другом.

    Основная причина ошибки «Не найден необходимый драйвер для оптических дисков» при установке Windows с диска - поврежденный диск или плохо читающий диски привод DVD.

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

    В любом случае, первое, что следует попробовать в данной ситуации - либо , либо использовать загрузочную флешку для установки ОС. Оригинальные образы для установки доступны на официальном сайте Майкрософт (выше приводил инструкцию о том, как их скачать).

    Использование другого ПО для записи загрузочного USB накопителя

    Иногда случается, что сообщение об отсутствующем драйвере носителя появляется при установке Windows 10, 8 и Windows 7 с флешки, записанной какой-то определенной программой и не появляется при использовании другой.

    Попробуйте:

    Проблемы с загрузочной флешкой

    Если указанные в предыдущем разделе пункты не помогли, дело может быть и в самой флешке: если есть возможность, попробуйте использовать другую.

    А заодно проверьте, не содержит ли ваша загрузочная флешка несколько разделов - это тоже может приводить к появлению таких ошибок при установке. Если содержит, удалите эти разделы, см. е.

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

    В некоторых случаях, ошибка может быть вызвана и поврежденным образом ISO (попробовать загрузить заново или из другого источника) и более серьезными проблемами (например, неправильно работающая оперативная память может приводить к повреждению данных при копировании), хотя это и случается редко. Тем не менее, если есть возможность, стоит попробовать произвести загрузку ISO и создание накопителя для установки Windows на другом компьютере.

    На официальном сайте Майкрософт также присутствует собственная инструкция по исправлению проблемы:



    Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
    ПОДЕЛИТЬСЯ:
    Про деток, от рождения до школы