Remedierea erorii: secțiunea incorectă de instalare a serviciului din acest fișier MPT inf. Instalarea unui driver dintr-un fișier INF Cum se instalează un fișier INF

04.11.2020 Siguranță

Evident, fiecare utilizator al unui computer personal din când în când trebuie să conecteze un dispozitiv la stația sa. Motivul pentru care se întâmplă acest lucru nu ne interesează prea mult acum; ar putea fi un upgrade care este bine cunoscut de mulți (pentru a crește performanța nodurilor individuale și, ca rezultat, performanța generală sisteme), aceasta poate fi pur și simplu adăugarea de noi echipamente pentru a extinde funcționalitatea configurației existente, cum ar fi, de exemplu, în cazul conectării unui nou controler de joc; poate fi și necesitatea de a utiliza date de pe o unitate flash. Indiferent de exact modul în care conectăm un nou dispozitiv, sistemul de operare Windows este nevoit să răspundă la apariția unor noi echipamente prin efectuarea anumitor manipulări pentru a asigura suportul noului echipament la nivel de software. Multe sisteme de operare folosesc o interfață între hardware și un strat software numit driver pentru a asigura interacțiunea software cu dispozitivele.

Conducător auto - software, cu ajutorul căruia sistemul de operare și modulele software care rulează în cadrul acestuia au acces la dispozitive hardware sau logice.

De aceea, sistemul de operare încearcă prin toate mijloacele disponibile să asigure funcționarea dispozitivului în mediul său; pentru aceasta, se încearcă instalarea driverului adecvat pentru dispozitivul nou conectat, pentru a asigura astfel funcțiile. a noului dispozitiv pentru acces la programele în modul utilizator și codul modului kernel, deoarece fără drivere foarte notorii, echipamentul din sistem pur și simplu nu va putea funcționa.
Nu întâmplător am menționat dispozitivele logice în definiție, deoarece există o categorie separată de drivere care nu întrețin hardware-ul, dar sunt integrate pentru a extinde implementarea (extensii, completări) caracteristici funcționale diverse module de sistem. Dar cine poate fi surprins instalând drivere acum? Acest proces este deja atât de familiar pentru toți utilizatorii de PC-uri de la mulți ani de practică, încât unii, sunt sigur, îl pot face cu ochii închiși :) Dar ne-am gândit la detaliile acestui proces, ne-am gândit vreodată la algoritm de instalare a driverului? Te-ai întrebat vreodată ce acțiuni efectuează sistemul de operare atunci când conectează un dispozitiv nou și instalează drivere?

De acord că, din punctul de vedere al utilizatorului, procesul de instalare a unui driver în Windows, în cele mai multe cazuri, arată destul de prozaic. Pictograma animată obișnuită a asistentului de instalare apare în bara de sistem și, după un timp, sistemul poate emite un raport privind finalizarea cu succes sau nereușită a procedurii de instalare pentru un nou driver de dispozitiv în sistem. Mai mult decât atât, adesea asistentul de instalare, în afară de această pictogramă din tavă, nu oferă nicio confirmare vizuală a încercărilor de a instala un nou dispozitiv, în timp ce adaugă „în liniște” echipamente noi la lista de dispozitive și (dacă nu reușește) îl marchează cu o pictogramă specială în managerul de dispozitive, sugerând utilizator în mod manual continuați configurarea echipamentului. Toate aceste procese externe, deja bine cunoscute atât pentru tine, cât și pentru mine, au fost prezente într-o formă sau alta în toate versiunile de sisteme de operare Windows aproape de la apariția acestui sistem de operare, diferind puțin unele de altele doar în detalii. Au devenit atât de familiari și obișnuiți, încât nici măcar nu m-am gândit la ce se întâmplă „de cealaltă parte a ecranului”, în adâncul sistemului de operare, ce se ascundea sub această simplitate imaginară? După cum veți vedea mai jos, instalare Drivere Windows pentru un dispozitiv fizic sau logic ascunde procese destul de complexe și extrem de interesante. Algoritm de instalare a driveruluiîn Windows pot fi împărțite în următoarele sarcini globale cheie:

  • Copierea fișierului binar al driverului în directorul corespunzător de pe sistem;
  • Înregistrarea șoferului în sistem Windows indicarea metodei de încărcare;
  • Plus informatie necesara la registrul de sistem;
  • Copiați/instalați componentele de suport aferente din pachetul de drivere;

În plus față de principalele sarcini efectuate ca parte a algoritmului de instalare a driverului în Windows, ar fi bine să clasificăm condițiile în care începe procesul de instalare a driverului Windows:

  • Utilizatorul instalează un nou dispozitiv într-un computer oprit. În acest caz, procesul de detectare a unui nou dispozitiv și de instalare a driverului începe deja în etapa de încărcare a sistemului de operare.
  • Un utilizator cu drepturi de administrator local, folosind snap-inul Device Manager, inițiază instalarea sau actualizarea unui driver pentru un dispozitiv deja instalat.
  • Utilizatorul „din mers” conectează un dispozitiv nou la un computer care rulează. În acest caz, vorbim despre o anumită categorie de dispozitive care se pot conecta din mers, precum dispozitivele cu interfata externa eSata, USB etc. La urma urmei, nu veți instala o placă video internă atunci când este alimentată sloturile PCIe? Eu personal nu am facut asta inca :)
  • Utilizatorul lansează independent programul de instalare a pachetului de drivere de dedesubt cont cu drepturi de administrator local. Această metodă poate fi folosită atât pentru a instala drivere pentru dispozitive fizice care acceptă standardul Plug and Play, cât și pentru a instala drivere non-PnP (veghete), drivere de dispozitiv logic care nu pot fi detectate automat de sistem și care nu pot fi instalate altfel în manual modul. Un exemplu tipic ar fi antivirusurile sau mașini virtuale, care își instalează driverele (dispozitivele logice) în sistem.
  • Utilizatorul face clic dreapta pe fișierul .inf din directorul driverului și selectează Instalare dintr-un cont cu drepturi de administrator local.

Dar ce este pachetul de driver în sine? La urma urmei, așa cum am văzut de mai multe ori, acesta este un întreg set de fișiere cu scopuri complet diferite, la prima vedere. Fără o revizuire mai aprofundată a structurii pachetului de instalare a driverului, ne va fi dificil să înțelegem algoritmul de instalare a driverului în sine, așa că vom prezenta componentele generale:

  • fișier(e) .inf. Componenta cheie a pachetului de instalare a driverului este un fișier care descrie procesul de instalare a driverului. inf este împărțit în secțiuni și constă în instrucțiuni care indică sistemului exact cum este instalat driverul: ele descriu dispozitivul instalat, locațiile sursă și de destinație ale tuturor componentelor driverului, diferite modificări care trebuie făcute în registru atunci când instalarea driverului Windows, a driverelor pentru informații despre dependență și așa mai departe. link fișiere .inf dispozitiv fizic cu controlul șoferului acest aparat.
  • Fișier(e) binar al driverului. Pachetul trebuie să conțină cel puțin un fișier .sys sau .dll pentru nucleul driverului. De fapt, un singur fișier .sys (ca ultimă soluție) poate fi instalat (cu rezervă) manual prin editarea registrului.
  • Executabile de instalare. De obicei, acestea sunt deja binecunoscute utilitare de instalare, care poartă numele setup.exe, install.exe și altele.
  • Eliminarea executabilelor. Acestea sunt de obicei utilitare de dezinstalare numite uninstall.exe.
  • Fișier(e) cu proceduri și biblioteci suplimentare. De obicei acestea sunt biblioteci auxiliare în format .dll, co-instalare.
  • fișier(e) .cat. Fișier catalog semnat digital. Aceste fișiere conțin semnături de directoare digitale și acționează ca o semnătură pentru fișierele pachet, cu ajutorul cărora utilizatorul poate determina originea pachetului și poate verifica integritatea fișierelor pachetului de driver. Necesar pe versiunile pe 64 de biți de Windows începând cu Vista și ulterioare și recomandat pentru toate celelalte.
  • Module de control în modul utilizator. De obicei, acestea sunt diverse aplicații de comandă care funcționează în modul utilizator, cum ar fi ATI Catalist Control Center, VIA HD Audio Desk, Realtek HD Audio Control Panel și altele asemenea.
  • Fișiere de ajutor. Unde am fi noi fără ei?

Termeni și definiții

În acest articol voi descrie o singură metodă de instalare, care, în orice caz, descrie aproape toate etapele algoritmului de instalare a driverului în Windows, care sunt aplicabile și altor metode. Și acum vom vorbi despre situația în care utilizatorul introduce un echipament nou, de exemplu o placă video, în conectorul intern al unui computer oprit. Dar mai întâi, să introducem câteva definiții de care avem nevoie în procesul de studiu al algoritmului de instalare a driverului.
Manager (dispecer) Plug and Play (Manager PnP, Manager PnP)- un nor de mod kernel și cod de mod de utilizator, responsabil pentru adăugarea, recunoașterea, eliminarea dispozitivelor din sistem. Blocul mod kernel interacționează cu restul componentelor sistemului în timpul descărcării/instalării software-ului necesar pentru deservirea dispozitivelor prezente în sistem. Blocarea modului utilizator ( %Windir%\System32\umpnpmgr.dll, rulează în contextul principal proces de sistem svchost.exe) este responsabil pentru interacțiunea utilizatorului în situațiile care necesită instalarea de noi drivere sau ajustarea parametrilor de funcționare în cele deja instalate. Responsabil pentru atribuirea și alocarea ulterioară a resurselor hardware, cum ar fi întreruperi (IRQ-uri), porturi I/O, canale de acces direct la memorie (DMA) și adrese de memorie. Are funcționalitatea de a determina driverul necesar pentru a suporta un anumit dispozitiv și funcționalitatea de descărcare/instalare a acestui driver. Capabil să recunoască dispozitive noi, să răspundă la conexiunea și deconectarea acestora. Face parte din codul subsistemului executiv Windows.

Enumerarea dispozitivelor

Nu are rost să descriem de la bun început întreaga etapă de încărcare și vom începe doar cu etapa care ne interesează, la care modulul Winload(.efi) încarcă nucleul sistemului de operare Windows 7 din fișierul ntoskrnl. .exe. Nucleul este lansat de managerul PnP, care face parte din subsistemul executiv. Managerul PnP începe procesul de enumerare a dispozitivelor din dispozitivul rădăcină, un driver de magistrală virtual numit ROOT, care reprezintă întregul sistem și este un driver de magistrală pentru toate dispozitivele PnP și non-PnP, precum și HAL (abstracții la nivel hardware) . HAL în această etapă funcționează ca un driver de magistrală care enumerează dispozitivele conectate direct placa de baza. Cu toate acestea, HAL, în loc să îl listeze efectiv, se bazează pe descrierea hardware deja prezentă în registry. Scopul HAL în această etapă este de a descoperi magistralele primare, cum ar fi PCI. Driverul de magistrală PCI principal, la rândul său, listează dispozitivele conectate la această magistrală și găsește alte magistrale pentru care managerul PnP încarcă imediat driverele. Acești șoferi de autobuz, la rândul lor, detectează dispozitivele din autobuzele lor. Acest proces recursiv de enumerare, încărcare drivere și apoi enumerare continuă până când toate dispozitivele din sistem au fost descoperite și configurate. În timpul procesului de enumerare, managerul PnP construiește un arbore de dispozitive care descrie în mod unic relațiile dintre toate dispozitivele din sistem. Nodurile din acest arbore, numite devnodes (prescurtare pentru nodurile dispozitivului), conțin informații despre un obiect dispozitiv, care, la rândul său, descrie dispozitivul în detaliu.
Înregistrările tuturor dispozitivelor care au fost detectate de la instalarea sistemului sunt stocate în stupul de registry HKLM\SYSTEM\CurrentControlSet\Enum. Subcheile acestui stup descriu dispozitivele în următorul format:

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

HKLM\SYSTEM\CurrentControlSet\Enum\

  • Enumerator - numele șoferului de autobuz. Poate lua valori: ACPI, DISPLAY, HDAUDIO, HID, HDTREE, IDE, PCI, PCIIDE, Root, STORAGE, SW, UMB, USB, USBSTOR și altele;
  • Identificatorul dispozitivului - identificator unic Pentru de acest tip dispozitive;
  • InstanceID - un identificator unic pentru diferite instanțe ale aceluiași dispozitiv.

Faptul este că șoferul magistralei la care este conectat dispozitivul solicită diverși parametri de la dispozitiv (identificator de producător, dispozitiv, revizie etc.) și generează un așa-numit identificator hardware (HardwareID), care descrie în mod unic dispozitiv și este un șir de parametri separați prin semne & și constând din următoarele părți:

  • Un prefix care descrie magistrala la care este conectat dispozitivul.
  • Identificatorul dispozitivului. Constă din mai multe părți, cum ar fi identificatorul producătorului, identificatorul produsului (modelului), revizuirea dispozitivului.

HardwareID este un șir de identificare care depinde de parametrii dispozitivului (producător, model, revizuire, versiune etc.) pe care Windows îi folosește pentru a potrivi dispozitivul cu fișierul .inf driver.

Structura tipică HardwareID:

PCI\VEN_10DE&DEV_1341&SUBSYS_2281103C&REV_A2

În plus față de HardwareID, dispozitivului i se atribuie parametrul(i) CompatibleID, care au un format similar, dar conțin doar valori mai generale care nu conțin parametri specifici dispozitivului (unii identificatori de dispozitiv) și sunt necesari pentru inițializarea unui gamă mai largă de dispozitive compatibile.

HardwareID și CompatibleID sunt folosite de codul executiv Windows pentru a găsi un driver de dispozitiv.

Detectare șofer

Dacă în etapa de enumerare a dispozitivelor și încărcare a driverelor, driverul funcțional al magistralei pe care este conectat noul dispozitiv informează managerul PnP despre modificările dispozitivelor copil conectate. Managerul PnP în modul kernel verifică dacă un driver este asociat cu dispozitivul interogând driverul magistralei pe care este conectat noul dispozitiv și obținând ID-ul hardware și, opțional, ID-ul compatibil al dispozitivului. Managerul PnP în modul kernel informează managerul PnP în modul utilizator cu un eveniment special că acest dispozitiv necesită instalare, transmițându-i identificatorii primiti. Managerul PnP în modul utilizator încearcă mai întâi să instaleze dispozitivul automat fără intervenția utilizatorului. Pentru a face acest lucru, managerul PnP în modul utilizator rulează utilitarul rundll32.exe pentru a lansa Expertul de instalare a driverului de dispozitiv (%Windir%\System32\Newdev.dll).

Expertul de instalare a driverului dispozitivului inițiază o căutare a unui driver adecvat pentru dispozitiv utilizând informații din toate fișierele de informații de sistem aflate în următoarele locații de sistem de încredere:

  • Depozitul de drivere;
  • Windows Update;
  • Directorul de sistem al fișierelor INF;

În scopurile de mai sus de căutare și instalare a driverului, sunt utilizate funcțiile bibliotecilor setupapi.dll (funcții de suport pentru instalare) și cfgmgr32.dll (manager de configurare). În timpul procesului de căutare, sunt folosite cele deja obținute. acest moment identificatori HardwareID și (opțional) CompatibleID, ale căror valori descriu toate opțiunile posibile pentru identificarea hardware-ului în fișierul de instalare a driverului, adică fișierul inf. Valorile de identificare ale dispozitivului instalat sunt comparate cu cele descrise în secțiunile Modele ale fișierelor inf înregistrate în sistem. Listele de identificatori sunt ordonate astfel încât descriptori hardware mai specifici sunt prezentați mai întâi în liste. Dacă au fost găsite potriviri ID în mai multe fișiere inf, potrivirea mai exactă este considerată a fi preferată față de potrivirea mai puțin exactă, fișierele inf semnate sunt preferate fișierelor inf nesemnate și fișierele inf semnate ulterior sunt preferate fișierelor inf semnate anterior. Dacă nu este găsită o potrivire bazată pe HardwareID, atunci se folosește CompatibleID, dacă este disponibil, desigur. Dacă nu se găsește o potrivire pe baza ID-ului compatibil, Expertul Adăugare hardware vă poate solicita să specificați o locație șofer proaspăt echipamente. Să aruncăm o privire mai atentă la toate aceste surse de informații despre șoferi.

Depozitul de drivere

Expertul de instalare a driverelor încearcă să găsească un fișier inf adecvat în magazinul de drivere de sistem, aflat în directorul %Windir%\System32\DriverStore, care conține toate, fără excepție, driverele de sistem incluse în distribuția Windows, obținute prin „serviciu” Windows Update", sau instalat în sistem de către utilizator.

Depozitul de drivere este o locație de sistem sigură, un director conceput pentru a stoca toate pachetele de drivere care au fost instalate vreodată pe sistem.

Depozitul de drivere a fost introdus pentru prima dată în Windows Vista. Înainte de a instala orice driver pe sistem, mai întâi codul specializat verifică semnătura digitală a driverului, apoi sintaxa fișierelor inf driver, apoi privilegiile utilizator curent, abia apoi introduce toate componentele driverului stocarea sistemuluişoferii. Dar apoi driverul situat în depozitul de drivere poate fi folosit pentru a instala dispozitive pe sistem. Deoarece procedura de plasare a unui driver în depozit este destul de sofisticată, depozitul de drivere este cea mai de încredere sursă de informații despre drivere.

Directorul de sistem al fișierelor INF

În paralel, sistemul caută driverul în locația sistemului descrisă de valoarea parametrului DevicePath situat în ramura de registru HKLM\Software\Microsoft\Windows\CurrentVersion. De obicei, valoarea este %SystemRoot%\inf, care pe majoritatea sistemelor este echivalentă cu locația C:\Windows\inf.

fișier INF

Aș dori să fac o mică digresiune și să vorbesc separat despre fișierele de informații ale pachetului de drivere. inf este una dintre componentele cheie ale setului de drivere. Stochează secvența operațiunilor de instalare și dezinstalare a driverului, descrisă de directive speciale care indică locația fișierelor driverului funcțional. Fișierul conține comenzi care adaugă informații la registrul responsabil pentru listarea (Enum) driverul și clasa acestuia (Class) și poate conține instrucțiuni pentru ca asistentul de instalare hardware să lanseze așa-numitele programe de instalare principale (Class Installer) și instalatorii suplimentari ( CoInstaller , Co-instalator) pentru clasa dispozitivului și dispozitivul în sine. În plus, fișierul inf definește tipul, producătorul, modelul dispozitivului, clasa driverului, fișierele și resursele necesare.

Co-instalator (un DLL obișnuit în structură) este un program de instalare suplimentar numit în etapa de instalare, care efectuează pași de instalare specifici subclasei sau dispozitivului, cum ar fi pregătirea infrastructurii pentru ca driverul să funcționeze în sistem (de exemplu, instalarea Pachetul NET.Framework), care emite configurația casete de dialog, care permit utilizatorului să specifice setările pentru un anumit dispozitiv.

O caracteristică importantă a co-instalatorilor este că, dacă este necesar, leagă instanțe ale unui dispozitiv nou la protocoalele necesare pentru funcționare. Acest lucru, de exemplu, se poate aplica pentru diferite tipuri de dispozitive de comunicație care necesită diferite protocoale și transporturi pentru a funcționa, cum ar fi ndis, pppoe, tcpip, tcpip6, smb, netbt.
Fișierul .inf descrie în plus operațiunile de despachetare, copiere, rulare, redenumire a fișierelor, adăugare și ștergere a cheilor din registry și multe altele.
Cu toate acestea, să revenim la algoritmul principal pentru instalarea unui driver în Windows. Dacă programul de instalare a driverului de dispozitiv nu găsește drivere adecvate în locațiile enumerate mai sus, sistemul marchează dispozitivul ca neidentificat.

În acest caz, utilizatorului i se cere să continue instalarea dispozitivului prin applet. manager de dispozitiv. După ce utilizatorul selectează în mod independent dispozitivul și specifică locația fișierelor driverului, algoritmul de instalare a driverului își continuă activitatea și următorul pas începe verificarea semnatura digitalaşoferii.

Se verifică semnătura digitală a driverului

Faptul este că driverul, ca parte a codului modului kernel, este o componentă destul de critică a sistemului de operare, iar orice eroare făcută de dezvoltator în codul driverului poate duce cu ușurință la eșecuri grave (BSOD) în sistem. De ceva timp, Microsoft a fost destul de sensibil la calitatea codului de driver și, în legătură cu aceasta, mecanisme precum semnătura digitală a driverului și politica de semnătură a driverului de sistem au fost introduse în sistemele de operare Windows.

Semnătura digitală a unui șofer este un șir de date de lungime variabilă care oferă o anumită asigurare că codul șoferului a fost creat de o sursă de încredere și nu a fost supus unor modificări neautorizate.

Următorul pas este porțiunea în modul utilizator a codului de manager PnP, care verifică politica de semnare a driverului de sistem. Dacă politica de sistem indică codului de kernel să blocheze sau să avertizeze despre instalarea driverelor nesemnate, atunci managerul PnP analizează fișierul inf driver pentru prezența unei directive CatalogFile care indică un fișier catalog (un fișier cu extensia .cat) care conține semnătura digitală a pachetului de șofer.

Fișier de catalog (.cat) - dosar special, care joacă rolul unei semnături digitale pentru întregul pachet de drivere, deoarece fiecare fișier inclus în pachetul de drivere nu este semnat separat. Singura excepție sunt binarele driverului de nucleu în faza de pornire, dar acestea sunt verificate de codul nucleului separat.

S-a format un laborator pentru a testa șoferii și a-i semna Microsoft Windows Hardware Quality Lab (WHQL), care testează temeinic driverele cu care sunt livrate distribuții Windows, precum și șoferi de la principalii furnizori de echipamente. Pentru toți ceilalți dezvoltatori de șoferi, sunt prevăzute proceduri pentru obținerea oportunității de a semna în mod independent șoferii pe o bază plătită. Când un șofer trece toate testele WHQL, acesta devine „semnat”. Aceasta înseamnă că WHQL generează un hash sau semnătură unică pentru driverul care identifică în mod unic fișierele driverului și apoi îl semnează folosind algoritmi criptografici folosind un cheie privată Microsoft obișnuia să semneze driverele. Hash-ul semnat este plasat într-un fișier director (fișier .cat) care este plasat direct în directorul pachetului de drivere.
În timpul procesului de instalare a driverului, managerul PnP în modul utilizator extrage semnătura driverului din fișierul .cat, decriptează semnătura folosind cheia publică Microsoft și compară hashul rezultat cu hash-ul fișierului driver instalat. Dacă hashurile se potrivesc, driverul este marcat ca a trecut testul WHQL. Dacă semnătura nu poate fi verificată, managerul PnP acționează în conformitate cu setările politicii de semnare a driverului de sistem, fie interzicând instalarea driverului, fie permițând în continuare instalarea driverului.

Crearea unei copii de rezervă

Este o strategie Windows destul de bună pentru a crea un punct de restaurare înainte de a adăuga noi drivere de dispozitiv la sistem. Acest lucru se datorează, în primul rând, faptului că un driver de mod kernel care conține o eroare poate face ca sistemul să devină complet inoperabil și apoi ce ar trebui să facem cu acest sistem? Chiar și în ciuda tuturor semnăturilor și verificărilor, utilizatorul ar trebui să poată anula configurația dacă, de exemplu, nu i-a plăcut ceva după instalare.

Instalarea driverului

În acest moment, pachetul de drivere terță parte este implementat în magazinul de drivere de sistem. Apoi, sistemul realizează instalarea efectivă a driverului din magazinul de drivere, care se face folosind utilitarul %Windir%\System32\drvinst.exe. În această etapă au loc următoarele evenimente:

  • inf al driverului este copiat în folderul specializat %Windir%/inf. Pentru driverele terțe, este obișnuit să redenumiți fișierul în OEMx.inf, unde x este numărul de serie al fișierului inf din director.
  • Codul sistemului de operare înregistrează instalarea fișierului inf în registru.
  • Un nod dispozitiv (devnode) este creat în registru de-a lungul căii HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ \\ , care contine informatii detaliate despre dispozitiv.
  • Binarele driverului sunt copiate în folderul țintă %Windir%\System32\DRIVERS și, eventual, în alte foldere țintă. Cheile de registry sunt actualizate.
  • Se generează o cheie de registry corespunzătoare driverului: HKLM\SYSTEM\CurrentControlSet\Services\nume_driver. Parametrii cheie sunt generați.
  • Este generată o cheie de registry responsabilă pentru înregistrarea evenimentelor driverului, situată în ramură HKLM\SYSTEM\CurrentControlSet\Services\EventLog\System\driver_name.
  • Managerul PnP apelează procedura DriverEntry pentru fiecare driver nou instalat. Managerul PnP în modul kernel încearcă apoi să „pornească” driverul încărcându-l în memorie și apelând rutina AddDevice a driverului pentru a informa driverul însuși despre prezența dispozitivului pentru care a fost încărcat.

Locația informațiilor șoferului

Pe lângă descrierea algoritmului de instalare a driverului în Windows, aș dori să evidențiez o secțiune separată și să o dedic unei descrieri locuri posibile postarea de informații despre șoferi în Sistemul de fișiereși registrul. Din punct de vedere practic, aceste informații au scopul de a simplifica editarea manuală în cazul oricăror erori fatale. Următoarele sunt locații în care este posibil să observați urme de informații despre șofer.

Jurnalele generale ale șoferului

Există o serie de jurnale pe sistem care pot ajuta cu diverse probleme ale driverului.

  • %Windir%\setupact.log -- conține mesaje de depanare din programul de instalare a driverului în modul kernel, care este un DLL Win32 care însoțește procesul de instalare a dispozitivului;
  • %Windir%\inf\setupapi.app.log -- conține mesaje din procesul de instalare a aplicației;
  • %Windir%\inf\setupapi.dev.log -- conține mesaje din procesul de instalare a dispozitivului;

Jurnalul șoferului

Dacă utilizați Managerul de pachete (pkgmgr) pentru a instala/dezinstala un pachet, care (la rândul său) instalează, actualizează sau dezinstalează un driver, atunci aveți posibilitatea de a activa (în scopuri de depanare) crearea unui fișier jurnal special de drivere .log , care va conține doar erori specifice driverului. Pentru a crea acest jurnal, creați/setați următoarea cheie de registry și apoi executați din nou pkgmgr. După aceasta, un fișier drivers.log va fi creat în directorul din care a fost lansat pkgmgr.
Filiala: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Device Installer
Cheie: DebugPkgMgr
Tip: DWord
Valoare: 1

%Windir%\inf

Toate fișierele inf sunt stocate în acest director. După cum am menționat mai sus, după instalare șofer terțîn sistem, fișierul său inf este redenumit OEMx.inf, astfel încât să puteți vedea o serie întreagă de fișiere similare în director. Codul sistemului de operare își amintește faptul că fișierul inf a fost instalat în registru.

%Windir%\System32\DRIVERS

Acesta este directorul din sistemul de fișiere Windows în care se află fișierele driverului. În sistemele de operare moderne, și vorbesc acum despre Windows Vista și mai târziu, majoritatea covârșitoare a driverelor din acest director au extensii .sys, fișierele dll sunt mai puțin frecvente, dar acest lucru nu schimbă sensul general, deoarece, indiferent de extensie, toate acestea sunt identice ca structură cu fișierele .dll. În sistemele de operare anterioare, formate precum .drv și .vxd au fost întâlnite.

%Windir%\System32\DriverStore

O colecție de drivere de sistem, care este menită să conțină fiecare driver care a trecut prin sistemul dumneavoastră. Folosit din Windows Vista. Înainte de a instala orice driver în sistem de operare, mai întâi codul specializat verifică semnătura driverului, apoi sintaxa fișierelor inf driver, apoi privilegiile utilizatorului curent și abia apoi adaugă toate componentele driverului la colecția de sistem. Și numai după aceasta, driverul poate fi folosit în sistem pentru a instala dispozitive fără nicio intervenție a utilizatorului.

HKLM\SYSTEM\CurrentControlSet\Enum

Un stup de registry care conține informații despre dispozitivele prezente în sistem. Managerul PnP creează aici o cheie pentru fiecare dispozitiv în format HKLM\SYSTEM\CurrentControlSet\Enum\Enumerator\deviceID. unde Enumerator este identificatorul magistralei descris mai sus în articol, obținut în etapa de enumerare a dispozitivului, deviceid este identificatorul tipului dispozitivului. Cheia conține următoarele informații: descrierea dispozitivului, identificatorii hardware (ID hardware), identificatorii dispozitivului compatibil (ID compatibil) și cerințele de resurse. Stupul este rezervat pentru utilizare exclusiv prin codul sistemului de operare, deci aplicații utilizator iar șoferilor nu li se recomandă să interacționeze direct cu acesta, dar sunt încurajați să folosească funcțiile de sistem documentate.

HKLM\SYSTEM\CurrentControlSet\Control

Stup de registru care conține informații despre parametri diferiți configurațiile driverului în etapa de pornire a sistemului de operare. Conține chei importante precum:

  • Clasa conține informații despre clasele de instalare a dispozitivelor, care sunt utilizate pentru a grupa dispozitivele care sunt configurate și instalate într-un mod similar. Pentru fiecare clasă de instalare, această cheie conține o cheie al cărei nume se potrivește cu numele GUID al clasei de instalare corespunzătoare.
  • CoDeviceInstallers conține informații despre co-instalatorii de clasă
  • DeviceClasses conține informații despre interfețele dispozitivelor înregistrate în sistem. orice driver care dorește să interacționeze cu programele în modul utilizator de pe sistem trebuie să ofere o interfață. Clasa de interfață dispozitiv oferă funcţionalitate dispozitiv și driverele acestuia către alte componente ale sistemului și aplicații în modul utilizator.

HKLM\SYSTEM\CurrentControlSet\Services

Un stup de registry care este utilizat pentru a plasa informații despre toate serviciile (driverele) din sistem. Fiecare driver de sistem plasează informații globale destul de importante despre el însuși în conexiunile formularului HKLM\SYSTEM\CurrentControlSet\Services\<Имя_драйвера> , care este utilizat de driver în timpul procesului de inițializare în faza de pornire a sistemului. Stupul este utilizat în mod activ de managerul PnP pentru a trece parametrii atunci când apelează procedura de inițializare a driverului.
Acest tufiș conține următoarele elemente:

  • ImagePath - conține calea completă către fisier binar(imagine) driver. programul de instalare completează această valoare pe baza datelor din fișierul inf al pachetului de driver;
  • Parametri - stochează informații individuale ale șoferului, completate pe baza datelor plasate în fișierul inf al pachetului de șofer;
  • Performanță - informații pentru monitorizarea performanței dispozitivului controlat de șofer. Specifică numele DLL-ului de monitorizare a performanței și numele funcțiilor exportate de acest DLL. Completat pe baza datelor obținute din fișierul inf;

HKLM\SYSTEM\CurrentControlSet\HardwareProfiles

Un stup de registry care conține informații despre profilurile hardware ale sistemului și este conceput pentru a susține această tehnologie. Un profil hardware este doar un set de modificări ale configurației hardware standard și ale configurației serviciului (configurația originală), încărcate la pornirea sistemului. Conține modificări specifice ale profilului hardware principal, original, configurat în două chei de registry: HKLM\SOFTWARE și HKLM\SYSTEM. Nu este folosit în Windows 7, deși cheile de registry rămân, probabil din motive de compatibilitate.

Aceasta nu este o situație atât de comună, dar atunci când deserviți o flotă mare de computere de utilizator, uneori se întâmplă ca pentru anumite dispozitive producătorul să nu fi lansat drivere pentru versiunea necesară a sistemului de operare. Ar putea fi versiune veche OS sau dispozitiv vechi. În întregime. Uneori trebuie să instalați driverele manual. Ele sunt de obicei furnizate sub formă de mai multe fișiere. Cel mai adesea au extensia inf sau sys, dar pot fi și diferite.

Procedura de instalare a unui driver în Windows 10 depinde de modul în care îl instalați. Fiecare metodă are avantajele și dezavantajele sale. Cel mai important avantaj este că orice utilizator, de la începător la maestru, îl poate alege pe cel mai convenabil pentru el însuși, evitând erori de sistemși plecarea programelor în viitor. Vom analiza fiecare metodă în detaliu separat. Amintiți-vă că cel mai important lucru este să folosiți drivere din surse de încredere pentru a nu deteriora sistemul de operare sau lansați accidental un virus, a cărui eliminare va dura mult mai mult timp și efort decât instalarea oricărui driver.

Ce ai nevoie pentru a instala driverul

Pentru a instala manual driverul, aveți nevoie de un disc de instalare sau de un software special care vă va ajuta pas cu pas prin întreaga procedură de instalare. Mai jos ne vom uita la unul dintre aceste programe - Driver Easy. Există situații când, din cauza incompatibilității șoferului cu disc de instalare dă un mesaj de eroare. În astfel de cazuri avem nevoie de programe care ne vor ajuta să găsim și să actualizăm driverul. În plus, această opțiune va fi mai acceptabilă pentru proprietarii de netbook-uri, care adesea nu au o unitate de disc. Pentru astfel de cazuri, există o opțiune de a instala driverul necesar de pe o unitate USB, ne vom uita și la asta astăzi, deoarece această metodă are propriile sale caracteristici.

Instalare manuală - instrucțiuni

Instalarea manuală a driverului utilizând Device Manager

1. Deschideți panoul Gestionare Windows 10 apăsând simultan Cheia Win+X( Tasta Windowsși tasta X) și faceți clic stânga pe elementul „Panou de control”.

2. Pentru comoditate, este recomandabil să configurați pictograme mici.

3. Faceți clic pe „Manager dispozitive”.

În fereastra Device Manager, extindeți categoriile și găsiți dispozitivul de care aveți nevoie. Apoi faceți clic dreapta pe numele dispozitivului și selectați Actualizare software driver. Fotografia prezintă un exemplu de instalare a driverului adaptorului de rețea Realtek PCIe GBE Family Controller.

Instalarea manuală a driverului utilizând Driver Easy

1. În fereastra principală a programului Driver Easy, faceți clic pe driverul dispozitivului care trebuie actualizat. După aceasta, veți vedea fereastra standard de manager de activități, care a fost descrisă mai sus. Selectați dispozitivul de actualizat.

2. Veți vedea două opțiuni în fereastra pop-up. Faceți clic pe Browse My Computer pentru a instala software-ul driverului.

3. Faceţi clic pe Răsfoire pentru a găsi fişierul driver descărcat.

Faceți clic pe butonul Triunghi în jos din Driver Easy, apoi selectați Deschideți locația fișierului pentru a deschide folderul driverului.

Pentru comoditate, puteți copia și lipi locația fișierelor descărcate în câmp.

Calea către fișier:

După cum ați înțeles deja, actualizarea necesită mult timp și necesită cunoștințe de bază de lucru calculator personal. Pe lângă actualizarea manuală, Driver Easy poate căuta, descărca și instala automat toate driverele care necesită actualizare. Dar, așa cum am spus deja, acest lucru este nesigur, deoarece această funcție funcționează în modul automat și, în acest caz, este imposibil de făcut copie de rezervăîn cazul unei defecțiuni grave.

Instalarea driverului de pe un CD sau DVD

Aproape toți producătorii de computere și hardware oferă un set de drivere pentru diferite dispozitive hardware. De exemplu, CD-ul cu drivere care vine cu imprimanta dvs. conține drivere pentru multe imprimante diferite, nu doar pentru cea achiziționată. Când instalați drivere, asigurați-vă că instalați drivere pentru modelul dvs. de imprimantă și nu pentru altul. De asemenea, asigurați-vă că îl instalați pentru versiunea de Windows care este instalată pe computer. Procesul de instalare a unui driver de pe un CD nu diferă de procesul standard de instalare al oricărui alt program. Asigurați-vă că urmați toate instrucțiunile din programul de instalare prima dată când îl executați. În unele cazuri, trebuie să eliminați șofer vechiînainte de a instala unul nou.

Dacă aveți un CD cu drivere, dar computerul nu are o unitate sau nu funcționează, puteți încărca driverele și de pe o unitate USB.

Instalarea driverelor de pe o unitate USB

După ce ați copiat driverele pe o unitate USB, puteți instala software-ul necesar pe computer. Asigurați-vă că unitatea este conectată la computer, deschideți Windows Explorer și găsiți numele dispozitivului în ea. De exemplu, dacă aveți o unitate USB care este atribuită unității E: atunci când este conectată, atunci trebuie să faceți clic pe pictograma numită E: pentru ca conținutul să se deschidă.

Odată ce driverele sunt găsite pe disc, trebuie să stabiliți exact cum vor fi instalate pe computer. Dacă directorul conține fișiere executabile sau fișier de instalare (extensia *.exe), apoi puteți instala driverul folosind acest fișier. Dacă driverele sunt comprimate într-un fișier ZIP, va trebui să extrageți fișierul folosind arhivare precum 7-Zip și WinZip.

Se instalează fișierul inf

Dacă recomandările de mai sus nu v-au ajutat, atunci toate instrucțiunile pentru instalarea driverelor și a dispozitivelor hardware sunt întotdeauna conținute într-un fișier cu extensia .inf, care se află în folderul C: Windowsinf. Dosarul care conține fișierele de informații este protejat și ascuns. Pentru ca acesta să apară, în setările de vizualizare a folderului, bifați caseta de selectare „Elemente ascunse”. Pentru a găsi fișierul de informații pentru dispozitivul de care aveți nevoie, urmați aceste instrucțiuni:

  • deschideți managerul de dispozitive;
  • faceți clic dreapta pe dispozitivul selectat și selectați „Proprietăți” din meniu
  • După aceea, accesați fila „Detalii”. Extinde lista și selectează „Nume INF”. Numele fișierului va fi afișat în câmpul „Valoare”.
  • După ce cunoașteți numele fișierului, reveniți la Task Manager, selectați dispozitivul, faceți clic pe „Actualizați driverul” și specificați calea către fișierul *.inf (în în acest exemplu va fi C:Windowsinfoem3.inf).

    Astăzi vă vom învăța cum să instalați drivere de dispozitiv din fișierele sys și inf.

    Găsirea, instalarea și configurarea unui driver de dispozitiv 200 freca.

    Când descărcați drivere de pe Internet pentru dispozitivele dvs., este posibil să întâlniți un driver care nu este cel cu care sunteți obișnuit. pachet de instalare, și arhiva cu fișierele sys și inf. Fișierele Sys sunt fișiere de sistem, iar inf face adesea parte din driverul hardware al computerului. Dacă driverul dvs. include doar sys și inf fără programul de instalare obișnuit, nu disperați, acest tip pot fi instalate și drivere. În cele mai multe cazuri, astfel de drivere sunt distribuite pe site-uri ale terților, nu pe site-urile producătorilor. Prin urmare, aveți grijă și verificați fiecare driver descărcat program antivirus.

    Instalarea driverului sub formă de fișiere sys și inf

    1. Primul lucru pe care trebuie să-l facem este să mergem la managerul de dispozitive. Faceți clic pe Start și, după numele „Computerul meu”, apelați meniul derulant făcând clic dreapta și selectați o proprietate din listă. Se va deschide o nouă fereastră în care trebuie să mergem la secțiunea „Manager de dispozitive” situată în coloana din stânga. În lista care se deschide, găsiți echipamentul care este marcat cu un semn de exclamare galben, faceți clic dreapta pe dispozitivul pentru care trebuie să instalați driverul și faceți clic pe elementul - actualizați driverul. Următoarea fereastră va lansa un expert pentru instalarea și configurarea echipamentelor noi. Selectați un articol pentru instalare manuală driver de dispozitiv.

    2. În continuare ni se va cere să selectăm folderul în care se află driverele noastre, adică fișierele sys sau inf. Apoi, confirmați alegerea de a începe instalarea driverului. Dacă acest driver nu este compatibil cu dispozitivul dvs. sau dispozitivul dvs. are deja mai multe versiune noua driver, vi se va solicita să selectați un alt fișier pentru setări corecte dispozitive.

    3. Dacă în arhiva descărcată găsiți doar una fisier sys fără inf, asistentul de instalare a driverului de dispozitiv nu le va putea instala. Pentru ca driverul să se instaleze corect și să funcționeze, trebuie să copiați fișierul .sys în Windows->System32->drivere. După ce ne-am copiat driverul în folderul de sistem, începem instalarea și căutăm automat driverul. Când instalați astfel de fișiere, vă recomandăm să le verificați cu un program antivirus, deoarece unii atacatori încorporează cod rău intenționatîn fișierele driverului; de asemenea, cel mai bine este să descărcați driverele de pe site-ul oficial.

    De asemenea, dacă întâmpinați dificultăți la actualizarea dvs. a driverelor, tehnicienii noștri vor fi bucuroși să facă această lucrare.

    Vizita de expert si diagnosticare0 freca.

    Cum să forțați instalarea driverelor pe Windows 7.

    Acest tip de instalare a driverului ajută aproape întotdeauna când driverul pentru dispozitiv nu este instalat prin simpla rulare fișier de instalare înființat, cu extensii *.exe sau *.msi.

    Dar principala condiție pentru instalarea cu succes a driverului în acest caz este ca driverul să fie complet dezambalat și fișierul cu extensia *.inf trebuie sa fie disponibil. Adesea, producătorii de hardware își împachetează driverele nu numai cu arhivare ZIP standard, ci și folosind programe complexe create de ei. Aici un program poate fi foarte util pentru despachetare Extractor universal, care poate fi folosit pentru a despacheta aproape orice program de instalare a driverelor.

    Sa luam in considerare cum să forțați instalarea unui driver în Windows 7 folosind o cameră web ca exemplu Defender AV-W2035. Există un driver descărcat de pe Internet AV-W2035_VISTA.zip, pe care l-am despachetat cu succes într-un folder C:/AW-0350-MIC-VISTA. În primul rând, trebuie să ne uităm unde se află fișierul nostru cu extensia *.inf. Pentru a face acest lucru în proprietăți folderele Windows Trebuie să activați afișarea extensiilor de fișiere, astfel încât numele fișierelor să fie scrise cu extensiile lor. Sau folosește foarte program util Comandant total sau asemănător manager de fișiere. După ce am căutat prin foldere (puteți folosi căutarea fișierelor), am găsit fișierul snpstd2.inf

    Ar trebui să vă amintiți întreaga cale către acest fișier, astfel încât mai târziu să fie mai ușor să îl găsiți Conductor. Conectăm camera la computer și așteptăm ca Windows să finalizeze toate operațiunile pentru a detecta hardware nou.

    Deschidere manager de dispozitiv (Start –> Panou de control –> Manager dispozitive)

    Dispozitivul este imediat vizibil Cameră USB fără drivere instalate. Faceți clic dreapta pe cameră și meniul contextual selectați un articol Actualizați driverele...

    în fereastra care se deschide, faceți clic

    și apoi selectați butonul Mai departe

    Se va deschide o fereastră cu o listă de categorii de echipamente.
    Pentru a nu pierde timpul sau a-ți zbuci creierii, pur și simplu arătăm spre prima linie Afișați toate dispozitiveleși apăsați butonul Mai departe

    În fereastra următoare vom vedea o listă de drivere disponibile în sistem (dacă există). Dar din moment ce știm că avem un folder cu driverul, fără a selecta nimic din listă, facem clic pe butonul

    apasa butonul Revizuire…

    iar folosind Explorer căutăm fișierul nostru cu extensia *.inf, selectați-l cu mouse-ul și urmați butonul Deschis

    și, desigur, un buton Bine

    Acum driverul nostru va apărea în fereastra cu o listă de drivere disponibile (dacă driverul nu este potrivit pentru echipament, sistemul va genera o eroare).

    Aici ar trebui să acordați atenție casetei de selectare Doar dispozitive compatibile. Faptul este că dacă echipamentul conectat nu a fost testat pentru compatibilitate cu versiunea instalată Windows, atunci nu există driver pentru el, în ciuda faptului că poate funcționa destul de mult. Prin urmare, în unele cazuri, această casetă de selectare ar trebui să fie debifată și căutarea șoferului trebuie repetată.

    Deci, după ce fișierul cu driverul este găsit, selectați driverul nostru din listă cu mouse-ul și apăsați butonul Mai departe

    Instalarea driverului va începe.

    Poate apărea o avertizare Windows care indică faptul că driverul pe care îl instalați nu este semnat digital sau nu a fost testat pentru compatibilitate. Dacă sunteți sigur că driverul a fost preluat dintr-o sursă de încredere și este destinat exact echipamentului instalat, atunci nu ar trebui să vă fie frică de un astfel de avertisment, dar ar trebui să fiți de acord să instalați în continuare driverul. Când instalarea este finalizată, sistemul va afișa o fereastră de finalizare.

    Puteți verifica instalarea reușită a driverului verificând Manager de dispozitiv, unde dispozitivul conectat nu va mai avea un semn de întrebare, iar numele acestuia se va schimba în cel corect creat de producător. În cazul nostru cu camera, acesta va fi dispozitivul care apare cu numele Cameră USB pentru PC (SN9C103)

    Instalarea este finalizată, puteți începe în siguranță să utilizați noul dumneavoastră echipament!