Інтернет Windows Android

Де знайти inf файл драйвера. Встановлення драйвера з INF-файлу

Вочевидь, що з кожного користувача персонального комп'ютера, іноді виникає необхідність підключити до своєї станції будь-який пристрій. Причина, через яку це відбувається, нас зараз не дуже цікавить, це може бути і добре знайомий багатьом апгрейд (з метою збільшення продуктивності окремих вузлів, і як наслідок загальної продуктивності системи), це може бути і просто додавання нового обладнання для розширення функціоналу існуючої конфігурації, як, наприклад, у разі підключення нового ігрового маніпулятора, це може бути потреба у використанні даних з флеш-накопичувача. Незалежно від того, яким саме чином підключаємо новий пристрій, операційна система Windows змушена реагувати на появу нового обладнання, виробляючи певні маніпуляції для забезпечення підтримки нового обладнання на програмному рівні. У багатьох операційних системах для забезпечення програмної взаємодії з пристроями використовуються інтерфейс між обладнанням та програмним шаром під назвою драйвер.

Драйвер (Driver) - програмне забезпечення, з якого операційна система і які працюють у її складі програмні модулі, отримують доступом до апаратного чи логічного пристроям.

Саме тому операційна система намагаємося всіма доступними їй методами забезпечити функціонування пристрою у своєму середовищі, для цього робиться спроба установки для пристрою, що знову підключається, відповідного драйвера, щоб тим самим надати функції нового пристрою для доступу програмам користувача режиму і коду режиму ядра, адже без цього самого горезвісного драйвера обладнання в системі працювати просто не зможе.
Я не випадково згадав у визначенні логічні пристрої, оскільки існує окрема категорія драйверів, які не обслуговують апаратне забезпечення, а інтегруються для розширення реалізації (розширення, доповнення) функціональних особливостей різних модулів системи. Але кого зараз здивуєш встановленням драйверів? Цей процес настільки вже добре знайомий усім користувачам ПК з багаторічної практики, що деякі, я впевнений, можуть робити це із заплющеними очима:) Але чи замислювалися ми про деталі цього процесу, чи коли-небудь роздумували над алгоритмом встановлення драйвера? Чи запитували, які саме дії виконує операційна система в момент підключення нового пристрою та інсталяції драйверів?

Погодьтеся, що з точки зору користувача процес установки драйвера в Windows, як правило, виглядає досить прозаїчно. У системному треї з'являється звичний анімований значок майстра установки, і система через деякий час може видати звіт про успішне або невдале завершення процедури інсталяції в системі драйвера нового пристрою. Більш того, найчастіше майстер установки крім цієї самої іконки в треї зовсім не видає жодних візуальних підтверджень про спроби інсталяції нового пристрою, при цьому "тихо" додаючи нове обладнання до списку пристроїв і (у разі невдачі) маркуючи спеціальним значком у диспетчері пристроїв, пропонуючи Користувачеві в ручному режимі продовжити конфігурування обладнання. Всі ці зовнішні процеси, добре вже знайомі як Вам так і мені, в тій чи іншій формі присутні у всіх версіях операційних систем Windows практично з моменту появи цієї операційної системи, незначно відрізняючись між собою лише в деталях. Вони стали настільки знайомими та звичними, що я навіть ніколи і не замислювався, а що ж відбувається "по той бік екрану", у надрах операційної системи, що ховається під цією уявною простотою? Як Ви побачите далі, установка драйвера Windows для фізичного або логічного пристрою приховує під собою досить складні та надзвичайно цікаві процеси. Алгоритм установки драйверау Windows можна розбити на наведені нижче ключові глобальні завдання:

  • Копіювання двійкового файлу драйвера у відповідний каталог у системі;
  • Реєстрація драйвера в системі Windows із зазначенням методу завантаження;
  • Додавання необхідної інформації до системного реєстру;
  • Скопіюйте/встановіть відповідні компоненти підтримки з пакету драйверів;

Крім основних завдань, що виконуються в рамках алгоритму встановлення драйвера в Windows, непогано було б класифікувати і умови, за якими стартує процес встановлення драйвера Windows:

  • Користувач інсталює у вимкнений комп'ютер новий пристрій. У цьому випадку сам процес виявлення нового пристрою і інсталяції драйвера починається вже на етапі завантаження операційної системи.
  • Користувач із правами локального адміністратора, за допомогою оснастки "Диспетчер пристроїв" ініціює встановлення або оновлення драйвера для будь-якого вже встановленого пристрою.
  • Користувач "на ходу" підключає до працюючого комп'ютера новий пристрій. У цьому випадку йдеться про певну категорію пристроїв, які можуть підключатися "на льоту", таких як пристрої із зовнішнім інтерфейсом eSata, USB та ін. Зрештою, ви не встановите внутрішню відеокарту, коли живлення подається на слоти PCIe, чи не так? Я особисто такого поки що не витворював:)
  • Користувач самостійно запускає програму інсталяції пакета драйвера з-під облікового запису з правами локального адміністратора. Такий спосіб може використовуватися як для встановлення драйверів для фізичних пристроїв, які підтримують стандарт Plug and Play, так і для встановлення не-PnP (legacy) драйверів, драйверів логічних пристроїв, які не можуть бути автоматично виявлені системою і які не можуть бути інстальовані інакше як вручну. Характерним прикладом можуть бути антивіруси або віртуальні машини, які встановлюють свої драйвери (логічні пристрої) в систему.
  • Користувач клацає правою кнопкою миші на .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 Manager, PnP Менеджер)- Хмара коду режиму ядра і режиму користувача, що відповідає за додавання, розпізнавання, видалення пристроїв в системі. Блок режиму ядра взаємодіє з іншими компонентами системи у процесі завантаження/установки програмного забезпечення, необхідного обслуговування наявних у системі пристроїв. Блок користувальницького режиму ( %Windir%\System32\umpnpmgr.dll, запускається в контексті головного системного процесу svchost.exe) відповідає за взаємодію з користувачем у ситуаціях, що вимагають встановлення нових драйверів або налаштування робочих параметрів вже інстальованих. Відповідає за призначення та подальше розподілення апаратних ресурсів, таких як переривання (IRQ), порти вводу-виводу, канали прямого доступу до пам'яті (DMA) та адреси пам'яті. Має функціонал визначення драйвера, необхідного для підтримки певного пристрою та функціонал завантаження/інсталяції даного драйвера. Вміє розпізнавати нові пристрої, реагувати на їх підключення та вимкнення. Це частина коду виконавчої підсистеми Windows.

Перелік пристроїв

Цілком стадію завантаження з самого її початку описувати сенсу немає, і ми почнемо з тільки з цікавого для нас етапу, на якому модуль Winload(.efi) завантажує ядро ​​операційної системи Windows 7 з файлу ntoskrnl.exe. Ядро запускає PnP менеджер, який є частиною виконавчої підсистеми. PnP менеджер стартує процес перерахування пристроїв з кореневого пристрою, драйвера віртуальної шини під назвою ROOT (Корінь), який уособлює собою всю систему і являє собою драйвер шини взагалі для всіх PnP- і не-PnP-пристроїв, а так само HAL (рівня апаратних) абстракцій). HAL на цьому етапі функціонує як драйвер шини, який перераховує пристрої безпосередньо підключені до материнської плати. Однак, HAL замість фактичного перерахування покладається на опис обладнання, що вже є у реєстрі. Мета HAL на даному етапі – виявити первинні шини, такі як PCI. Драйвер первинної шини PCI, у свою чергу, перераховує пристрої, підключені до даної шини, знаходить інші шини, для яких менеджер PnP відразу завантажує драйвера. Ці драйвера шин, у свою чергу, виявляють вже пристрої на своїх шинах. Даний рекурсивний процес перерахування, завантаження драйверів і подальшого перерахування, продовжується, поки всі пристрої в системі не будуть виявлені та налаштовані. У процесі перерахування PnP менеджер будує дерево пристроїв (device tree), яке однозначно визначає відносини між усіма пристроями системи. Вузли цього дерева, іменовані devnodes (скоріш від "вузли пристроїв"), містять інформацію про об'єкт пристрою, який, у свою чергу, докладно описує пристрій.
Записи всіх пристроїв, які були виявлені з моменту інсталяції системи, зберігаються у кущі реєстру HKLM\SYSTEM\CurrentControlSet\Enum. Підключи цього куща описують пристрої у такому форматі:

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

HKLM\SYSTEM\CurrentControlSet\Enum\

  • Enumerator – найменування драйвера шини. Може приймати такі значення: ACPI , DISPLAY , HDAUDIO , HID , HDTREE , IDE , PCI , PCIIDE , Root , STORAGE , SW , UMB , USB , USBSTOR та інші;
  • DeviceID – унікальний ідентифікатор для даного типу пристроїв;
  • InstanceID – унікальний ідентифікатор для різних екземплярів одного пристрою.

Справа в тому, що драйвер шини, до якої підключено пристрій, запитує у пристрою різні параметри (ідентифікатор виробника, пристрої, ревізії та ін) і формує так званий апаратний ідентифікатор (HardwareID), який однозначно описує пристрій і являє собою рядок параметрів, розділених знаками & і що складається з наступних частин:

  • Префікс, що описує шину, до якої підключено пристрій.
  • Ідентифікатор пристрою. Складається з кількох елементів, таких як ідентифікатор виробника, ідентифікатор продукту (моделі), ревізія пристрою.

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;
  • Системний каталог INF-файлів;

Для вищезазначених цілей пошуку та встановлення драйвера використовуються функції бібліотек setupapi.dll (функції підтримки інсталяції) та cfgmgr32.dll (менеджер конфігурації). У процесі пошуку використовуються отримані вже зараз ідентифікатори HardwareID і (опціонально) CompatibleID , значення яких описують всі можливі варіанти ідентифікації устаткування файлі інсталяції драйвера, тобто inf -файле. Значення ідентифікаторів пристрою порівнюються з тими, що описані в секціях Models зареєстрованих в системі inf -файлів. Списки ідентифікаторів упорядковані, тому специфічні описувачі обладнання представлені у списках першими. Якщо збіги ідентифікаторів виявлено в більш ніж одному файлі inf, точніша відповідність є кращою перед менш точною, підписані файли inf мають перевагу перед непідписаними, а пізніше підписані файли inf мають перевагу перед раніше підписаними. Якщо збіг на основі HardwareID не знайдено, то використовуються CompatibleID у разі наявності, звичайно ж. Якщо збіг не знайдено на основі CompatibleID, майстер установки обладнання може вивести запрошення на вказівку розташування свіжого драйвера обладнання. Давайте детальніше розглянемо всі ці джерела інформації про водія.

Сховище драйверів

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

Сховище драйверів - захищене системне розташування, каталог, що призначається для зберігання всіх пакетів драйверів, які будь-коли встановлювалися в системі.

Сховище драйверів було вперше запроваджено у Windows Vista. Перед встановленням будь-якого драйвера в систему спочатку спеціалізований код перевіряє цифровий підпис драйвера, потім синтаксис інф-файлів драйвера, потім привілеї поточного користувача, лише після цього поміщає всі компоненти драйвера в системний драйвер. зберігання. А ось потім драйвер, що знаходиться в сховищі драйверів, може бути використаний для установки пристроїв в системі. Оскільки процедура розміщення драйвера в сховищі досить опрацьована, сховище драйверів і є найдовіренішим джерелом інформації про драйвери.

Системний каталог INF-файлів

Паралельно система шукає драйвер у системному розташуванні, що описується значенням параметра DevicePath , що знаходиться у гілці реєстру HKLM\Software\Microsoft\Windows\CurrentVersion. Зазвичай параметр має значення %SystemRoot%\inf , що у більшості систем еквівалентно розташування C:\Windows\inf .

INF файл

Хотілося б зробити невеликий відступ та окремо поговорити про інформаційні файли пакета драйвера. inf -файл є одним із ключових компонентів комплекту драйверів. У ньому зберігається послідовність операцій із встановлення та видалення драйвера, описана спеціальними директивами, що вказують на розташування файлів функціонального драйвера. Файл містить команди, які додають до Реєстру інформацію, що відповідає за перерахування (Enum) драйвера та його класу (Class), і можуть містити вказівки для майстра установки обладнання із запуску так званих основних установників (Class Installer, Установник класу) та додаткових установників (CoInstaller , Cоінсталятор) для класу пристроїв та безпосередньо пристрою. Додатково inf-файл визначає тип, виробника, модель пристрою, клас драйвера, необхідні файли та ресурси.

Спільний інсталятор (за структурою, звичайна DLL) - додатковий інсталятор, який викликається на етапі встановлення, який виконує кроки встановлення підкласу або пристрою, такі як підготовка інфраструктури для роботи драйвера в системі (наприклад, встановлення NET.Framework), що відображають діалогові вікна конфігурації, які дозволяють користувачеві вказати налаштування для конкретного пристрою.

Важлива особливість співінсталяторів полягає в тому, що вони, у разі необхідності, виконують прив'язку екземплярів нового пристрою до необхідних для роботи протоколів. Це, наприклад, може стосуватися різного роду комунікаційних пристроїв, яким потрібні для роботи різні протоколи та транспорти, такі як ndis, pppoe, tcpip, tcpip6, smb, netbt.
У .inf-файлі додатково описуються операції розпакування, копіювання, запуску, перейменування файлів, додавання та видалення ключів у реєстрі та багато іншого.
Однак повернемося до головного алгоритму встановлення драйвера у Windows. У випадку, коли інсталятор драйверів пристроїв не знайшов відповідних драйверів у перерахованих вище локаціях, система маркує пристрій як невідомий.

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

Перевірка цифрового підпису драйвера

Справа в тому, що драйвер як частина коду режиму ядра є досить критичним компонентом операційної системи, і будь-які помилки, допущені розробником у коді драйвера, можуть призвести до серйозних збоїв (BSOD) в системі. З деякого часу Microsoft досить трепетно ​​ставиться до якості коду драйверів, і у зв'язку з цим операційні системи Windows були введені такі механізми як цифровий підпис драйвера і системна політика підпису драйверів.

Цифровий підпис драйвера - рядок змінної довжини, яка певною мірою є гарантом того, що код драйвера був створений надійним джерелом і не піддавався несанкціонованим модифікаціям.

Наступним кроком частина коду PnP менеджера, що працює в режимі користувача, перевіряє системну політику підписання драйверів. Якщо системна політика повідомляє коду ядра блокувати або попереджати про встановлення непідписаних драйверів, то менеджер PnP аналізує inf-файл драйвера на наявність директиви CatalogFile, яка вказує на файл каталогу (файл із розширенням .cat), що містить цифровий підпис пакету драйверів.

Файл каталогу (.cat) - спеціальний файл, який відіграє роль цифрового підпису для пакета драйвера, тому що окремо кожен файл, що входить до комплекту пакета драйвера, не підписується. Виняток становлять лише двійкові файли драйверів ядра етапу завантаження, та їх перевіряє окремий код ядра.

Для тестування драйверів та їх підписання була сформована лабораторія Microsoft Windows Hardware Quality Lab (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\ім'я_драйвера. Формуються параметри ключа.
  • Формується ключ реєстру, який відповідає за логування подій драйвера, що розміщується у гілці HKLM\SYSTEM\CurrentControlSet\Services\EventLog\System\ім'я_драйвера.
  • PnP менеджер викликає процедуру DriverEntry для кожного встановленого щойно драйвера. Потім PnP менеджер режиму ядра намагається "запустити" драйвер, підвантажуючи його в пам'ять і викликаючи процедуру AddDevice драйвера для інформування самого драйвера про наявність пристрою, для якого він був завантажений.

Розташування інформації про драйвери

Крім опису самого алгоритму установки драйвера в Windows, хотілося б виділити окремий розділ і присвятити його опису можливих місць розміщення інформації про драйвери у файловій системі та реєстрі. З практичного погляду інформація ця покликана спростити ручне редагування у разі виникнення будь-яких фатальних збоїв. Нижче наведено розташування, в яких можна побачити сліди присутності інформації про драйвери.

Загальні журнали драйверів

У системі є кілька журналів, які можуть допомогти з різними проблемами щодо драйверів.

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

Журнал драйвера

Якщо Ви використовуєте Диспетчер пакетів (Package Manager, pkgmgr) для інсталяції/деінсталяції пакета, який (у свою чергу) інсталює, оновлює або деінсталює драйвер, то у Вас є можливість включити (з метою налагодження) створення спеціального лог-файлу drivers.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

Кущ реєстру, що містить інформацію про різні параметри конфігурації драйверів на етапі запуску операційної системи. Містить такі важливі ключі як:

  • Class містить інформацію про класи інсталяції пристроїв, які використовуються для групування пристроїв, що конфігуруються та встановлюються схожим чином. Для кожного класу інсталяції у складі ключа є ключ, ім'я якого збігається з ім'ям GUID відповідного класу інсталяції.
  • CoDeviceInstallers містить інформацію про співінсталятори класу
  • DeviceClasses містить інформацію про інтерфейси пристроїв, зареєстрованих у системі. будь-який драйвер, який хоче взаємодіяти в системі з програмами режиму користувача, має надати інтерфейс. Клас інтерфейсу пристрою надає функціональні можливості пристрою та його драйвера іншим системним компонентам та програмам режиму користувача.

HKLM\SYSTEM\CurrentControlSet\Services

Кущ реєстру, який використовується для розміщення інформації про всі сервіси (драйвери) в системі. Кожен системний драйвер розміщує досить важливу глобальну інформацію про себе у підключах виду HKLM\SYSTEM\CurrentControlSet\Services\<Имя_драйвера> яка використовується драйвером у процесі ініціалізації на етапі завантаження системи. Кущ активно використовується менеджером PnP для передачі параметрів при виклику процедури ініціалізації драйвера.
У цьому кущі розміщуються такі елементи:

  • ImagePath - містить повний шлях у двійковому файлі (образі) драйвера. програма інсталяції заповнює це значення на основі даних із inf-файлу пакета драйвера;
  • Parameters - зберігає індивідуальну інформацію драйвера, заповнюється з урахуванням даних, розміщених в inf -файлі пакета драйвера;
  • Performance – інформація для моніторингу продуктивності пристрою, контрольованого драйвером. Вказує ім'я DLL моніторингу продуктивності та імена функцій, що експортуються даною DLL. Заповнюється на підставі даних, отриманих з inf-файлу;

HKLM\SYSTEM\CurrentControlSet\HardwareProfiles

Кущ реєстру, який містить інформацію про апаратні профілі системи та призначений для підтримки даної технології. Апаратний профіль це всього лише набір змін у стандартній апаратній конфігурації та конфігурації сервісів (original configuration), що завантажуються при старті системи. Містить специфічні зміни вихідного, основного профілю обладнання, налаштованого в двох розділах реєстру: HKLM SOFTWARE і HKLM SYSTEM . Не використовується в Windows 7, хоча ключі реєстру залишилися, ймовірно з метою сумісності.


Встановити необов'язкові товари - DriverDoc (Solvusoft) | | | |

На цій сторінці міститься інформація про встановлення останніх завантажень драйверів INF за допомогою засобу оновлення драйверів INF .

Драйвери INF є невеликими програмами, які дозволяють обладнанню INF взаємодіяти з програмним забезпеченням операційної системи. Постійне оновлення програмного забезпечення INF запобігає збоям та максимально підвищує продуктивність обладнання та системи. Використання застарілих або пошкоджених драйверів INF може призвести до системних помилок, збоїв та відмови обладнання або комп'ютера. Більш того, встановлення неправильних драйверів INF може зробити ці проблеми серйознішими.

Порада:якщо ви не знаєте, як оновлювати драйвери INF вручну, ми рекомендуємо завантажити службову програму для драйверів INF . Цей інструмент автоматично завантажить та оновить правильні версії драйверів INF, убезпечивши вас від встановлення неправильних драйверів INF .


Про автора:Джей Гітер (Jay Geater) є президентом і генеральним директором корпорації Solvusoft – глобальної компанії, що займається програмним забезпеченням та приділяє основну увагу новаторським сервісним програмам. Він все життя пристрасно захоплювався комп'ютерами та любить усе, пов'язане з комп'ютерами, програмним забезпеченням та новими технологіями.

Не така вже часта ситуація, але при обслуговуванні великого парку комп'ютерів користувача іноді трапляється таке, що для якогось пристрою виробник не випустив драйвери під потрібну версію OS. Це може бути стара версія OS, або старий пристрій. В загальному. інколи потрібно встановити драйвери вручну. Поставляються вони у вигляді кількох файлів. Найчастіше вони мають розширення inf або sys, але можуть бути іншими.

Процедура установки драйвера в Windows 10 залежить від того, яким саме способом ви його встановлюєте. Кожен спосіб має свої плюси та мінуси. Найголовніший плюс у тому, що будь-який користувач, від новачка до майстра, може вибрати для себе найзручніший, уникнувши системних помилок та вильоту програм надалі. Ми докладно розглянемо кожен спосіб окремо. Пам'ятайте, що найважливіше – використовувати драйвера з надійних джерел, щоб не пошкодити операційну систему і випадково не запустити вірус, усунення якого займе набагато більше часу та сил, ніж установка будь-якого драйвера.

Що потрібно для встановлення драйвера

Для того, щоб встановити драйвер вручну, потрібен інсталяційний диск або спеціальне програмне забезпечення, яке допоможе вам крок за кроком виконати всю процедуру установки. Нижче ми розглянемо одну з таких програм – Driver Easy. Бувають такі ситуації, коли через несумісність драйвер з інсталяційного диска видає помилку. Саме в таких випадках нам і потрібні програми, які допоможуть знайти та оновити драйвер. До того ж, цей варіант буде більш прийнятним для власників нетбуків, у яких часто відсутній дисковод. Для таких випадків є варіант установки необхідного драйвера з USB-накопичувача, його ми також сьогодні розберемо, тому що цей метод має свої особливості.

Ручне встановлення — інструкція

Встановлення драйвера вручну за допомогою диспетчера пристроїв

1. Відкрийте панель керування Windows 10, натиснувши клавішу Win + X (клавіша Windows та клавіша X) і клацніть лівою кнопкою миші на пункт «Панель управління»

2. Для зручності бажано настроїти маленькі значки.

3. Натисніть «Диспетчер пристроїв».

У вікні диспетчера пристроїв розгорніть категорії та знайдіть потрібний пристрій. Потім клацніть правою кнопкою миші на ім'я пристрою та виберіть пункт «Оновити програмне забезпечення драйвера». На фото наведено приклад встановлення драйвера мережевого адаптера Realtek PCIe GBE Family Controller.

Встановлення драйвера вручну за допомогою програми Driver Easy

1. У головному вікні Driver Easy натисніть драйвер пристрою, який потребує оновлення. Після цього ви побачите стандартне вікно диспетчера завдань, про яке було написано вище. Виберіть пристрій для оновлення.

2. У спливаючому вікні ви побачите два варіанти. Натисніть «Огляд мого комп'ютера», щоб інсталювати програмне забезпечення драйвера.

3. Натисніть Огляд, щоб знайти завантажений файл драйвера.

Натисніть кнопку Driver Easy Down Triangle, потім виберіть Open File Location, щоб відкрити папку з драйвером.

Для зручності ви можете скопіювати та вставити розташування завантажених файлів у поле.

Шлях до файлу:

Як ви вже зрозуміли, оновлення займає чимало часу та потребує базових знань роботи з персональним комп'ютером. Крім оновлення вручну, програма Driver Easy здатна виконувати автоматичний пошук, скачування та встановлення всіх драйверів, які потребують оновлення. Але, як ми вже говорили, це небезпечно, оскільки ця функція працює в автоматичному режимі, і в цьому випадку неможливо зробити резервну копію на випадок серйозного збою.

Встановлення драйвера з компакт- або DVD-диска

Майже всі виробники комп'ютерів та обладнання постачають у комплекті набір драйверів для різних апаратних пристроїв. Наприклад, компакт-диск з драйверами, що входить у комплекті з принтером, містить драйвери для багатьох принтерів, а не тільки для того, що ви придбали. Під час інсталяції драйверів переконайтеся, що ви встановлюєте драйвери для моделі принтера, а не для іншої. Також переконайтеся, що ви інсталюєте його для тієї версії Windows, яка інстальована на вашому комп'ютері. Процес встановлення драйвера з компакт-диска нічим не відрізняється від стандартного процесу інсталяції будь-якої іншої програми. Обов'язково виконуйте всі інструкції програми-установника під час першого запуску. У деяких випадках необхідно видалити старий драйвер перед встановленням нового.

Якщо у вас є компакт-диск із драйверами, але на комп'ютері немає дисковода або він не працює, ви також можете завантажити драйвери з USB-накопичувача.

Встановлення драйверів із USB-накопичувача

Після копіювання драйверів на USB-накопичувач, ви зможете встановити необхідне програмне забезпечення на свій комп'ютер. Переконайтеся, що накопичувач підключено до комп'ютера, відкрийте провідник Windows і знайдіть ім'я пристрою. Наприклад, якщо у вас є USB-накопичувач, якому при підключенні призначено диск E:, то вам потрібно натиснути значок з ім'ям E: для того, щоб відкрився вміст.

Як тільки драйвери будуть виявлені на диску, ви повинні визначити, як саме вони будуть встановлені на ваш комп'ютер. Якщо каталог містить файли, що виконуються, або файл установки (розширення *.exe), то ви можете встановити драйвер за допомогою цього файлу. Якщо драйвери стиснуті в ZIP-файл, вам необхідно розпакувати файл за допомогою таких архіваторів, як 7-Zip та WinZip.

Встановлення inf файлу

Якщо наведені вище рекомендації вам не допомогли, всі інструкції з установки драйверів та апаратних пристроїв завжди містяться у файлі з розширенням.inf, який знаходиться в папці C:Windowsinf. Папка з файлами інформації захищена та є прихованою. Щоб вона відобразилася, поставте галочку «Приховані елементи» в параметрах папки. Щоб знайти файл відомостей потрібного вам пристрою, дотримуйтесь наступної інструкції:

Відкрийте диспетчер пристроїв;

Клацніть правою кнопкою миші на вибраний пристрій та виберіть у меню «Властивості»

Після цього перейдіть на вкладку Відомості. Розкрийте список та виберіть «Ім'я INF». Назва файлу відображається у полі «Значення».

Після того, як ви дізналися ім'я файлу, повертайтеся в Менеджер завдань, виберіть пристрій, натисніть «Оновити драйвер» та вкажіть шлях до файлу *.inf (в даному прикладі це буде C:Windowsinfoem3.inf)

Сьогодні ми навчимо вас встановлювати драйвера для пристроїв із sys та inf файлів.

Пошук, встановлення та налаштування драйвера пристрою 200 р уб.

Завантажуючи драйвера з інтернету для своїх пристроїв, ви можете натрапити не на звичний вам інсталяційний пакет, а архів з файлами sys та inf. Sys файли є системними файлами, а inf часто складова частина драйвера обладнання комп'ютера. Якщо у вас до складу драйвера входить тільки sys і inf без звичного вам установника, не треба впадати у відчай, даний вид драйверів можна також встановити. У більшості випадків такі драйвери поширюються на сторонні сайти, не на сайти виробників. Тому будьте уважні і перевіряйте кожен скачений драйвер антивірусною програмою.

Встановлення драйвера у вигляді sys та inf файлів

1. Перше, що нам необхідно це зайти в диспетчер пристроїв. Натискаємо пуск, і за назвою "мій комп'ютер" викликаємо меню, що випадає, натисканням правою кнопкою миші і в списку вибираємо властивість. Відкриється нове вікно, в якому нам необхідно перейти в розділ "диспетчер пристроїв", розташований у лівій колонці. У списку знайдіть обладнання, яке позначено жовтим знаком оклику, клацаємо правою клавішею миші по пристрої якому необхідно встановити драйвер і тиснемо на пункт - оновити драйвер. Наступне вікно у нас запустить майстри з встановлення та налаштування нового обладнання. Вибираємо пункт для ручного встановлення драйвера пристрою.

2. Далі нам запропонують вибрати папку, в якій знаходяться наші драйвера, тобто sys або inf файли. Далі підтверджуємо свій вибір для початку встановлення драйвера. Якщо драйвер не сумісний із пристроєм або пристрій вже має нову версію драйвера, вам запропонують вибрати інший файл для правильного налаштування пристрою.

3. Якщо в завантаженому архіві виявите тільки один файл sys без inf, то майстер установки драйвера для пристрою не зможе встановити їх. Для того щоб драйвер правильно встановився і запрацював - необхідно скопіювати.sys файл у windows->System32->drivers. Після того як ми скопіювали драйвер в системну папку, запускаємо установку і пошук драйвера в автоматичному режимі. При установці таких файлів рекомендуємо їх перевіряти антивірусною програмою, тому що деякі зловмисники вбудовують шкідливий код у файли драйверів, а також завантаження драйверів найкраще з офіційного сайту.

Також якщо у вас виникнуть якісь труднощі з оновлення драйверів самостійно, то наші майстри із задоволенням виконають цю роботу.

Виїзд майстра та діагностика0 руб.

Драйвер- це специфічна керуюча програма, яка повідомляє операційну систему інформацію про підключене обладнання та надає механізми для його використання. Багато таких програмних продуктів містять у собі досить складний функціонал, обробляючи найрізноманітнішу інформацію, що проходить через устаткування, що обслуговується. Це може бути аудіо та відеоінформація, потоки даних скануючих, друкуючих та мережевих машин, інформація про натискання клавіш, рухи миші, взаємодія з переносними носіями, різноманітними мобільними телефонами тощо.

Відомості про встановлений "залізо" можна дізнатися, зайшовши в "Панель управління", обравши розділ "Система" і натиснувши посилання або кнопку "Диспетчер пристроїв"

У деревоподібному списку, що відкрився, будуть видно всі пристрої, видимі операційною системою.

Які бувають методи установки?

Якщо при підключенні нового обладнання операційна система не змогла автоматично налаштувати відповідне ПЗ, то Ви можете піти двома шляхами:

1. Скористайтеся спеціальними програмами для пошуку та автоматичної установки.

2. Самостійно знайти та встановити необхідне програмне забезпечення.

Обидва ці способи мають свої переваги та недоліки. Перший варіант безумовно зручніший і значно економить час. І при використанні стандартного обладнання такий підхід дасть хороші результати — усі залізяки запрацюють як слід і без збоїв. Крім того, при використанні останніх версій таких програм автоматизації Ви отримаєте найсвіжіші версії драйверних файлів. Докладніше про цей метод можна прочитати на цій сторінці нашого сайту: .

Незважаючи на значну зручність, часто буває так, що не вдається встановити програму, що управляє, автоматично через те, що її просто немає в базі даних обраної утиліти. В цьому випадку Вам доведеться зайнятися налаштуванням вручну. Хоч це й потребує більше часу, але такий підхід є найбільш надійним. Адже отримавши керуючу програму безпосередньо від виробника обладнання, Ви одночасно отримуєте гарантії її повної сумісності з пристроєм, що встановлюється з урахуванням всіх нюансів його роботи. Такі нюанси можуть бути враховані в універсальних збірниках.

Як отримати драйвер?

Зазвичай все потрібне програмне забезпечення йде у комплекті з купленим товаром на оптичному диску. У цьому випадку часто достатньо вставити диск у привод, запустити програму і слідувати підказкам у процесі налаштування.

Якщо ж диск загублений, або Ви хочете свіжішої версії, то зробити це можна на сайті виробника обладнання у відповідному розділі, який стандартно називається «Сервіс/Підтримка».

При пошуку потрібних файлів слід пам'ятати, для якої версії операційної системи Вам вони потрібні. Тому що програми, розроблені для Windows XP, швидше за все, не запрацюють нормально на більш нових ОС, а 32-розрядний софт може відмовитися функціонувати в 64-розрядному середовищі. І навпаки.

Може статися, що Вам в руки потрапить застаріла апаратура. І просто так запустити його на останніх версіях операційної системи не вдасться. У такому разі можна спробувати встановити його в режимі сумісності із старішими версіями Windows. На жаль, це не завжди призводить до успішного результату. І проблема відсутності нормальної підтримки під нові версії ОС змушує користувачів відмовлятися від користування багатьма цілком робітниками та корисними товарами.

Ручне встановлення драйвера

Зазвичай керуючі програми поставляються виробниками як настановних додатків. Запустивши установку, користувач отримує підказки та слідуючи настановним етапам без особливих проблем справляється з усім процесом налаштування.

Але досить поширена ситуація, коли такого дружнього софту не передбачено. І багато користувачів не знають, що робити у цьому випадку.

Нижче описано порядок дій у подібній ситуації на прикладі MP3-плеєра iRiver IFP-700.

Щоб зберегти інформацію, записану на мікрофон цього плеєра, необхідно встановити його драйвер, так і після цього скористатися спеціальною утилітою iRiver Music Manager. Але на жаль, на офіційному сайті iRiver не вдається скачати необхідні файли. Більше того, зі змісту сторінки на сайті видно, що цей плеєр розрахований на ОС не новіші за Windows XP.

Відповідно, для гарантії успіху потрібно встановлювати цей плеєр у Windows XP.

Небагато пошукавши, вдалося роздобути ось такий архів з потрібними файлами:

Розпаковуємо вміст архіву

і бачимо, що в ньому немає жодних exe-файлів. Але є , який описаний як «Відомості для встановлення».

Саме цей файл (у комплекті із сусідніми з цієї папки) і потрібний операційній системі, щоб успішно підключити плеєр до USB-порту.

Підключаємо плеєр шнуром до комп'ютера і бачимо, що з'явилося таке типове вікно:

Якщо ми підемо звичайним шляхом, і виберемо автоматичну зупинку, то після тривалого показу такого вікна

з'явиться повідомлення про невдачу. Тому натискаємо кнопку "Назад", щоб піти альтернативним шляхом.

У цьому вікні замість автоматичного способу слід вибрати варіант «Установка із зазначеного місця»

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

В результаті в рядку для пошуку має бути шлях до папки, в якій знаходиться inf-файл:

Після завершення процесу з'являється вікно про успішне виконання:

Можна додатково переконатися в цьому, перейшовши до Диспетчера пристроїв і побачивши там наявність встановленого плеєра:

Підсумки

Використовуючи перелічені в цій статті методи, Ви зможете успішно встановлювати керуючі програми для пристроїв, що використовуються. А знання того, як встановити драйвер вручну за допомогою inf-файлу, дозволить Вам максимально розширити кількість використовуваної апаратури, не залучаючи сторонніх фахівців. Крім того, використання офіційного софту з сайтів виробників пристроїв значно підвищить надійність Вашого комп'ютера.