Инсталиране на inf в windows 7. Инсталиране на драйвер от INF файл


Инсталиране на допълнителни продукти - DriverDoc (Solvusoft) | | | |

Тази страница съдържа информация относно инсталирането на най-новите изтегляния на драйвери INF с помощта на инструмента за актуализиране на драйвери INF.

INF драйверите са малки програми, които позволяват на вашия INF хардуер да комуникира със софтуера на вашата операционна система. Поддържането на актуализиран INF софтуер предотвратява сривове и увеличава максимално производителността на хардуера и системата. Използването на остарели или повредени INF драйвери може да причини системни грешки, сривове или да доведе до повреда на вашия компютър или хардуер. Освен това инсталирането на грешни INF драйвери може да влоши тези проблеми.

съвет:Ако нямате опит с ръчното актуализиране на драйвери на INF устройство, силно препоръчваме да изтеглите INF Driver Utility. Този инструмент автоматично ще изтегли и актуализира правилните версии на INF драйвери, предпазвайки ви от инсталиране на грешни INF драйвери.


За автора:Джей Гийтър е президент и главен изпълнителен директор на Solvusoft Corporation, глобална софтуерна компания, фокусирана върху иновативни помощни програми. Той е запален по компютрите през целия си живот и обича всичко свързано с компютри, софтуер и нови технологии.

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

Информация за инсталирания хардуер можете да намерите, като отидете в "Контролен панел", изберете секцията "Система" и щракнете върху връзката или бутона "Диспечер на устройства"

В дървовидния списък, който се отваря, ще бъдат видими всички устройства, видими за операционната система.

Какви са методите за инсталиране?

Ако при свързване на ново оборудване операционната система не успя автоматично да конфигурира подходящия софтуер, тогава можете да отидете по два начина:

1. Използвайте специални програми за търсене и автоматична инсталация.

2. Самостоятелно намиране и инсталиране на необходимия софтуер.

И двата метода имат своите предимства и недостатъци. Първият вариант определено е по-удобен и спестява много време. И когато използвате стандартно оборудване, този подход ще даде добри резултати - всички железни части ще работят както трябва и без повреди. Освен това, когато използвате най-новите версии на такива програми за автоматизация, ще получите най-новите версии на файловете на драйвера. Можете да прочетете повече за този метод на тази страница на нашия уебсайт:.

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

Как да си намеря шофьор?

Обикновено целият необходим софтуер се доставя със закупения продукт на оптичен диск. В този случай често е достатъчно да поставите диска в устройството, да стартирате приложението и да следвате подканите по време на процеса на настройка.

Ако дискът е изгубен или искате по-нова версия, можете да направите това на уебсайта на производителя на оборудването в съответния раздел, който обикновено се нарича „Обслужване / Поддръжка“.

Когато търсите необходимите файлове, не трябва да забравяте за коя версия на операционната система са ви необходими. Тъй като приложенията, разработени за Windows XP, най-вероятно няма да работят правилно на по-нови операционни системи, а 32-битовият софтуер може да откаже да функционира в 64-битова среда. И обратно.

Може да се случи в ръцете ви да попадне остаряло оборудване. И просто така, стартирането му на най-новите версии на операционната система няма да работи. В този случай можете да опитате да го инсталирате в режим на съвместимост за по-стари версии на Windows. За съжаление това не винаги води до успешен резултат. И проблемът с липсата на нормална поддръжка за нови версии на операционната система принуждава потребителите да отказват да използват много доста работещи и полезни продукти.

Ръчно инсталиране на драйвери

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

Но ситуацията е доста често срещана, когато такъв приятелски софтуер не е предоставен. И много потребители не знаят какво да правят в този случай.

Процедурата за справяне с такава ситуация е описана по-долу, използвайки като пример MP3 плейъра iRiver IFP-700.

За да запазите информацията, записана на микрофона на този плейър, трябва да инсталирате неговия драйвер и след това да използвате специалната помощна програма iRiver Music Manager. Но за съжаление официалният уебсайт на iRiver не успява да изтегли необходимите файлове. Освен това от съдържанието на страницата в сайта става ясно, че този плеър е предназначен за операционни системи не по-нови от Windows XP.

Съответно, за да гарантирате успех, ще трябва да инсталирате този плейър в Windows XP.

След известно търсене успях да получа такъв архив с необходимите файлове:

Разопаковане на съдържанието на архива

и виждаме, че в него няма exe-файлове. Но има, което е описано като "Информация за инсталиране".

Именно този файл (в комплект със съседните от тази папка) е необходим на операционната система, за да свърже успешно плейъра към USB порта.

Свързваме плейъра с кабел към компютъра и виждаме, че се е появил такъв типичен прозорец:

Ако отидем по обичайния начин и изберем автоматично спиране, след дълго показване на този прозорец

ще се появи съобщение за грешка. Затова натискаме бутона "Назад", за да тръгнем по алтернативния път.

В този прозорец, вместо автоматичния метод, изберете опцията "Инсталиране от списък или определено място"

Натискаме бутона за разглеждане и избираме папката, в която сме разопаковали файловете от zip архива.

В резултат на това редът за търсене трябва да съдържа пътя до папката, в която се намира inf файлът:

След завършване на процеса се появява прозорец за успех:

Можете допълнително да проверите това, като отидете в диспечера на устройствата и видите наличието на инсталирания плейър там:

Резултати

Използвайки методите, изброени в тази статия, ще можете успешно да инсталирате програми за управление на устройствата, които използвате. И знанието как да инсталирате драйвера ръчно с помощта на inf файл ще ви позволи да увеличите максимално количеството използвано оборудване, без да включвате специалисти от трети страни. В допълнение, използването на официален софтуер от уебсайтовете на производителите на устройства значително ще увеличи надеждността на вашия компютър.

Днес ще ви научим как да инсталирате драйвери на устройства от sys и inf файлове.

Намиране, инсталиране и конфигуриране на драйвер на устройство 200 търкайте.

Когато изтегляте драйвери от интернет за вашите устройства, може да не попаднете на инсталационния пакет, с който сте свикнали, а на архив със sys и inf файлове. Sys файловете са системни файлове, докато inf файловете често са част от хардуерния драйвер на компютъра. Ако вашият драйвер включва само sys и inf без инсталатора, с който сте свикнали, не се отчайвайте, този тип драйвер също може да бъде инсталиран. В повечето случаи такива драйвери се разпространяват на сайтове на трети страни, а не на сайтове на производители. Затова бъдете внимателни и проверявайте всеки изтеглен драйвер с антивирусна програма.

Инсталиране на драйвера под формата на sys и inf файлове

1. Първото нещо, от което се нуждаем, е да отидем в диспечера на устройствата. Натискаме старт и с името "моят компютър" извикваме падащото меню с натискане на десен бутон на мишката и избираме свойството от списъка. Ще се отвори нов прозорец, в който трябва да отидем в секцията "диспечер на устройства", намираща се в лявата колона. В списъка, който се отваря, намерете оборудването, което е маркирано с жълт удивителен знак, щракнете с десния бутон върху устройството, което трябва да инсталира драйвера, и щракнете върху елемента - актуализирайте драйвера. Следващият прозорец ще стартира съветника за инсталиране и конфигуриране на ново оборудване. Изберете елемента за ръчно инсталиране на драйвера на устройството.

2. След това ще бъдем подканени да изберем папката, в която се намират нашите драйвери, тоест sys или inf файлове. След това потвърдете избора си да започнете инсталирането на драйвера. Ако даденият драйвер не е съвместим с устройството или устройството вече има по-нова версия на драйвера, ще бъдете подканени да изберете друг файл, за да конфигурирате правилно устройството.

3. Ако намерите само един sys файл без inf в изтегления архив, тогава съветникът за инсталиране на драйвери за устройството няма да може да ги инсталира. За да може драйверът да се инсталира и работи правилно, трябва да копирате .sys файла в windows->System32->drivers. След като копираме нашия драйвер в системната папка, стартираме инсталацията и търсим драйвера в автоматичен режим. Когато инсталирате такива файлове, препоръчваме да ги проверите с антивирусна програма, тъй като някои нападатели вграждат зловреден код във файловете на драйверите и изтеглянето на драйвери е най-добре от официалния сайт.

Освен това, ако имате някакви затруднения при сами да актуализирате драйверите, тогава нашите майстори ще се радват да свършат тази работа.

Отпътуване на майстора и диагностика0 търкайте.

Очевидно е, че всеки потребител на персонален компютър от време на време трябва да свърже устройство към своята станция. Причината, поради която това се случва, не ни интересува много сега, може да е ъпгрейд, добре познат на мнозина (за да се увеличи производителността на отделните възли и в резултат на цялостната производителност на системата), може просто да е добавянето на ново оборудване за разширяване на функционалността на съществуващата конфигурация, като, например, в случай на свързване на нов геймпад, може също да е необходимостта от използване на данни от флаш устройство. Независимо от това как свързваме ново устройство, операционната система Windows е принудена да реагира на появата на нов хардуер, като извършва определени манипулации, за да гарантира, че новият хардуер се поддържа на софтуерно ниво. Много операционни системи използват интерфейс между хардуерен и софтуерен слой, наречен драйвер, за да позволят софтуерно взаимодействие с устройства.

Драйвер (Driver) - софтуер, с помощта на който операционната система и работещите в нея програмни модули получават достъп до хардуер или логически устройства.

Ето защо операционната система се опитва с всички налични средства да осигури функционирането на устройството в неговата среда, като за целта се прави опит да се инсталира подходящ драйвер за новосвързаното устройство, за да се осигурят функциите на новото устройство за достъп до програми в потребителски режим и код в режим на ядрото, защото без това най-известният хардуерен драйвер в системата просто няма да може да работи.
Неслучайно споменах логически устройства в дефиницията, тъй като има отделна категория драйвери, които не обслужват хардуера, но са интегрирани за разширяване на изпълнението (разширения, добавки) на функционалността на различни системни модули. Но кого ще изненадаш сега като инсталираш драйвери? Този процес вече е толкова познат на всички потребители на компютри от много години практика, че някои, сигурен съм, могат да го направят със затворени очи :) Но мислили ли сме за подробностите на този процес, мислили ли сме някога за Алгоритъм за инсталиране на драйвери? Чудили ли сте се някога какви точно действия извършва операционната система, когато е свързано ново устройство и са инсталирани драйвери?

Съгласете се, че от гледна точка на потребителя процесът на инсталиране на драйвер в Windows в повечето случаи изглежда доста прозаичен. Познатата анимирана икона на съветника за инсталиране се появява в системната област и след известно време системата може да издаде отчет за успешното или неуспешното инсталиране на новия драйвер на устройството в системата. Освен това често съветникът за инсталиране, освен тази икона на панела, изобщо не дава никакво визуално потвърждение за опитите за инсталиране на ново устройство, докато "тихо" добавя ново оборудване към списъка с устройства и (в случай на повреда) маркира го със специална икона в диспечера на устройствата, предлагайки на потребителя в ръчен режим да продължи да конфигурира оборудването. Всички тези външни процеси, които вече са добре познати както на вас, така и на мен, присъстват под една или друга форма във всички версии на операционните системи Windows почти от появата на тази операционна система, като се различават леко само в детайлите. Те станаха толкова познати и познати, че дори не се замислих какво се случва "от другата страна на екрана", в недрата на операционната система, какво се крие под тази въображаема простота? Както ще видите по-долу, инсталирането на Windows драйвер за физическо или логическо устройство крие доста сложни и изключително интересни процеси. Алгоритъм за инсталиране на драйверина Windows могат да бъдат разделени на следните ключови глобални задачи:

  • Копиране на двоичния файл на драйвера в съответната директория на системата;
  • Регистрация на драйвера в системата Windows с посочване на метода на изтегляне;
  • Добавяне на необходимата информация към системния регистър;
  • Копиране/инсталиране на свързани поддържащи компоненти от пакета на драйвера;

В допълнение към основните задачи, изпълнявани като част от алгоритъма за инсталиране на драйвери в Windows, би било хубаво да се класифицират условията, при които стартира процесът на инсталиране на драйвери на Windows:

  • Потребителят инсталира ново устройство в изключен компютър. В този случай процесът на откриване на ново устройство и инсталиране на драйвера започва още на етапа на зареждане на операционната система.
  • Потребител с права на локален администратор, използващ конзолната добавка на диспечера на устройства, инициира инсталирането или актуализирането на драйвер за вече инсталирано устройство.
  • Потребителят "в движение" свързва ново устройство към работещ компютър. В този случай говорим за определена категория устройства, които могат да бъдат свързани в движение, като устройства с външен eSata интерфейс, USB и др. В края на краищата, няма да инсталирате вътрешна видеокарта, когато захранването е подадено към PCIe слотовете, нали? Аз лично още не съм го правил :)
  • Потребителят самостоятелно изпълнява инсталатора на комплекта драйвери от акаунт с права на локален администратор. Този метод може да се използва както за инсталиране на драйвери за физически устройства, които поддържат стандарта Plug and Play, така и за инсталиране на не-PnP (наследени) драйвери, драйвери на логически устройства, които не могат да бъдат открити автоматично от системата и които не могат да бъдат инсталирани по друг начин освен в ръчно управление. Типичен пример биха били антивируси или виртуални машини, които инсталират своите драйвери (логически устройства) в системата.
  • Потребителят щраква с десния бутон върху .inf файла в директорията на драйвера и избира Инсталиране от акаунт с права на локален администратор.

Но какъв е самият пакет драйвери? В крайна сметка, както многократно сме виждали, това е цял набор от файлове с абсолютно различна, на пръв поглед, цел. Без по-задълбочен преглед на структурата на инсталационния пакет на драйвера, ще ни бъде трудно да разберем самия алгоритъм за инсталиране на драйвера, така че ще дадем общите компоненти:

  • .inf файл(ове). Ключовият компонент на пакета за инсталиране на драйвер е файл, който описва процеса на инсталиране на драйвера. inf файлът е разделен на секции и се състои от инструкции, които казват на системата как точно е инсталиран драйверът: те описват инсталираното устройство, източника и целевите местоположения на всички компоненти на драйвера, различни промени, които трябва да бъдат направени в системния регистър при инсталиране драйвера за Windows, информация за драйверите на зависимости и др. .inf файловете свързват физическо устройство с драйвер, който контролира това устройство.
  • Двоичният файл(ове) на драйвера. Като минимум пакетът трябва да съдържа .sys - или .dll - файла на ядрото на драйвера. Всъщност един .sys файл (в екстремни случаи) може да бъде инсталиран (с резерви) ръчно чрез редактиране на системния регистър.
  • Инсталационни изпълними файлове. Обикновено това са добре познати помощни програми за инсталиране, които се наричат ​​setup.exe, install.exe и някои други.
  • Изпълними файлове за деинсталиране. Това обикновено са помощни програми за деинсталиране, които се наричат ​​uninstall.exe.
  • Файл(ове) за допълнителни процедури и библиотеки. Обикновено това са спомагателни библиотеки във формат .dll, съвместни инсталатори.
  • .cat файл(ове). Каталожен файл, подписан с цифров подпис. Тези файлове съдържат цифрови подписи на директориите и действат като подпис за пакетните файлове, с които потребителят може да определи произхода на пакета и да провери целостта на пакетните файлове на драйвера. Изисква се за 64-битови версии на Windows от Vista нататък и се препоръчва за всички останали.
  • Модули за управление на потребителски режим. Обикновено това са различни командни аплети, които работят в потребителски режим, като ATI Catalist Control Center, VIA HD Audio Desk, Realtek HD Audio Control Panel и други подобни.
  • Помощни файлове. Къде би било без тях?

Термини и дефиниции

В тази статия ще опиша само един метод за инсталиране, който във всеки случай описва почти всички стъпки в алгоритъма за инсталиране на драйвери в Windows, които са приложими за други методи. И сега ще говорим за ситуацията, когато потребителят постави ново оборудване, като например видеокарта, във вътрешния конектор на изключен компютър. Но първо, нека въведем някои определения, от които се нуждаем в процеса на изучаване на алгоритъма за инсталиране на драйвера.
Мениджър (диспечер) Plug and Play (PnP мениджър, PnP мениджър)- облак от режим на ядрото и код на потребителски режим, отговорен за добавяне, разпознаване, премахване на устройства в системата. Блокът на режима на ядрото взаимодейства с останалите компоненти на системата в процеса на изтегляне/инсталиране на софтуера, необходим за обслужване на устройствата в системата. Блокиране на потребителски режим ( %Windir%\System32\umpnpmgr.dll, изпълнява се в контекста на основния системен процес svchost.exe) отговаря за взаимодействието на потребителя в ситуации, които изискват инсталиране на нови драйвери или коригиране на работни параметри във вече инсталирани. Отговаря за присвояването и последващото разпределение на хардуерни ресурси като прекъсвания (IRQ), I/O портове, канали за директен достъп до паметта (DMA) и адреси на паметта. Той има функционалност за определяне на драйвера, необходим за поддръжка на конкретно устройство и функционалност за изтегляне/инсталиране на този драйвер. Може да разпознава нови устройства, да реагира на тяхното свързване и изключване. Той е част от кода на изпълнителната подсистема на Windows.

Изброяване на устройства

Няма смисъл да описваме целия етап на зареждане от самото начало и ще започнем само от етапа, който ни интересува, при който модулът Winload (.efi) зарежда ядрото на операционната система Windows 7 от файла ntoskrnl.exe . Ядрото управлява PnP мениджъра, който е част от изпълнителната подсистема. PnP мениджърът стартира процеса на изброяване на устройството от основното устройство, драйвер за виртуална шина, наречен ROOT (Root), който представлява цялата система и е драйвер за шина като цяло за всички PnP и не-PnP устройства, както и HAL (хардуер абстракции на ниво). В този момент HAL функционира като драйвер на шина, който изброява устройствата, директно свързани към дънната платка. Въпреки това, вместо действително изброяване, HAL разчита на описанието на хардуера, което вече присъства в системния регистър. Целта на HAL на този етап е да открие първични шини като PCI. Основният драйвер на PCI шина от своя страна изброява устройствата, свързани към тази шина, намира други шини, за които PnP мениджърът незабавно зарежда драйвери. Тези шофьори на автобуси от своя страна вече откриват устройствата в автобусите си. Този рекурсивен процес на изброяване, зареждане на драйвери и след това изброяване продължава, докато всички устройства в системата бъдат открити и конфигурирани. По време на процеса на изброяване на PnP мениджърът изгражда дърво на устройствата, което уникално описва връзката между всички устройства в системата. Възлите в това дърво, наречени devnodes (съкращение от „възли на устройство“), съдържат информация за обекта на устройството, който от своя страна описва устройството в детайли.
Записите на всички устройства, които са били открити след инсталирането на системата, се съхраняват в кошера на системния регистър HKLM\SYSTEM\CurrentControlSet\Enum. Подключовете на този кошер описват устройства в следния формат:

HKLM\SYSTEM\CurrentControlSet\Enum\ Enumerator\ DeviceID\ InstanceID

HKLM\SYSTEM\CurrentControlSet\Enum\

  • Преброител - името на шофьора на автобуса. Може да приема следните стойности: ACPI, DISPLAY, HDAUDIO, HID, HDTREE, IDE, PCI, PCIIDE, Root, STORAGE, SW, UMB, USB, USBSTOR и други;
  • DeviceID - уникален идентификатор за този тип устройство;
  • InstanceID - Уникален идентификатор за различни копия на едно и също устройство.

Факт е, че драйверът на шината, към която е свързано устройството, пита устройството за различни параметри (ID на производителя, ID на устройството, ревизия и т.н.) и генерира така наречения хардуерен идентификатор (HardwareID), който уникално описва устройството и е низ от параметри, разделени със знаци & и състоящ се от следните части:

  • Префикс, описващ шината, към която е свързано устройството.
  • ID на устройството. Състои се от няколко части, като ID на производителя, ID на продукта (модела), версия на устройството.

HardwareID - идентификационен низ, който зависи от параметрите на устройството (производител, модел, версия, версия и т.н.), които Windows използва, за да съпостави устройството с .inf файла на драйвера.

Типична структура на HardwareID:

PCI\VEN_10DE&DEV_1341&SUBSYS_2281103C&REV_A2

В допълнение към HardwareID, на устройството се присвоява параметър(и) на CompatibleID, който има подобен формат, но съдържа само по-общи стойности, които не съдържат специфични за устройството параметри (някои идентификатори на устройства) и са необходими за инициализиране на по-широка гама от съвместими устройства.

HardwareID и CompatibleID се използват от кода на изпълнителната подсистема на Windows за намиране на драйвера на устройството.

Откриване на драйвери

Ако на етапа на изброяване на устройството и зареждане на драйвера, функционалният драйвер на шината, към която е свързано новото устройство, информира PnP мениджъра за промени в свързаните дъщерни устройства. PnP мениджърът в режим на ядрото проверява дали драйверът е свързан с устройството, като отправя запитване към драйвера на шината, към който е свързано новото устройство, и получава HardwareID и по избор CompatibleID на устройството. PnP мениджърът в режим на ядрото информира PnP мениджъра в потребителски режим, че даденото устройство трябва да бъде инсталирано със специално събитие, като му предава получените идентификатори. Диспечерът на потребителския режим PnP първо се опитва автоматично да инсталира устройството без намеса на потребителя. За да направите това, PnP мениджърът в потребителски режим стартира помощната програма rundll32.exe, за да стартира съветника за инсталиране на драйвер на устройство (%Windir%\System32\Newdev.dll).

Съветникът за инсталиране на драйвери на устройства инициира търсене на подходящ драйвер за устройството, използвайки информация от всички системни inf файлове, намиращи се в следните надеждни системни местоположения:

  • Съхранение на водача;
  • Windows Update;
  • Системна директория на INF файлове;

За горните цели на търсене и инсталиране на драйвера се използват функциите на библиотеките setupapi.dll (поддържащи инсталационни функции) и cfgmgr32.dll (мениджър на конфигурацията). По време на търсенето се използват текущо получените идентификатори HardwareID и (по избор) CompatibleID, чиито стойности описват всички възможни опции за идентифициране на хардуера в инсталационния файл на драйвера, т.е. inf файла. Стойностите на ID на инсталираното устройство се сравняват с тези, описани в секциите за модели на inf файловете, регистрирани в системата. Списъците с идентификатори са подредени, така че по-специфичните хардуерни дескриптори се появяват първи в списъците. Ако съвпаденията на ID са намерени в множество inf файлове, по-точното съвпадение се предпочита пред по-малко точното, подписаните inf файлове се предпочитат пред неподписаните, а по-късно подписаните inf файлове се предпочитат пред предишните подписани. Ако съвпадение на базата на HardwareID не бъде намерено, тогава се използва CompatibleID, ако има такъв, разбира се. Ако не бъде намерено съответствие въз основа на CompatibleID, съветникът за добавяне на хардуер може да ви подкани за местоположението на нов хардуерен драйвер. Нека разгледаме по-отблизо всички тези източници на информация за водача.

Съхранение на драйвери

Съветникът за инсталиране на драйвери се опитва да намери подходящ inf файл в хранилището на системни драйвери, намиращо се в директорията %Windir%\System32\DriverStore, което съдържа всички системни драйвери без изключение, които са част от дистрибуцията на Windows, получени чрез "Windows Update" услуга или инсталиран в системата от потребителя.

Магазинът за драйвери е защитено системно местоположение, директория, предназначена да съхранява всички пакети с драйвери, които някога са били инсталирани в системата.

Магазинът за драйвери беше представен за първи път в Windows Vista. Преди да инсталирате драйвер в системата, първо специализираният код проверява цифровия подпис на драйвера, след това синтаксиса на inf файловете на драйвера, след това привилегиите на текущия потребител, едва след това поставя всички компоненти на драйвера в системния драйвер съхранение. Но тогава драйверът в хранилището на драйвери може да се използва за инсталиране на устройства в системата. Тъй като процедурата за поставяне на драйвер в магазина е добре разработена, магазинът за драйвери е най-довереният източник на информация за драйвери.

Системна директория на INF файлове

Успоредно с това системата търси драйвера в системното местоположение, описано от стойността на параметъра DevicePath, разположен в клона на системния регистър HKLM\Software\Microsoft\Windows\CurrentVersion. Настройката обикновено е %SystemRoot%\inf, което е еквивалентно на C:\Windows\inf на повечето системи.

INF файл

Бих искал да направя малко отклонение и да говоря отделно за информационните файлове на драйверния пакет. inf файлът е един от ключовите компоненти на пакета драйвери. Той съхранява последователността от операции за инсталиране и деинсталиране на драйвера, описани със специални директиви, които сочат местоположението на функционалните файлове на драйвера. Файлът съдържа команди, които добавят информация към регистъра, който отговаря за изброяването (Enum) на драйвера и неговия клас (Class), и може да съдържа инструкции за съветника за инсталиране на хардуер за стартиране на така наречените основни инсталатори (Class Installer, Class Installer ) и допълнителни инсталатори (CoInstaller , Co-installer) за класа на устройството и самото устройство. Освен това inf файлът определя типа, производителя, модела на устройството, класа на драйвера, необходимите файлове и ресурси.

Коинсталатор (по структура, обикновен DLL) - допълнителен инсталатор, извикан по време на инсталационната фаза, който изпълнява подклас или специфични за устройството стъпки за инсталиране, като например подготовка на инфраструктурата за работа на драйвера в системата (например инсталиране на NET.Framework package), показващ конфигурационни диалогови прозорци, които позволяват на потребителя да зададе настройки за конкретно устройство.

Важна характеристика на съвместните инсталатори е, че ако е необходимо, те свързват копия на ново устройство с протоколите, необходими за работа. Това, например, може да се отнася до различни видове комуникационни устройства, които изискват различни протоколи и транспорти за работа, като ndis, pppoe, tcpip, tcpip6, smb, netbt.
Файлът .inf допълнително описва операциите по разопаковане, копиране, стартиране, преименуване на файлове, добавяне и изтриване на ключове в системния регистър и много други.
Нека обаче се върнем към основния алгоритъм за инсталиране на драйвери в Windows. В случай, че програмата за инсталиране на драйвери на устройството не намери подходящи драйвери в изброените по-горе места, системата маркира устройството като неразпознато.

В този случай потребителят е подканен самостоятелно да продължи инсталирането на устройството чрез аплета мениджър на устройства. След като потребителят сам избере устройството и посочи местоположението на файловете на драйвера, алгоритъмът за инсталиране на драйвера продължава своята работа и следващата стъпка започва проверка на цифровия подпис на драйвера.

Проверка на цифровия подпис на драйвера

Факт е, че драйверът, като част от кода на режима на ядрото, е доста критичен компонент на операционната система и всякакви грешки, направени от разработчика в кода на драйвера, могат лесно да доведат до сериозни сривове (BSOD) в системата. От известно време насам Microsoft е доста чувствителен към качеството на кода на драйверите и в тази връзка в операционните системи Windows бяха въведени механизми като цифров подпис на драйвери и политика за подписване на системни драйвери.

Цифровият подпис на драйвера е низ от данни с променлива дължина, който до известна степен е гаранция, че кодът на драйвера е създаден от надежден източник и не е бил подложен на неоторизирани модификации.

Следващата стъпка е частта за потребителски режим на PnP мениджърския код, която проверява политиката за подписване на драйвера на системата. Ако системната политика инструктира кода на ядрото да блокира или предупреждава за инсталирането на неподписани драйвери, тогава PnP мениджърът анализира inf файла на драйвера за наличието на директива CatalogFile, сочеща към каталожен файл (файл с разширение .cat), съдържащ цифров подпис на пакета на драйвера.

Каталожният файл (.cat) е специален файл, който действа като цифров подпис за целия пакет на драйвера, тъй като всеки файл, включен в пакета на драйвера, не е индивидуално подписан. Единствените изключения са двоичните файлове на драйвера на ядрото за фаза на зареждане, но те се проверяват от отделен код на ядрото.

За тестване на драйвери и подписването им е създадена Лабораторията за качество на хардуера на Microsoft Windows (WHQL), която щателно тества драйверите, доставени с дистрибуции на Windows, както и драйвери от големи доставчици на хардуер. За всички останали разработчици на драйвери има процедури за получаване на възможност за самоподписване на драйвери срещу заплащане. Когато драйвер премине всички WHQL тестове, той става "подписан". Това означава, че за драйвер WHQL генерира хеш или уникален подпис, който уникално идентифицира файловете на драйвера и след това го подписва криптографски с помощта на специален частен ключ на Microsoft, използван за подписване на драйвери. Подписаният хеш се поставя в каталожен файл (.cat файл), който се поставя директно в директорията на пакета на драйвера.
По време на инсталирането на драйвера мениджърът на PnP потребителски режим извлича подписа на драйвера от .cat файла, дешифрира подписа с помощта на публичния ключ на Microsoft и сравнява получения хеш с хеша на инсталирания драйвер. Ако хешовете съвпадат, драйверът се маркира като WHQL тестван. Ако подписът не може да бъде проверен, PnP мениджърът действа в съответствие с настройките на правилата за подпис на драйвера на системата, като или забранява инсталирането на драйвера, или все още позволява инсталирането на драйвера.

Създайте резервно копие

Доста добра стратегия за Windows е да създадете точка за възстановяване, преди да добавите нови драйвери на устройства към системата. Това се дължи на първо място на факта, че драйвер за режим на ядрото, съдържащ грешка, може да бъде причина за пълната неработоспособност на системата и какво да правим с тази система? Дори въпреки всички подписи и проверки, потребителят трябва да може да върне конфигурацията в случай, че например не му хареса нещо след инсталирането.

Инсталиране на драйвери

Тази стъпка внедрява пакета драйвери на трета страна в хранилището на системни драйвери. След това системата извършва действителното инсталиране на драйвера от хранилището на драйвери, което се извършва с помощната програма %Windir%\System32\drvinst.exe. По време на тази фаза се случват следните събития:

  • inf файлът на драйвера се копира в специализираната папка %Windir%/inf. Типично за драйверите на трети страни е да преименуват файла на OEMx.inf, където x е поредният номер на inf файла в директорията.
  • Кодът на операционната система коригира факта на инсталиране на inf файла в системния регистър.
  • В регистъра по пътя се създава възел на устройство (devnode). HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ \\ , който съдържа подробна информация за устройството.
  • Двоичните файлове на драйвера се копират в целевата папка %Windir%\System32\DRIVERS и евентуално в други целеви папки. Ключовете в регистъра се актуализират.
  • Формира се ключът на системния регистър, съответстващ на драйвера: HKLM\SYSTEM\CurrentControlSet\Services\driver_name. Формират се ключови параметри.
  • Създава се ключ на регистъра, който отговаря за регистриране на събития на драйвери и се намира в клона HKLM\SYSTEM\CurrentControlSet\Services\EventLog\System\driver_name.
  • PnP мениджърът извиква процедурата DriverEntry за всеки новоинсталиран драйвер. След това PnP мениджърът в режим на ядрото се опитва да "стартира" драйвера, като го зареди в паметта и извика процедурата AddDevice на драйвера, за да информира самия драйвер за наличието на устройството, за което е зареден.

Местоположение на информацията за водача

В допълнение към описанието на самия алгоритъм за инсталиране на драйвери в Windows, бих искал да подчертая отделен раздел и да го посветя на описание на възможните местоположения на информация за драйвери във файловата система и регистъра. От практическа гледна точка тази информация има за цел да опрости ръчното редактиране в случай на фатални грешки. По-долу са местата, където може да забележите следи от информация за драйвера.

Общи регистрационни файлове на драйвери

В системата има редица регистрационни файлове, които могат да помогнат при различни проблеми, свързани с драйвера.

  • %Windir%\setupact.log -- съдържа съобщения за отстраняване на грешки от инсталатора на драйвера в режим на ядрото, който е Win32 DLL, който придружава процеса на настройка на устройството;
  • %Windir%\inf\setupapi.app.log -- съдържа съобщения от процеса на инсталиране на приложението;
  • %Windir%\inf\setupapi.dev.log -- съдържа съобщения за процеса на инсталиране на устройството;

Дневник на водача

Ако използвате Package Manager (pkgmgr), за да инсталирате/деинсталирате пакет, който (на свой ред) инсталира, актуализира или деинсталира драйвер, тогава имате опцията да активирате (за целите на отстраняване на грешки) създаването на специални драйвери за лог файл. log , който ще съдържа само специфични за драйвера грешки. За да генерирате този журнал, създайте/задайте следния ключ на системния регистър и след това стартирайте pkgmgr отново. След това в директорията, от която е стартиран pkgmgr, ще бъде създаден файл drivers.log.
Клон: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Device Installer
Ключ: DebugPkgMgr
Тип: Dword
Стойност: 1

%Windir%\inf

Всички inf файлове се съхраняват в тази директория. Както бе споменато по-горе, след инсталиране на драйвер на трета страна в системата, неговият inf файл се преименува на OEMx.inf, така че можете да видите цяла поредица от подобни файлове в директорията. Кодът на операционната система запомня факта, че inf файлът е инсталиран в системния регистър.

%Windir%\System32\DRIVERS

Това е директорията във файловата система на Windows, където се намират действителните файлове на драйвера. В съвременните операционни системи, а сега говоря за Windows Vista и по-нови, по-голямата част от драйверите в тази директория имат разширения .sys, dll файловете са по-рядко срещани, но това не променя общото значение, защото, независимо от разширение, всички те са идентични по структура с .dll файловете. В по-ранните операционни системи имаше формати като .drv и .vxd.

%Windir%\System32\DriverStore

Системната колекция от драйвери, която е предназначена да съдържа всички драйвери, които са преминали през вашата система. Използва се след Windows Vista. Преди да инсталирате драйвер в операционната система, първо специализираният код проверява подписа на драйвера, след това синтаксиса на inf файловете на драйвера, след това привилегиите на текущия потребител, едва след това добавя всички компоненти на драйвера към системната колекция. И едва след това драйверът може да се използва в системата за инсталиране на устройства без намеса на потребителя.

HKLM\SYSTEM\CurrentControlSet\Enum

Регистър кошер, съдържащ информация за устройствата в системата. PnP мениджърът създава тук ключ за всяко устройство във формата HKLM\SYSTEM\CurrentControlSet\Enum\Enumerator\deviceID. където Enumerator е идентификаторът на шината, описан по-горе в статията, получен на етапа на изброяване на устройството, deviceid е идентификаторът на типа устройство. Ключът съдържа следната информация: описание на устройството, хардуерни идентификатори (Hardware ID), съвместими идентификатори на устройства (Compatible ID) и изисквания за ресурси. Кошерът е запазен за използване изключително от кода на операционната система, така че потребителските приложения и драйвери не се препоръчват да взаимодействат директно с него, вместо да използват документирани системни функции.

HKLM\SYSTEM\CurrentControlSet\Control

Кошер на системния регистър, съдържащ информация за различни настройки на конфигурацията на драйвера на етапа на стартиране на операционната система. Съдържа такива важни ключове като:

  • Класът съдържа информация за класовете за инсталиране на устройства, които се използват за групиране на устройства, които са конфигурирани и инсталирани по подобен начин. За всеки инсталационен клас този ключ съдържа ключ, чието име е същото като GUID името на съответния инсталационен клас.
  • CoDeviceInstallers съдържа информация за програмите за съвместно инсталиране на класове
  • DeviceClasses съдържа информация за интерфейсите на устройствата, регистрирани в системата. всеки драйвер, който иска да взаимодейства с програми в потребителски режим в системата, трябва да предостави интерфейс. Класът на интерфейса на устройството излага функционалността на устройството и неговия драйвер на други системни компоненти и приложения в потребителски режим.

HKLM\SYSTEM\CurrentControlSet\Services

Регистър кошер, който се използва за съхраняване на информация за всички услуги (драйвери) в системата. Всеки системен драйвер поставя доста важна глобална информация за себе си в подключове на формуляра HKLM\SYSTEM\CurrentControlSet\Services\<Имя_драйвера> , който се използва от драйвера по време на процеса на инициализация на етапа на зареждане на системата. Кошерът се използва активно от PnP мениджъра за предаване на параметри при извикване на процедурата за инициализация на драйвера.
Този кошер съдържа следните елементи:

  • ImagePath - съдържа пълния път в двоичния файл (изображение) на драйвера. инсталаторът попълва тази стойност въз основа на данни от inf файла на пакета на драйвера;
  • Параметри - съхранява индивидуалната информация на водача, попълва се въз основа на данните, поставени в inf файла на пакета на драйвера;
  • Производителност - Информация за наблюдение на работата на устройството, управлявано от драйвера. Указва името на DLL за наблюдение на производителността и имената на функциите, експортирани от този DLL. Попълва се въз основа на данните, получени от inf файла;

HKLM\SYSTEM\CurrentControlSet\HardwareProfiles

Регистър кошер, който съдържа информация за хардуерните профили на системата и е проектиран да поддържа тази технология. Хардуерен профил е просто набор от промени в хардуерните и сервизните конфигурации по подразбиране (оригинална конфигурация), заредени при стартиране на системата. Съдържа конкретни промени в оригиналния основен хардуерен профил, конфигуриран в два ключа на системния регистър: HKLM\SOFTWARE и HKLM\SYSTEM. Не се използва в Windows 7, въпреки че ключовете в системния регистър остават, вероятно поради причини за съвместимост.

Това издание е предназначено за потребители, които вече са запознати донякъде с компютъра и искат да научат как да инсталират и конфигурират операционната система сами. Лесният за следване език и много илюстративни илюстрации ще ви помогнат да инсталирате Windows 7 правилно и да настроите компютъра си за оптимална производителност. В допълнение, книгата описва подробно основните принципи за възстановяване на операционната система.

Всички права запазени. Никоя част от тази книга не може да бъде възпроизвеждана под никаква форма без писменото разрешение на притежателите на авторските права.

Информацията, съдържаща се в тази книга, е получена от източници, смятани от издателя за надеждни. Въпреки това, с оглед на възможни човешки или технически грешки, издателят не може да гарантира абсолютната точност и пълнота на предоставената информация и не носи отговорност за възможни грешки, свързани с използването на книгата.

Книга:

Помислете за ситуация, при която набор от INF файлове се използва за инсталиране на оборудване.

отворен Контролен панели стартирайте механизма мениджър на устройства. В резултат на това ще се отвори прозорец, в който можете да видите списък на всички устройства, открити от операционната система на компютъра (фиг. 16.1).

По-голямата част от него се състои от устройства, разположени на дънната платка, и само няколко записа показват устройства, които са инсталирани като разширителна платка или свързани чрез външни портове.

Нашата задача е да инсталираме драйвер за устройство, което не се разпознава от операционната система. Ако вашето устройство все още не е свързано към вашия компютър, сега е моментът да го направите.

Ако устройството вече е свързано към компютъра, щракнете с десния бутон върху името на компютъра в горната част на списъка и изберете елемента Инсталиране на старо устройство в менюто, което се показва (фиг. 16.2). Това ще стартира съветника за инсталиране на хардуер, който ще ви напътства и води през инсталирането на хардуера (Фигура 16.3).


Ориз. 16.1.Стартиране на диспечера на устройства


Ориз. 16.2.Изберете Инсталиране на старо устройство

След като прочетете встъпителната реч и подготвите диска с драйвери, ако е необходимо, натиснете бутона Освен това,за да започнете процеса на инсталиране на устройството.


Ориз. 16.3.Съветник за настройка на хардуера

Помощникът за инсталиране предлага две опции за по-нататъшни действия: автоматична и ръчна инсталация на оборудване (фиг. 16.4). Автоматичната инсталация няма да направи нищо, тъй като операционната система вече се е опитала да направи това по време на инсталационния процес. Поради тази причина е необходимо незабавно да преминете към втория вариант. Задайте превключвателя на Инсталиране на оборудване, избрано ръчно от списъки натиснете бутона По-нататък.


Ориз. 16.4.Изберете опция за действие

В следващия прозорец ще видите списък с устройства от различни типове, драйвери за които са налични в операционната система (фиг. 16.5).


Ориз. 16.5.Посочете типа устройство, което ще се инсталира

Нека първо разгледаме опцията, когато сте намерили необходимия драйвер в списъка с производители и драйвери. След като го маркирате, натиснете бутона Освен това,за да преминете към инсталирането му.

В следващия прозорец съветникът за добавяне на хардуер ще покаже списък с всички драйвери, налични в системата за избрания тип устройство, сортирани по производител на хардуер. Ако сте сигурни, че някой от предложените драйвери е подходящ за вашето оборудване, изберете необходимия производител в лявата част на прозореца и необходимия драйвер в дясната част. След това можете да опитате да го инсталирате, като щракнете върху бутона По-нататък(фиг. 16.6). Това ще изведе прозорец за потвърждение, в който трябва да щракнете върху бутона отново. По-нататък(фиг. 16.7).

След като инсталацията на драйвера бъде потвърдена, съветникът за добавяне на хардуер копира необходимите драйвери в системата и се опитва да инициализира устройството. Ако инициализирането на устройството е било успешно, ще видите прозорец със съобщение, че драйверът за устройството е инсталиран правилно и устройството е готово за работа. В противен случай съветникът ще съобщи, че инсталацията е неуспешна и устройството не може да бъде стартирано или че има някои затруднения (фиг. 16.8).

Ориз. 16.6.Посочете драйвера за устройството


Ориз. 16.7.Потвърдете инсталирането на драйвера

Имате въпроси?

Докладвайте за правописна грешка

Текст, който да бъде изпратен на нашите редактори: