Ce fel de lemn de foc are un calculator? Cum se numește driverul plăcii de bază?

Ce fel de lemn de foc are un calculator? Cum se numește driverul plăcii de bază?

Aflați cum să găsiți driverele necesare pentru orice dispozitiv conectat la computer, fără prea multă agitație.

Nu le pasă de cei care sunt deja în secolul 21, iar computerele sunt aceleași pentru toată lumea, care sunt puse înaintea lor, ca o minune neterminată a tehnologiei. Mai mult, credem cu tărie că au cel mai bun PC (pentru că așa a spus vânzătorul :)), astfel de vânzători nu instalează programe noi pe ele și nu pot verifica dacă computerul funcționează într-adevăr normal.

Ce sunt eu? Până la punctul în care recent am avut șansa să mă confrunt cu problema de a nu avea un driver normal de placă video instalat la unii dintre prietenii mei din nou și din nou după ce am cumpărat un computer! Skarga bula zvichaina - "" :) De ce nu te-ai deranja, ca nu exista sofer?!!

Vă rugăm să rețineți că astăzi verificăm computerele noastre pentru a vedea dacă au driverele necesare.

Ce driver ar trebui sa instalezi?

Un driver este un set de componente software care asigură interacțiunea normală între un computer și o placă de extensie nou conectată. Cu alte cuvinte, acest lucru este special program de service Cum puteți transmite comenzi de la periferie la procesor și înapoi.

Fără driver, echipamentul conectat fie nu funcționează (imprimante, scanere și alte echipamente de birou), fie funcționează, dar nu este în modul optim (plăci video, chipnet-uri etc.). Mai mult, pentru funcționarea normală a PC-ului, nu este suficient să reinstalați pur și simplu sistemul; este, de asemenea, important să cunoașteți driverele pentru toate componentele sale!

Driverul poate fi furnizat în trei opțiuni:

  1. Fișier de instalare EXE (sau MSI);
  2. carcasă grafică cu posibilitatea de selecție și instalare în masă;
  3. colecție de biblioteci și fișiere de serviciu, completări cu un fișier INF.

Prima versiune de livrare a driverului se găsește cel mai adesea pe Internet și pe discurile de instalare care vin cu accesoriile pe care le-ați adăugat. Tot ce trebuie să faceți este să îl descărcați (sau să îl deschideți pe disc) și să rulați fișierul EXE, iar în fața noastră va apărea Installation Master, care vă va permite să setați totul pas cu pas. În acest caz, instalarea driverului nu este mai simplă decât instalarea oricărui program.

O altă opțiune de livrare poate fi găsită pe discuri cu colecții diferite, care pot găzdui un număr de drivere diferiți (de exemplu, drivere pentru placa de baza sau acesta este numele pachetului de șoferi). Astfel de ansambluri vă permit să instalați în mod selectiv driverele (sau toate odată) și nu sunt mai complicate decât instalatorii standard, dar pot fi de dimensiuni mari.

Instalarea driverului folosind a treia metodă este cea mai puțin evidentă. Astfel de drivere sunt adesea folosite pentru tehnologie vecheȘi nu utilizați programul de instalare grafic, apoi includeți un fișier (unele și mai multe) cu extensii INF, care specifică toți pașii pentru instalarea pachetului de bibliotecă pentru echipamentul de lucru conectat:

Pentru a instala driverul în acest fel, trebuie să mergeți la „Manager dispozitiv” (pictograma „Computer” - RMB - „Putere” (pe sisteme mai vechi, fila „Dispozitiv”)) faceți clic pe meniul contextual al unui necunoscut dispozitiv și selectați elementul „Actualizați driverele”.

Se va deschide o fereastră din care putem parcurge următoarea cale (făcând clic pe butoanele corespunzătoare): „Căutați drivere pe computerul dvs.” - „Selectați un driver din lista celor deja instalate” - „Instalați de pe disc”, apoi faceți clic pe butonul „Uite” Și specificați locația fișierului INF de care aveți nevoie:

După confirmarea selecției fișierului INF, va apărea o notificare fie despre instalarea cu succes, fie despre faptul că fișierul selectat nu este potrivit și trebuie să selectați altul (sau nu). Ceea ce este necesar din fișierele INF nu permite instalarea sofer necesar, ceea ce înseamnă că va trebui să găsești o alternativă la PZ sau să fi decis să schimbi hardware-ul sau sistemul pentru a atinge funcționalitatea dispozitivului cu PC-ul tău.

Ei bine, acum, dacă știți ce este un driver, de ce aveți nevoie și cum să îl instalați, este timpul să învățați cum să găsiți drivere.

Voi căuta un nume și voi găsi o extensie

Orice dispozitiv (nu un virus chinezesc fără nume) are propriul său nume. Cunoscând numele versiunii sistemului dumneavoastră, în cele mai multe cazuri, puteți formula corect sunetul este pornit pentru intrare în sistemul de sunet. De exemplu: „șofer Imprimanta Canon IP1500 pentru Windows 7 pe 64 de biți” sau „driver Radeon HD 8700M Windows 8”.

Rezultatele căutării se vor baza pe site-uri de pe care puteți obține driverul necesar. Cu toate acestea, nu toate site-urile vă permit să descărcați fără costuri! Pentru a evita grijile inutile prin finanțare sau instalarea de software neclar, vă recomand să consultați portalul rusesc:

Pe acest site a fost adunată una dintre cele mai avansate colecții de drivere de pe întregul Internet cu un volum total de peste 300 TB! Aici puteți căuta driverul atât după tipul de dispozitiv (lista principală este „Categorii de proprietate”), cât și după numele dispozitivului (indexul alfabetic din partea de sus a paginii).

Pe pagina cu componenta necesară va exista o disponibilitate scăzută a opțiunilor. Acordați atenție câmpurilor „Tip de program” (cuvântul „driver” este acolo, altfel puteți utiliza doar un utilitar de serviciu sau un plugin), „Descriere” (scrie și pentru ce este necesar fișierul), precum și "Sistem". Puteți descărca driverul în sine după ce ați trimis o descriere, confirmând că nu sunteți un robot :)

Pe lângă căutarea de drivere pe depozite specializate, puteți căuta și pe site-urile retailerului! De exemplu, driverele pentru plăcile video populare sunt adesea actualizate și actualizate Voi păstra versiunea Puteți vizita adesea site-ul oficial. Așa că vă voi oferi o scurtă listă de mesaje pe site-ul achiziției de șoferi pe cea mai extinsă piață.

Plăci video:

placi de sunet:

Echipamente de birou:

Descărcând drivere de pe dispozitive verificate, nu trebuie să vă faceți griji cu privire la cele care nu vor funcționa sau vor elimina virușii. De asemenea, avantajul descărcării de pe site-urile oficiale este o garanție că veți obține cele mai recente drivere, care, din păcate, nu pot fi garantate la descărcarea din resurse terțe.

Căutați după ID-ul dispozitivului

Cereți șoferului numele dispozitivului dvs. - doar întrebați. Cu toate acestea, deoarece dispozitivul în sine este o plantă necunoscută, nici nu-i putem numi! Dacă te confrunți cu o astfel de situație, te voi ajuta metoda alternativa căutați ID-ul de proprietate.

La piele, cel puțin la mijloc unitate de sistem Dacă doriți să vă conectați cu un cablu extern, sistemul are un ID valid. Putem afla acest lucru din deja familiarul „Manager de dispozitive” făcând clic pe „Putere” al componentei necesare, mergând la fila „Vizualizări” și selectând „ID de proprietate” sau „ID” din lista „Putere”:

Incepand cu Windows Vista, Puteți copia valorile rândurilor ID în clipboard pentru ajutor meniul contextual. Mai mult versiuni anterioare Nu există nicio funcție de copiere, așa că ID-ul va trebui copiat manual.

Acum, cunoscând identificatorul dispozitivului de care avem nevoie, putem găsi driverele adecvate pentru servicii suplimentare specializate. Aici știu că te putem ajuta cu ghicirea ta la Driver.ru:

Pentru a face acest lucru, faceți clic pe butonul „Căutare” din colțul din dreapta sus și în câmpul din pagina care s-a deschis, lipiți codul de copiere în dispozitiv, apoi selectați pur și simplu elementul „Căutare după ID” și faceți clic pe „Căutare” butonul de sub câmpul introdus Nya. Din rezultatele care apar, puteți găsi cu ușurință driverul potrivit pentru sistemul dvs. și îl puteți descărca.

O serie de portaluri excelente pentru căutarea șoferilor funcționează în mod similar. Cele mai populare sunt DevID.info și DevID.drp.su. Înainte de a vorbi, serviciul are diverși clienți care vă permit să detectați automat driverele necesare și să le instalați. Cam asemanatoare software specializatȘi să vorbim mai departe.

Programe pentru căutarea driverelor

Vische ne-am uitat la vipadki dacă driverul a fost făcut manual. Cu toate acestea, pentru aceasta aveți nevoie și de programe speciale care vă permit să găsiți și să descărcați totul automat. Toate pot fi împărțite în două tipuri.

Programele de primul tip includ module client mici (până la zece megaocteți) care vă permit să vă scanați computerul pentru defecte vechi. instalarea driverelor, apoi atrageți-i de pe Internet și configurați un număr de clicuri. Pe site-ul nostru vom prezenta un reprezentant al unui program de acest fel:

Cu toate acestea, majoritatea acestor soluții au un mare dezavantaj: puteți descărca doar câteva drivere fără costuri. Conform limitei modificate, fie opriți complet descărcarea, fie reduceți intensitatea atracției la minimum, astfel încât să cumpărați în continuare un cont premium.

Din aceste motive, programele de acest tip pot fi folosite doar pentru o singură actualizare a driverului și nu pentru instalarea în lot pe un Windows proaspăt instalat. Dacă vrei totul deodată, alegerea ta este pachetul de șoferi!

Un pachet de drivere (din engleză „pachet de drivere”) este, cel mai adesea, un set de baze de date offline cu drivere selectate și programe wrapper. Programul vă scanează computerul și apoi vă solicită să instalați cele mai recente drivere. Tot ce trebuie să faceți este să selectați cerințele și să confirmați alegerea. Instalarea va fi automată!

Pe Internet, cel mai avansat și mai popular pachet de drivere este:

Începând de astăzi, dimensiunea maximă a pachetului pentru acest pachet de driver este mai mare de 10 gigaocteți. Acest lucru nu este atât de impresionant ca baza de date Driver.ru de 30 de terabyți, dar, totuși, un astfel de număr de drivere este complet suficient pentru ca după reinstalarea sistemului să nu glumești discuri de instalare, care au fost incluse cu placa de baza, placa video și alte componente ale computerului sau laptopului dvs

Dacă nu doriți să descărcați 10 gigaocteți de drivere, atunci puteți descărca versiunea Lite DriverPack Online. Este pur și simplu un program de scanare care identifică driverele de care aveți nevoie, se conectează la baza de date online și vă permite să descărcați doar cele de care aveți nevoie.

Visnovki

Astăzi, găsirea de drivere pentru un computer sau laptop nu este deosebit de dificilă. Cu toate acestea, ca și în cazul tuturor programelor, acestea necesită actualizare din când în când, de care mulți oameni uită. Și, printre altele, actualizările pot chiar ajuta!

Deci, de exemplu, din primăvară, am devenit din ce în ce mai lacom de biblioteca DLL. Din când în când am suportat o astfel de tabără de discursuri, dar apoi am devenit înțelept și am decis să caut cea mai mare problemă. S-a dovedit că defecțiunea a fost o problemă cu driverul plăcii video. După actualizarea șoferului, totul s-a îmbunătățit și „zborul” este normal de câteva luni acum :)

Morala întregului lucru este următoarea: ați început să aveți „eșecuri” în computerul dvs. sau ați fost conștienți de mirosuri din momentul în care v-ați cumpărat computerul. BANDĂ Instalări Windows, vă rugăm să rețineți că nu există nicio actualizare a driverului pentru critici componente importante Computerul tau. Dacă sunt, încercați să le instalați și sistemul dumneavoastră vă poate solicita din nou!

P.S. Copierea și cotațiile gratuite sunt permise. articol Qiu pentru mințile de aplicare a mesajului activ deschis pe dzherelo și salvarea paternului lui Ruslan Tertishny.

Driverele de dispozitiv oferă o interfață între nucleul UNIX și hardware-ul computerului. În cele din urmă, decizia nucleului se bazează pe caracteristicile arhitecturale ale computerului, care vor simplifica semnificativ transferul sistemului și vor sprijini funcționarea diferitelor dispozitive periferice.

UNIX are un număr mare de drivere. Partea va oferi acces la dispozitive fizice, cum ar fi un hard disk, o imprimantă sau un terminal, care oferă servicii independente de hardware. Un exemplu de restul pot fi driverele /dev/kmem pentru lucrul cu memoria virtuală a nucleului /dev/null, care reprezintă dispozitivul „null”.

Când sistemul pornește, nucleul execută următoarele proceduri pentru a inițializa instalarea driverelor. În versiunile mai vechi de UNIX, această procedură afișează un mesaj pe consolă care indică faptul că driverul a fost găsit, inițializarea a avut succes și parametrii driverului au fost instalați.

Tipuri de șoferi

Driverele se diferențiază prin capacitățile lor, modul în care pot fi instalați și modul în care vor fi asigurate accesul la ele și managementul. Există trei tipuri principale de drivere:

Simboluri.

Acest tip de drivere va asigura funcționarea cu dispozitivele cu drivere și acces octet cu octet și schimb de date. Astfel de dispozitive pot include modemuri, terminale, imprimante, controlere mouse etc.

Accesul la astfel de drivere nu implică utilizarea memoriei cache-tampon; prin urmare, intrarea și ieșirea nu sunt stocate în tampon. Când este necesară tamponarea pentru driverele de caractere, se utilizează o abordare bazată pe structuri de date numite clists.

Blocați șoferii

Acest tip de driver vă permite să faceți schimb de date cu un dispozitiv fix. porțiuni (blocuri).

De exemplu, pentru un hard disk, datele pot fi adresate și, evident, citite în sectoare de până la sute de octeți. Pentru driverele bloc, utilizați memoria cache-tampon, care este interfața dintre sistemul de fișiere și dispozitiv.

Dacă operațiunile de citire și scriere pentru proces permit schimbul de date mai mici decât dimensiunea blocului, la nivel de sistem este încă necesar să citiți întregul bloc, să schimbați părți din datele acestuia și să scrieți blocul modificat înapoi în disc.

Drivere de nivel scăzut (driferi bruti)

Acest tip de interfață de driver de bloc permite schimbul de date cu dispozitivele bloc, ocolind memoria cache-tampon. Aceasta înseamnă că dispozitivul poate fi adresat cu elemente a căror dimensiune nu diferă de dimensiunea blocului.

Schimbul de date are loc independent de subsistemul de fișiere și de memoria cache, ceea ce permite nucleului să se transfere direct între procesul client și dispozitiv, fără copiere suplimentară.

În fig. 5.1 oferă o diagramă simplificată a interacțiunii driverelor de dispozitiv cu alte subsisteme ale sistemului de operare UNIX.

Hard disk Disc Gnuckle Terminal

Mic 5.1. Drivere de dispozitiv UNIX

Nu toate driverele funcționează cu dispozitive fizice, cum ar fi un adaptor video, un port serial sau un monitor. Unele drivere servesc pentru a furniza diverse servicii kernel proceselor de aplicație și nu au nicio legătură directă cu hardware-ul computerului. Astfel de drivere sunt numite drivere software sau pseudo-dispozitive. Puteți selecta un număr de pseudo-dispozitive și drivere software aferente:

/dev/mem /dev/nulf

Oferă acces la memoria virtuală a nucleului. Cunoscând adresele virtuale ale structurilor interne ale nucleului, procesul poate citi informațiile stocate în acestea. Pentru un driver suplimentar, de exemplu, o versiune a utilitarului s(1) poate fi implementată pentru a afișa informații despre starea proceselor din sistem.

Oferă acces la o secțiune a fișierului kernel care conține tabelul de simboluri. Driverul /dev/kmem va asigura interfata manuala pentru a analiza structurile interne ale nucleului.

Va oferi acces la memorie fizică calculator.

Є dispozitiv „zero”. Când scrieți pe acest dispozitiv, datele sunt pur și simplu șterse, iar în timpul orei de citire, procesul se rotește cu 0 octeți. Culturile dispozitivului vikoristanya au fost văzute în secțiunea 1, dacă pentru ajutor /dev/null am fost suprimați de notificarea despre amendamente.

Se asigură că tamponul specificat este umplut cu zerouri. Acest driver este adesea folosit pentru a inițializa zona de memorie.

Driverul dispozitivului este adresat de numărul major al dispozitivului. Se reamintește că printre atributele fișierelor speciale ale dispozitivelor care asigură interfața computerului acces la perifericele computerului, acest număr este prezent în aceeași ordine ca și celelalte care sunt prezente și în drivere - un număr minor. Numărul minor este interpretat de driverul însuși (de exemplu, pentru clone, acesta setează numărul mai vechi dispozitivului care trebuie „înmulțit”). O altă modalitate de a căuta numere mai tinere poate fi driverul de disc. În timp ce accesul la orice partiție a discului este asigurat de același driver și, evident, prin același număr superior, numărul minor indică ce partiție trebuie securizată cu acces.

Accesul la driver este asigurat de nucleu printr-o structură specială de date (comutator dispozitiv), care conține indicatori ai funcțiilor principale ale șoferului - puncte de intrare. Numărul mai mare, în esență, este elementul de comutare al dispozitivului, asigurând astfel că nucleul însuși poate apela funcțiile necesare ale driverului desemnat. În acest fel, comutatorul dispozitivului reprezintă interfața de bază a driverului dispozitivului.

Această interfață este diferită pentru dispozitivele bloc și caractere. Nucleul conține comutatoare pentru două tipuri de dispozitive: bdevsw pentru dispozitivele bloc și cdevsw pentru dispozitivele cu caractere. Nucleul conține o matrice mare pentru tipul de skin al comutatorului și orice driver va scrie în matricea corespunzătoare. Deoarece driverul va oferi atât o interfață bloc, cât și o interfață de caractere, punctele sale de intrare vor fi reprezentate în ambele matrice.

O descriere tipică a acestor două matrice arată astfel (definițiile diferitelor puncte de intrare sunt discutate mai târziu în această secțiune):

struct bdevsw ( int (*d open)(); int (*d_close) () ; int (*d_strategy)(); int (*d_size) (); int (*d_xhalt) () ;

struct cdevsw(

int (*d_deschis) ();

int (*d^_close) ();

int (*d_read)<) ;

int (*d_write) ()

int (*d_ioctl) ()

int (*d_xpoll) ()

int (*d_xhalt) ()

struct streamtab *d_str;

) cdevsw; Nucleul apelează funcția open() a driverului necesar astfel:

(* bdevsw.d_open) (dev, ...);

trecându-l ca unul dintre parametrii dev-ului de schimbare (tip dev t), pentru a plasa numerele majore și minore. Macrocomanda getmajor() este folosită pentru a elimina numărul major din dev. Acest driver poate fi determinat după ce număr minor a fost folosit apelând funcția open() și închizând toate activitățile conexe.

Comutatorul reprezintă o interfață abstractă a driverului pentru dispozitiv. Driverul de piele oferă funcția acestei interfețe. Deoarece driverul nu acceptă nicio funcție a interfeței standard, înlocuiește punctele de intrare cu mufe speciale care sunt furnizate de kernel. Când nucleul trebuie să alimenteze orice operație de driver de dispozitiv, selectează elementul de comutare corespunzător acestui driver (al doilea număr ca mărime) și apelează funcția necesară.

La numele punctelor de intrare ale driverului, melodiile sunt corecte. Există un număr mare de drivere diferite prezente în nucleul de sistem la un moment dat, fiecare dintre acestea fiind responsabil pentru funcțiile lor unice pentru a evita problemele în timpul compilării (mai precis, la editarea legăturilor) a nucleului. Driverul are o valoare unică de două caractere care este folosită ca prefix la numele funcției. De exemplu, driverul de memorie virtuală kernel /dev/kmem are prefixul mm, deci funcțiile acestui driver vor fi numite mmopen(), mmclose(), mmread() și mmwrite().

In masa 5.1 există mai multe puncte de intrare pentru diferite tipuri de șoferi și simbolurile xx, care încep funcția de piele, și prefixul unic al șoferului. Punctele de intrare standard ale driverului variază pentru diferite versiuni de UNIX. De exemplu, fiecare versiune extinde dispozitivele blocului de comutare, care include funcții precum xxioctl(), xxread() și xxwrite(). Unele versiuni includ un punct de intrare pentru inițializarea și ștergerea magistralei de date.

Tabelul 5.1. Puncte de intrare tipice la dispozitivul driver

Punct de intrare

Sim-Vilniy

Nivel scăzut

Misiune

Solicită o intervenție chirurgicală pe piele

O voi construi pentru tine. Asigură reinițializarea necesară a dispozitivului fizic și a datelor interne ale driverului. De exemplu, pot fi plasate tampoane suplimentare pentru activarea ulterioară cutanată a driverului, ceea ce asigură posibilitatea de funcționare independentă a unui număr de procese.

Este apelat atunci când numărul de mesaje trimise către acest driver este egal cu zero, astfel încât procesele de sistem nu funcționează cu dispozitivul (nu poate deschide fișierul corespunzător către dispozitiv). Puteți face clic pe dispozitivul fizic. De exemplu, șoferul unui dispozitiv de stocare pe o bandă magnetică poate derula banda pe cob

Citirea datelor de pe dispozitiv

Cu o interfață diferită

controlul dispozitivului. Șoferul poate determina un set de comenzi care vă pot fi transmise, de exemplu, printr-un apel suplimentar de sistem

Sună-mă când intru

perervannya, conectat cu acest dispozitiv. Puteți copia datele de pe dispozitiv în buffer-uri intermediare, care sunt apoi citite de funcția xxread() pentru a le furniza procesului de aplicare.

Experimentează dispozitivul.

Asigurați-vă că îl utilizați pentru dispozitive care nu încurajează întrerupere, de exemplu, pentru a vă asigura că aveți datele potrivite pentru citire

Viklikatsya pentru șofer zupinki

Verificați sincronizarea sistemului sau momentul actualizării driverului.

Punctul de intrare pentru operațiunile de blocare/retragere. Denumirile funcțiilor sunt cele pe care dispozitivele le pot oferi o strategie puternică de procesare a cererilor, astfel încât să găsească, de exemplu, modificarea ordinii acestora pentru a îmbunătăți productivitatea de intrare/ieșire. Ca dispozitiv pentru activități, funcția este de a plasa o băutură în carte. În acest caz, operația efectivă de intrare/ieșire inițiază funcția de procesare a întreruperii, care este apelată atunci când dispozitivul finalizează operația anterioară de intrare/ieșire

Nucleul apelează aceste și alte funcții driver, care sunt întotdeauna solicitate. De exemplu, când procesul scrie comanda system read(2) pentru un fișier de simbol special, nucleul folosește funcția xxread() pentru driverul specific simbolului. Deoarece procesul efectuează aceeași operațiune pe fișierul de disc original, nucleul aplică, de asemenea, procedura xxstrategy() driverului de bloc care servește sistemul de fișiere.

La prima vedere, puteți vedea cinci tipuri principale de dezvoltări în care nucleul se extinde la funcția de driver:

Despre Autoconfigurare. Acest lucru este necesar în timpul procesului de inițializare UNIX, dacă nucleul indică ce dispozitive sunt disponibile pe sistem.

Despre Introducere/Vivedennya. Operația de intrare/ieșire poate fi inițiată fie de un proces de aplicație, fie de alte subsisteme de nucleu, de exemplu, subsistemul de gestionare a memoriei.

Vorbește despre Obrobka. Nucleul apelează o funcție suplimentară de driver pentru a gestiona procesarea procesării care este cea mai potrivită pentru dispozitiv (cum ar fi un dispozitiv care generează procesare).

Cerințe Speciale. Nucleul folosește funcția secundară a driverului pentru a procesa comenzi speciale emise prin apelul de sistem ioctl(2).

P Reinițializare/Zupin. Mai multe tipuri de arhitecturi hardware pot beneficia de eliminarea și reinstalarea dispozitivului. Funcțiile driverului sunt activate și atunci când sistemul de operare este instalat.

În fig. 5.2 și 5.3 furnizează scheme de acces la driverele de caractere și dispozitivele bloc.

După cum puteți vedea de la cei mici, circuitul de procesare este alimentat de kernel-ul UNIX pentru dispozitive simbolice și bloc.

Când discutăm despre punctul de intrare al driverelor de dispozitiv, este important să ne amintim că majoritatea funcțiilor driverului care sunt responsabile pentru transferul de date copiază informațiile din spațiul de adrese al nucleului, în care se află driverul însuși, în spațiul de adrese al țintei. Când nucleul apelează o funcție de driver, totul este atribuit contextului de sistem al procesului. Cu toate acestea, schema de circuit a funcțiilor poate fi diferită:

Funcția poate fi folosită pentru a solicita procesul. De exemplu, atunci când procesul execută apelul de sistem read(2), nucleul apelează punctul de intrare xxread() al driverului, care asigură că fișierul este procesat. Și aici se pare că funcția are un context de cunoaștere.

Funcția poate fi apelată de un alt subsistem al nucleului sistemului de operare. De exemplu, pentru un driver de bloc, funcția xxstrategy() poate fi apelată de demonul lateral pentru a salva partea în memoria secundară (de obicei pe hard disk). Deoarece demonul lateral este un proces de sistem care se termină doar în contextul kernelului, funcția xxstrategy() în acest caz este contextul sistemului.

Deoarece funcția este apelată în timpul procesului de procesare a întreruperii, este un context de întrerupere - un tip special de context de sistem. Funcțiile driverului care se ocupă de procesarea întreruperilor, cum ar fi xxintr(), servesc acest tip de context.

Mic 5.3.

Importanța în context și motivele utilizării acestor și altor funcții ale șoferului ne permit să reprezentăm șoferul ca un dispozitiv care constă din două părți: partea superioară (jumătatea superioară) și partea inferioară (jumătatea inferioară). Funcțiile părții superioare a driverului sunt de natură sincronă, astfel încât ele răspund la solicitările de cântec ale procesului de aplicare și corespund contextului acestuia. Astfel, pentru aceste funcții, sunt atribuite spațiul de adresă și zona u a procesului și, dacă este necesar, aceste funcții pot pune procesul în stare de repaus (prin apelarea funcției sleep() a nucleului). Funcțiile de introducere/afișare și service sunt situate în partea superioară a șoferului.

Apelul de funcție al părții inferioare este asincron. De exemplu, nu puteți transfera momentul în funcția de apel pentru a întrerupe procesarea, iar nucleul nu poate controla când este apelată funcția. Implementarea unor astfel de funcții este obținută din contextul kernelului și, prin urmare, nu are nicio legătură cu contextul procesului threaded. Astfel, funcțiile contextului sistemului nu au dreptul de a adresa structuri de date unui proces cu fire de execuție, de exemplu, zona sa u, și, de asemenea, nu pot transfera procesul în repaus, deoarece acest lucru blochează procesul, care nu are conexiune directă. cu munca soferului.

Cele două părți ale driverului vor necesita sincronizare. De exemplu, dacă funcțiile ambelor părți lucrează pe aceeași structură de date, funcția părții superioare este responsabilă pentru blocarea întreruperilor în timpul funcționării din „zona de memorie care este împărțită”. Într-un alt caz, întreruperea poate apărea într-un moment în care integritatea structurii de date este distrusă, ducând la rezultate netransferabile.

Toate funcțiile principale reprezentate, în spatele xxhalt(), xxpoll() și xxintr(), sunt situate în partea de sus a driverului. Funcția xxhalt() este apelată de nucleu în contextul sistemului, deci este în contextul sistemului și nu are legătură cu contextul procesului de aplicare.

Funcția xxpoll() este apelată atunci când nucleul procesează întreruperea temporizatorului pentru toate dispozitivele specificate ca fiind alimentate. Acest lucru este necesar, strict vorbind, pentru dispozitivele care nu pot sau nu doresc să interfereze cu întreruperile hardware. Funcția xxpoll() poate fi folosită pentru a simula întrerupere, de exemplu apelând funcția xxintr() la a n-a bifare a temporizatorului de sistem. Prin urmare, funcția xxpoll() și funcția xxintr() nu pot fi atribuite contextului procesului de aplicație. În majoritatea versiunilor UNIX, funcțiile de procesare și procesare sunt accesate nu prin comutatorul dispozitivului, ci prin tabele speciale ale nucleului.

UNIX SVR4 are două puncte de intrare suplimentare - init() și start(). Driverul înregistrează aceste funcții în tabelele de nucleu io init și io_start. Codul sistemului de bază rulează funcția xxinit() înainte de inițializarea nucleului și funcția xxstart() după inițializare.

17.02.2017

Este ușor să știi cine a instalat sistemul de operare, întâmpinând o situație imposibil de gestionat, dacă trebuie să instalezi drivere pentru o placă video, iar modelul acesteia este necunoscut. Sau trebuie doar să actualizați driverele de pe placa video fără să știți numele acesteia. În astfel de situații, asigurați-vă că utilizați discul de instalare care este vândut împreună cu placa video. Ar trebui să funcționeze, din orice motiv un astfel de disc este învechit?

Pentru o funcționare stabilă a plăcii video, este necesar nu numai să instalați drivere pentru aceasta, ci și să le actualizați în mod regulat atunci când sunt disponibile versiuni noi. Acest lucru se datorează faptului că versiunea driverului inode are un impact mai mare asupra performanței plăcii video. Să ne dăm seama cum să aflăm modelul plăcii video și să descarcăm cele mai recente drivere pentru acesta.

Din păcate, este imposibil să se determine online modelul plăcii video. Pentru a vă face întâlnirile mai rapid, utilizați programe speciale.

Cum să afli modelul plăcii video

Există multe modalități de a afla exact ce placă video ai instalată.

Metoda 1: Modelul plăcii video recunoscut folosind ID-ul hardware

  1. Pe desktop pe pictogramă "Calculatorul meu" ("Acest calculator"în Windows 10) faceți clic dreapta pe mouse și selectați elementul din fereastră "Vlastivosti".
  2. Fereastra are un rând binecunoscut "Manager de dispozitiv"și apăsăm pe ea.
  3. Apoi trebuie să deschideți capacul cu despicare „Adaptoare video”. Va afișa placa video conectată la computer. Dacă driverele au fost deja instalate, va trebui să introduceți din nou numele și modelul plăcilor dvs. video.
  4. Acest lucru poate fi suficient dacă doriți doar să actualizați driverul deja instalat. Deoarece driverele sunt disponibile în fiecare zi, veți găsi următorul rând în lista de adaptoare video „Adaptor grafic VGA standard” sau .
  5. Faceți clic pe o astfel de placă video necunoscută cu butonul drept al mouse-ului și selectați elementul din meniu "Vlastivosti".
  6. Bestia știe lista de marcaje "Vidomosti" hai sa ne mutam acolo.
  7. Sub inscriptie „Vlastivist” Veți vedea meniul derulant, pe care trebuie să faceți clic. Căutați un rând „Deținerea actului de identitate”.
  8. În câmp "Semnificaţie" Orice mai jos va avea ca rezultat mai multe rânduri. Trebuie să vedeți restul, apăsați butonul dreapta al mouse-ului și selectați elementul din meniu "Copie".
  9. După ce VD-ul a fost copiat, mergeți la următorul site
  10. După ce te-ai mutat în sat, vei căuta câmpul pe site. Aici trebuie să lipiți informațiile copiate anterior despre deținerea VD-ului. Apoi trebuie să apăsați butonul "Shukati", Roztashovanu pravіshe pentru un rând de căutări.
  11. Dacă totul a fost instalat corect, atunci, ca rezultat, veți vedea modelul plăcii video și puteți instala driverul înaintea acestuia. Să ne întoarcem și să căutăm șoferi pentru puțin timp.

Metoda 2: Recunoașteți modelul plăcii video folosind metoda suplimentară de diagnosticare DirectX

Dacă site-ul nu funcționează din orice motiv, mai întâi eliminați informațiile despre cipul grafic folosind metode standard Windows.


Metoda 3: Recunoașteți modelul plăcii video folosind funcția suplimentară „Vizualizări sistem”


Cum se instalează un driver de placă video

După ce ați aflat despre modelul plăcii video, trebuie să instalați sau să actualizați driverul pentru acesta. Și există multe moduri de a face acest lucru.

Metoda 1: Descărcați driverul de pe portalul devid.info

După cum ați ghicit deja, după ce ați identificat o placă video cu un ID pe portalul devid.info/ru, puteți descărca acum driverele necesare.


Metoda 2: Descărcați driverul de pe site-ul oficial

Instalarea driverelor care au fost importate de pe site-urile oficiale este cea mai corectă și mai sigură soluție. Pe astfel de site-uri, informațiile despre actualizări și modificări ne sunt prezentate din timp.

  1. În acest scop, selectați site-ul web al distribuitorului plăcii dvs. video, urmând instrucțiunile curente
  2. În următoarele câmpuri va trebui să indicați tipul dispozitivului, seria, modelul și sistemul de operare. Adesea, acești parametri pot fi calculați automat.
  3. apasa butonul "Poshuk"și pe pagina de care a fost atras șoferul.

Axa arată ca procesul de căutare a unui driver pentru plăcile video NVidia



În orice caz, după ce driverul necesar a fost descărcat, nu va mai trebui să rulați programul de instalare și să faceți clic până când finalizați operația de instalare sau reinstalare. Pentru a evita orice probleme pe care le puteți avea, puteți crea un nou disc sau o unitate flash cu programele de sistem necesare. Deosebit de util în mintea internetului este faptul că este adesea folosit greșit.

Dacă ați selectat computerul în mod independent, achiziționând componente pentru acesta separat, atunci în această situație toate driverele pentru computer nu mai pot fi găsite pe un singur site web al producătorului, deoarece ar fi ușor de obținut la achiziționarea unui computer gata făcut. (acest lucru este explicat în articolul „Cum să cunoașteți driverele dacă ați cumpărat un laptop sau un computer desktop gata făcut!”). Adje vi a cumpărat un computer nepregătit, care zăcea pe computer, MAV bi modelul său și driverele pentru care puteți descărca de pe un singur site. Deoarece computerul este asamblat din piesele de schimb pe care le-ați selectat independent, înseamnă că nu va mai corespunde niciunui model și nu va mai aparține niciunui dispozitiv, deoarece este deja dispozitivul dvs.:) Prin urmare, driverul va trebui găsit direct pentru toate dispozitive, deoarece al căror computer a fost instalat. Aici putem include situația în care, după achiziționarea unui computer gata făcut (deja asamblat), ați dorit imediat să înlocuiți toate „bugurile”.

Acum vă voi arăta cum să găsiți manual toate driverele necesare pentru un computer auto-configurat, prin Internet.

Despre acești șoferi care sunt enumerați în statistici:

Acum, tu însuți ai selectat toate componentele, ai luat un computer, ai instalat Windows și ai înțeles că driverele nu sunt instalate pentru toate dispozitivele și este posibil să nu fie instalate pentru niciunul dintre ele. Puteți afla dacă toate driverele sunt instalate folosind utilitarul standard „Manager dispozitive”. Cum pot câștiga bani în statisticile okremiya.

Pentru a instala drivere, există o serie de opțiuni pentru această opțiune.

Crește-ți respectul!
Dacă nu aveți driverele instalate automat pe cardurile intermediare, ceea ce vă împiedică să puteți accesa Internetul de pe computer, atunci este probabil să fiți nevoit să accesați de pe orice alt computer care are acces la Internet. Și după ce ați instalat toate driverele, va trebui să le transferați pe computerul dorit, de exemplu, printr-o unitate flash sau un disc.

Opțiunea 1. Voi căuta manual drivere pentru codurile de dispozitiv prin intermediul site-ului web devid.drp.su

Consider această opțiune cea mai optimă. Metoda este să atribuiți codul dispozitivului și să căutați drivere pe Internet pentru acest cod pe diferite site-uri.

Să spunem că în managerul de dispozitive vedem așa ceva:

Tobto. Driverul pentru mai multe dispozitive nu este instalat pe computer. Cu toate acestea, este problematic să determinați prin intermediul managerului de dispozitive pentru care dispozitive nu există drivere, deoarece totul pare să fie precizat în nume. Este posibil să înțelegeți mai mult aproximativ. De exemplu, un „controller Ethernet” este un card mai ieftin pentru conectarea la internetul dronei. „Controler Merezheviy” - poate un adaptor Wi-Fi, asta este. O cartelă de conectare pentru accesarea la Internet prin Wi-Fi.

Fiecare dispozitiv are propriul său număr unic, pe care managerul de dispozitive ni-l poate arăta. Și odată ce știm numărul, putem găsi driverul dispozitivului prin Internet.

Să aruncăm o privire la o serie de exemple pentru a afla driverele care urmează manual codul dispozitivului:

În cele din urmă, voi găsi un driver pentru un simplu controler PCI Simple Communications.

    Prin urmare, voi adăuga codul pentru oricine dorește să cunoască șoferul.

    Pentru a atribui un cod unui dispozitiv, faceți clic pe acesta în managerul de dispozitive cu butonul din dreapta al mouse-ului și selectați „Autoritate” din meniu:

    În fereastră, selectați fila „Vizualizări”, apoi mai jos, sub inscripția „Putere”, selectați „ID de proprietate”:

    În primul rând, să încercăm să găsim codul de pe cel mai de jos (al patrulea) rând. Faceți clic dreapta mai jos pe al 4-lea rând cu codul și selectați „Copiere”.

    Încercăm să găsim driverul din spatele codului pe site-ul web devid.drp.su.

    După ce ați copiat codul, deschideți site-ul:

    David.drp.su

    Încercați să cunoașteți șoferul pentru Nyoma. Acest site este conectat la programul DriverPack Solution, care colectează aproape toate driverele posibile. Aici, cu mare încredere, puteți găsi driverul pentru orice dispozitiv.

    După ce ați deschis site-ul, primul lucru pe care trebuie să-l faceți este să lipiți codul dispozitivului în rândul de sus de copii chiar la început și să tastați acel cod totul începând de la simbolul & până la sfârșit.

    De exemplu, ați copiat codul:
    PCI\VEN_8086&DEV_0166 &CC_0300

    Deci, după eliminarea caracterelor din „&”, veți pierde codul:
    PCI\VEN_8086&DEV_0166

    Dacă nu știți ce sistem aveți, deschideți căutarea Windows și introduceți acolo „Informații despre sistem”, apoi selectați un program din listă:

    În programul care s-a deschis în fereastră, selectați „Vizualizări de sistem” și în partea dreaptă în rândul „Numele sistemului de operare” va afișa versiunea Windows (pentru aplicația mea în imaginea de mai jos „Windows 10”), iar în rândul „Tip” - capacitate: x64 sau x86:

    Pe baza acestor date, tipul și capacitatea sistemului sunt indicate pe site-ul devid.drp.su.

    După ce a fost introdus codul dispozitivului și a fost selectată versiunea Windows, apăsați butonul „Căutare drivere”.

    Ca rezultat, pe pagina va apărea o listă de drivere care se potrivesc cu codul de proprietate specificat pentru dvs versiuni Windows. Folosind butonul „Încărcare”, puteți descărca unul dintre driverele pentru computer.

    Crește-ți respectul!
    Dacă este afișată o listă de drivere noi (ca în imagine), verificați driverul care are cea mai recentă dată de lansare în coloana „Versiune driver”.

    Făcând clic pe butonul „Adăugați”, driverul va fi descărcat pe computer și nu va mai fi nevoie să îl instalați. Nu este nimic complicat în instalarea driverelor și în acest moment sunt blocat în statisticile generale.

    Crește-ți respectul!

    Se poate întâmpla ca lista de drivere să afișeze drivere diferite, de exemplu:

    Aceasta înseamnă că codul de proprietate poate fi similar cu un număr de dispozitive. În acest caz, puteți fi pur și simplu confuz și puteți încerca să instalați toate opțiunile pe care le puteți încerca până când driverul necesar este instalat.

Yak Bachimo, șoferul nu era important de știut. Voi arunca o privire imediat la un alt butt, astfel încât să devină mai clar :) Voi afla driverul pentru dispozitivul pentru butt, care este listat ca „controler Ethernet” în managerul de dispozitive.

Dau click dreapta al mouse-ului si strig autoritatilor:

Din fereastra selectez fila „Vizualizări”, din listă selectez articolul „ID de proprietate” și copiez codul de pe al 4-lea rând:

Deschid site-ul devid.drp.su, introdu acolo numărul copiei și șterg totul, începând cu simbolul „&”. Apoi selectez versiunea de Windows și o caut:

Pentru versiunea de Windows pe care am instalat-o, a existat o singură versiune a driverului pe care am putut-o descărca și instala:

Asta e tot!

Cu toate acestea, se întâmplă uneori să nu existe drivere disponibile pe site-ul web devid.drp.su pentru codul hardware pe care l-ați introdus. În acest caz, există o opțiune alternativă, care este discutată mai jos.

O opțiune alternativă este să căutați drivere în spatele codului dispozitivului

Dacă nu există drivere disponibile pe site-ul principal devid.drp.su pentru dispozitivul de care aveți nevoie, puteți utiliza această metodă simplă:

    Așa că voi adăuga codul. Iată cum copiem linia codului de proprietate (a patra):

    Căutați driverul pe diferite site-uri.

    Acum mergem pe site-ul web Google.com și lipim codul de copiere direct în rândul de căutare, după care eliminăm simbolul „&” din cod și tot ce urmează după el, de exemplu:

    PCI\VEN_8086&DEV_1C3A &SS_0780= PCI\VEN_8086&DEV_1C3A

    Apăsăm butonul de căutare și se afișează în fața noastră o listă de site-uri care corespunde solicitării noastre:

    Acum trebuie să deschideți site-urile unul câte unul, începând de la primul (sus) și să vă întrebați dacă puteți instala drivere pe site.

    Este important să rețineți că nu toate site-urile vă vor furniza driverul necesar, unele dintre ele nu vor avea drivere pentru versiunea dvs. de Windows, iar unele vor folosi tot felul de prostii în loc de drivere.

    În exemplul prezentat, am vizitat acele site-uri unde driverele pot fi găsite și descărcate cu ușurință fără probleme. Site-ul axei:

    Dacă căutați mai profund, puteți găsi alte site-uri de unde puteți descărca driverul necesar. Ale nu varto caută drivere pe forumuri, oskolki tse a găsit calea. Ar trebui să citiți toate informațiile după aceea pentru a înțelege ce a fost trimis pentru șoferul de care aveți nevoie.

    Și acum să ne uităm la o serie de aplicații pentru importarea driverelor de pe diverse site-uri.

    Exemplu de descriere a unui șofer de pe site-ul web driver.ru:

    Dacă căutați un site cu rezultate de căutare, driverele vor fi afișate pe pagină, majoritatea fiind legate de dispozitivul dvs.

    Aici puteți pur și simplu să răsfoiți toate driverele vizualizând site-ul și să continuați instalarea până când driverul necesar este instalat. Toate driverele prostii fie nu se instalează, fie pur și simplu nu funcționează, așa că nu puteți să nu vă fie teamă să le instalați.

    Nu uitați să verificați versiunea de Windows pentru care este alocat driverul.

    Vă rog să respectați!
    Driverele pentru Windows 8, Windows 8.1 și Windows 10 sunt adesea confuze și, de exemplu, dacă nu ați putut găsi drivere special pentru Windows 8.1, încercați să instalați drivere pentru Windows 8. Sau dacă nu ați găsit drivere pentru Windows 10, încercați instalarea în Windows 8.1 sau Windows 8. De asemenea, este posibil ca driverele pentru Windows 7 să fie compatibile cu Windows 8, 8.1 și Windows 10. La fel. Puteți instala drivere pe diferite sisteme.

    Să aruncăm o privire asupra procesului de achiziție pe acest site. După ce cunoașteți driverul necesar, faceți clic pe butonul de descărcare de mai jos:

    În fereastra următoare, va trebui să confirmați că nu sunteți un robot bifând caseta corespunzătoare (vezi imaginea de mai jos). Apoi faceți clic pe butonul „Enter” din partea de jos:

    Și veți găsi că pe pagina finală, în partea de sus, puteți vedea numele fișierului cu extensii:

    Faceți clic pe ele și descărcați fișierul.

    Exemplu de interes al unui șofer pe site-ul members.driverguide.com:

    Când accesați site-ul de la sistemul de sunet, pe pagină va apărea o listă de drivere incredibil de utile pentru dispozitivul dvs.:

    Făcând clic pe butonul de atracție, se va deschide o nouă pagină, unde veți vedea un număr mare de reclame.

    Respect!
    Nu faceți clic nicăieri, deoarece există o mulțime de reclame pe site, aveți grijă, altfel puteți obține viruși și alte infecții pe computer!

    Următoarea fereastră va apărea în centru la sfârșit pentru a confirma că sunteți o persoană reală și nu un program :) Trebuie să faceți clic pe butonul de lângă fereastră și să faceți clic pe butonul „Afișați”:

    Se deschide o nouă fereastră și pentru câteva secunde vom aștepta cu nerăbdare să ne iubim împreună. Codul de instrucțiune va apărea în fereastră cu textul: „Enter”. Acest cod trebuie rescris exact ca pe rândul de mai jos ("Răspunsul dvs.") și apăsați pe "Întoarcere la pagină":

    Veți fi îndreptat către prima pagină, unde va apărea acum butonul „Continuați”. După ce ați apăsat, pare un driver pentru un computer:

În acest mod alternativ, puteți încerca să aflați manual driverul din spatele codului dispozitivului. Este deosebit de important pentru această variantă că am arătat pe exemple importanța șoferilor de pe doar 2 site-uri, iar cantitatea acestora este mare. Totuși, principiul atracției pe toate site-urile este nou. Interfața și ordinea de descărcare vor varia.

Dar sunt mai mult decât fericit că puteți găsi cu ușurință driverele folosind metoda principală descrisă în opțiunea nr. 1.

Opțiunea #2. Căutați drivere pe site-urile web oficiale ale producătorilor de dispozitive

Dacă nu ați reușit să găsiți drivere pentru dispozitivele dvs. într-o singură opțiune, atunci puteți crea o axă în acest fel.

Va trebui să înțelegeți detectorul și modelul dispozitivului de piele de pe computer prin documentația pentru acestea sau programe speciale (de exemplu, Aida64 sau Sysinfo Detector), după care puteți căuta și drivere pentru dispozitivul de piele prin site-ul oficial al detectorului sau (sau pe site-ul oficial Nu există driver pentru acest site) voi obține un model pentru dispozitiv pe Internet.

Să luăm acest exemplu. În Manager dispozitive, pot vedea că sistemul nu are un driver instalat pe placa video sau pe orice alt dispozitiv:

Cum iti dai seama ce merge pe placa video? Și deoarece lista de dispozitive din secțiunea „Adaptoare video” conține dispozitivul „Adaptor grafic VGA standard”, aceasta înseamnă că nu există niciun driver pentru placa video, altfel nu există niciun dispozitiv numit după placa dvs. video, de exemplu „NVIDIA GeForce GTX980”.

Să ne uităm la succesiunea acțiunilor tale:

    Cunosc generatorul si o sa montez modelul.

    Crește-ți respectul!
    Dacă aveți „Dispozitiv necunoscut” în Manager dispozitive, atunci este posibil să nu instalați un driver pentru niciun dispozitiv de pe placa de bază sau un program special pentru placa de bază. Deci, trebuie să instalați imediat toate driverele pentru placa de bază și programele pentru aceasta.

    Dacă ai ales un computer cu mai multe componente, atunci ai putea pierde documentele pentru fiecare accesoriu, ceea ce arată de ce avem nevoie - producătorul și modelul. Atâta timp cât nu lipsește nicio documentație, puteți identifica modelul folosind unul dintre programele care vă pot detecta computerul. Recomand Aida64 sau Sysinfo Detector. Persha este plătit, dar îl puteți folosi rapid fără costuri timp de 30 de zile. Și prietenul meu are o redacție complet gratuită. Dacă vă gândiți ce să alegeți, atunci alegeți imediat - Aida64, deoarece acest program va avea încă multă capacitate.

    Modul de instalare și utilizare a programului Aida64 este explicat în statistici:

    Cum să instalați și să utilizați Sysinfo Detector este descris în statistici:

    Cum definiți dispozitivele prin programul Aida64? Aceasta înseamnă că puteți accesa dispozitive fără drivere selectând secțiunea din stânga „Dispozitive > Dispozitive Windows", apoi deschideți în dreapta categoria „Necunoscut”. Mai jos veți vedea informații despre selecția dispozitivului:

    Ei bine, telefonul meu are un dispozitiv necunoscut numit Asus ATK-110 ACPI Utility.

    Cel mai mult, mi-am dat seama că dispozitivul necunoscut este ceea ce se află în spatele tuturor lucrurilor de pe placa de bază, ceea ce înseamnă că placa de bază este în dispozitiv. Pentru a găsi secțiunea „Placa de sistem”, accesați aceeași secțiune. Dreapta la vikni pobachimo vyrobnika acel model placa de sistem: Asus P5KPL-AM EPU.

    Acum să ne uităm la placa video. Placa video este de obicei identificată corect în Aida64 prin secțiunea „Imagine video” > „Video PCI/AGP”. De fapt, programul a identificat placa video: nVIDIA GeForce GT 430":

    Cum vedeți dispozitivul prin Sysinfo Detector, apoi puteți instala dispozitive cu drivere dezinstalate în două moduri. Prima se află în secțiunea „Virtual”:

    Aparent, același dispozitiv a fost detectat prin programul Aida64: ACPI/ATK0110

    O altă modalitate este să selectați secțiunea „Dispozitive necunoscute” din secțiunea „Dispozitiv PCI”. Aici programul a identificat 3 „probleme” cu dispozitivul, iar una dintre ele a fost placa de bază: Asus P5KPL-AM EPU.

    Modelul plăcii video este cel mai bine văzut în secțiunea „PCI-fit”. În listă puteți găsi subsecțiunea „Display controller”:

    Din fund se vede că driverul plăcii este NVIDIA, iar modelul este GeForce GT 430.

    Acum, datele necesare au fost identificate și driverul poate fi acum descărcat.

    Căutați un driver pe site-urile de dezvoltare a dispozitivelor.

    S-a afirmat că nu există drivere instalate pentru niciun dispozitiv de pe placa de bază, sau poate unele programe special pentru placa de bază. Driverul plății este Asus, iar modelul aplicației este P5KPL-AM EPU. În calitate de producător Asus, vom face glume pe site-ul oficial al Asus.

    Este bine descris cum să căutați pe site-ul oficial al imprimantei și să o instalați din noul driver. Pe scurt, trebuie să deschizi sistemul poshukova Google, introduceți numele editorului și deschideți primul site în rezultatele căutării. Apoi accesați secțiunea „Service” sau „Suport” și indicați modelul dispozitivului, de exemplu:

    Pe lângă drivere, acordați atenție secțiunii „Utilități” (care poate fi văzută în lista din imagine), deoarece nu există „Derecunoaștere dispozitiv” - nu există niciun program special instalat pentru placa de bază. Este mai bine să instalați întregul kit pentru placa de bază, prezentări pe site, pentru a verifica dacă există vreo problemă.

    Acest exemplu demonstrează căutarea driverelor pentru placa de bază. Odată ce instalați toate driverele și utilitarele pentru acesta, „Dispozitiv necunoscut” poate apărea în Manager dispozitive.

    Știm driverul pentru placa video. Judecând după datele preluate din programele Aida64 și Sysinfo Detector, producătorul plăcii video este NVIDIA, iar modelul este GeForce GT 430. Dacă producătorul este NVIDIA, atunci putem găsi site-ul oficial al aceleiași companii prin Google:

    Pe site există o secțiune foarte mare „Drifere”, iar în următoarea secțiune „Obține drivere”. Dezvăluit:

    Se va deschide o fereastră în care trebuie să introduceți informații despre placa video. Tipul de produs din aplicația mea GeForce este GeForce GT 430, apoi seria de produse este GeForce 400 Series. Nu este ușor să vă orientați aici. Apoi, din lista „Familie de produse”, selectați modelul în sine – „GeForce GT 430”. Nu am reușit să selectez doar versiunea de Windows instalată pe computer și driverul. Apoi apăsăm „Poshuk”:

    Se va deschide o pagină pentru a selecta driverul necesar. Apăsați butonul „Încanta acum”:

    Pe pagina următoare, vă rugăm să acceptați și să apăsați butonul „Acceptați și implicați”:

În același mod, puteți instala un driver, în principiu, pentru orice dispozitiv, cunoscându-i driverul și modelul. Trebuie doar să cunoașteți site-ul oficial al producătorului și să introduceți modelul acolo.

U până la extrem de josnic Deoarece, de exemplu, nu este posibil să găsiți drivere pe site-ul oficial, le puteți căuta pe alte site-uri introducând cauta pe Google Un exemplu este următorul: „driver pentru Asus P5KPL-AM EPU”. Pentru Asus P5KPL-AM EPU, cu siguranță va trebui să indicați producătorul și modelul dispozitivului pentru care driver căutați.

Ei bine, în concluzie, dacă utilizați Windows 8 sau mai vechi, atunci nu veți avea probleme cu driverele. În cele mai multe cazuri, aceste sisteme instalează automat toate driverele imediat după instalarea Windows. După ce a încercat să reinstaleze Windows 8.1 și Windows 10 pe mai multe laptop-uri, toate driverele au fost instalate automat pe fiecare laptop, ceea ce a dus la necesitatea de a le găsi singur.

Respect acest articol ca fiind complet. Acum puteți găsi driverul necesar după codul dispozitivului sau după producător și model. Bănuiesc că este posibil să aveți nevoie de astfel de opțiuni pentru a căuta drivere dacă ați selectat independent componente pentru computerul dvs. sau ați schimbat orice piese dintr-un computer finit achiziționat.

De asemenea, puteți instala automat drivere pe computer pentru ajutor suplimentar. programe speciale. Această posibilitate este discutată în următoarele statistici:

Multă baftă! Ne vedem in alte articole :)

După cum știm, la nivel hardware, un computer modern este format din unități funcționale care alcătuiesc diverse componente electronice. Pentru o gamă largă de koristuvachs calculatoare personale Cunoaștem astfel de blocuri funcționale ca: procesor, memorie, placă video, placa de sunet, hard disk, controler intrare-ieșire (care asigură funcționarea tastaturii, mouse-ului, joystick-ului, unităților USB (unități flash)), imprimantei, scanerului și așa mai departe. pe fizic egal Aceste dispozitive interacționează între ele sub formă de autobuze și protocoale speciale, creând o combinație a simbiozei lor reciproce de operațiuni, care, la rândul său, caracterizează funcționarea unui computer. Ce se întâmplă dacă un computer nu este doar un set de componente electronice? Zvidi este același, modulul principal Apalanikh, procesul central, desenele pentru Viconny Machinni Instrue, Iz de Yak Miyaki, adorat de mostre, svytli tsogo boulahs sunt ale unui minister de perie - o programony. Acum să ne întoarcem la nu atât de departe în trecut; În primele zile ale erei computerelor, codul programului (care era adesea scris direct în coduri de mașină/limbi cu limbaj redus) putea interacționa cu ușurință direct cu hardware-ul, în timp ce arhitectura hardware rămânea remarcabil de simplă. Cu toate acestea, de-a lungul timpului, tehnologia s-a dezvoltat, nivelurile hardware și software au evoluat în tandem, iar primul a venit la apariția unei mari diversitate de dispozitive, iar celălalt la apariția unei mari varietăți de dispozitive. module software, ce a mărit, departe, a apărut sisteme de operare. Sistemul de operare a devenit o piatră de hotar cheie în istoria dezvoltării industriei calculatoarelor și el însuși, printre altele, a stabilit rolul unui server de succes, un fel de coordonator (dispecer), asigurând interacțiunea între dispozitive și programe: primite o solicitare de la o minge de program (de exemplu, un program al unui corespondent) privind schimbul de date cu acesta și alte dispozitive și, astfel, rolul componentelor hardware și software conectate a fost de fapt încheiat. Sistemele de operare erau deja acasă, iar din moment ce interacțiunea inițială dintre sistemul de operare și hardware-ul computerului a fost evident simplă, structura operațiunilor a devenit mai complexă pe măsură ce arhitectura a devenit mai complexă și au fost introduse noi capabilități hardware.noi sisteme. Pe parcursul dezvoltării actuale a sistemelor de operare, dezvoltatorii au încercat să creeze cod care să asigure interacțiunea deplină cu numărul maxim posibil de dispozitive hardware disponibile pe piață. Tim nu este mai puțin, o abordare similară, în lumea arhitecturii complexe a computerelor personale x86, solicitând apariția conceptului de minge software îmbunătățită, care se numește driver, potrivit pentru interacțiunea cu aceasta și alte clase ohm/tip a dispozitivelor. Conceptul de șofer a apărut la o distanță care, pe lângă suportul direct principal al dispozitivelor fizice, a fost extins și la diverse categorii de dispozitive logice/virtuale. Această statistică ne spune despre ce reprezintă driver Windows.

Teorie

Să ne uităm puțin la conceptul de șofer și să ne uităm la teoria de bază. Pentru a înțelege care este driverul în sistem, mai întâi trebuie să parcurgeți un minim de teorie din arhitectura x86-64. De ce x86, pentru că această platformă în sine: a) a fost aleasă de mine pentru experimente; b) cea mai largă gamă de operațiuni din segmentul de clienți sisteme Windows. Caracteristicile menționate în această secțiune ne vor oferi o înțelegere a aspectelor bogate ale lucrării, cum ar fi sistemul de operare și, evident, driverele din stocarea acestuia.

Moduri de procesor robot

Structura internă a oricărui sistem de operare se bazează pe caracteristicile hardware ale platformei, dar nu funcționează. Partea centrală este procesorul; procesoarele cu arhitectură x86-64 au o serie de moduri de operare:

  • Modul real;
  • modul virtual;
  • Modul furt (modul protejat);
  • Mod lung.

În zorii dezvoltării computerelor personale cu arhitectură x86, procesorul rulează în modul real. Tim nu este mai puțin, modul real de impulsuri incrementale a trecut, lăsând în urmă o serie de caracteristici care fac dificilă dezvoltarea în continuare a tehnologiilor: o magistrală de date pe 16 biți și o magistrală de adrese de 20 de biți (interschimbată prin adresare), adresare segmentată. cu dimensiunile segmentului 64 kilobytes (versiunea non-manuală) spațiu de adresă), numărul de limite dintre accesul la spațiul de adrese. Prin eliminarea granițelor esențiale, a fost dezvoltat un regim de securitate care a introdus o serie de caracteristici importante pentru dezvoltarea sistemelor de operare: „rich tasking”, un mecanism de securitate (acces la comenzi privilegiate), care asigură controlul accesului pentru diferite secțiuni ale cod (programe) unu la unu, model în memoria virtuală 'yati. În modul protejat procesoare Intel Arhitecturile x86 sunt implementate așa-numitele inele de protecție și avantaje egale. În general există: 0 (cele mai multe privilegii), 1, 2 și 3 (cel mai puțin privilegii). Prioritatea este de a fura codul în modul kernel atât în ​​programe, cât și în programe de același tip, ceea ce poate duce la o pierdere a eficienței. Cu toate acestea, sistemul de operare Windows nu analizează toate nivelurile supracorectate; afectează doar două dintre ele: 0 și 3.
Pentru claritatea înțelegerii, iată o diagramă simplificată a interacțiunii componentelor Windows:

După cum puteți vedea, nucleul intern al sistemului de operare Windows este împărțit în două părți și acceptă două moduri:

  • regimul Koristuvac- mod non-prefered, setări în spatele celui de-al treilea inel hardware pentru a proteja procesorul;
  • Modul Kernel - modul privilegiat, setat în spatele inelului hardware pentru a proteja procesorul;

Această caracteristică are poate cel mai important moment în înțelegerea funcționării interne a Windows: la nivel global, sistemul de operare este împărțit în două părți principale: modul core și modul kernel.

Acesta este unul dintre conceptele de bază ale multor sisteme de operare moderne.
Modurile de bază și modul kernel au următoarele opțiuni:

  • Spații de adrese virtuale izolate (nu se suprapun): spațiul pentru modul core ocupă partea inferioară (adresele de la), spațiul pentru modul kernel ocupă partea de sus (adresele de la);
  • Diverse beneficii sunt oferite accesului prin cod la resurse (memorie, procesor, dispozitive etc.).

Regimul koristuvach are următoarele procese:

Subsistemul Descriere
Procese de suport de sistem
  • Procesul de conectare Winlogon (winlogon.exe)
  • Proces server local autentificare lsass (lsass.exe)
  • Procesul Manager de control al serviciului (services.exe)
  • Procesul manager de sesiune (smss.exe)
  • Procesul de consolă (conhost.exe)
  • Proces local de manager de sesiune (lsm.exe)
  • . . .
Procese de service
  • Proces gazdă pentru servicii (svchost.exe)
  • Procesul managerului Chergi druku (spoolsv.exe)
  • Procesul de gestionare a serviciilor WMI (winmgmt.exe)
  • . . .
Aplicații
  • Accesorii pentru client (toate programele care nu sunt incluse în alte categorii).
  • Manager de activități (taskmgr.exe)
  • Explorer (explorer.exe)
  • Consolă de administrare (mmc.exe)
  • . . .
Subsisteme de mediu
  • Subsistemul Win32 (csrss.exe, kernel32.dll, advapi32.dll, user32.dll, gdi32.dll, ...)
  • Subsistemul Linux (lxss.sys, lxcore.sys)
  • Subsistemul POSIX (psxss.exe, psxrun.exe, posix.exe, psxdll.dll)
  • Subsistemul OS/2 (os2.exe, os2ss.exe, os2srv.exe)
  • Subsistemul WOW/WOW64 (wow64win.dll, wow64.dll, wow64cpu.dll)
  • . . .
Interfață cu funcțiile kernelului
  • Se asigură că nucleul este trecut în nucleu pentru funcțiile care nu sunt necesare. Sprijinit de biblioteca ntdll.dll

Modul kernel este setat la:

Subsistemul Descriere
Sistemul Vikonavcha (Executiv)
  • Manager de intrare
  • Manager de proces
  • Manager de flux
  • Manager de memorie virtuală
  • Manager de obiecte
  • Manager PnP
  • Manager alimentar
  • Dispecer Vikon
  • . . .
Nucleu Inițializarea driverelor critice de sistem în stadiul de integrare, sincronizarea interprocesor, programarea și expedierea proceselor/thread-urilor/întreruperilor, procesarea/dispecerarea defecte/remedieri și alte funcții ktsії (ntoskrnl.exe, ntkrnlmp.exe, ntkrnlpa.exe, ntkrnlpa.
Drivere de dispozitiv Drivere pentru dispozitive fizice/logice/virtuale: drivere de sistem de fișiere, medii, discuri etc.
Sistem de ferestre și grafică Subsistem de suport pentru grafica ferestre care oferă suport pentru funcțiile grafice interfață koristuvach(Interfață grafică cu utilizatorul, GUI). (win32k.sys)
Strat de abstractizare hardware (HAL) va asigura independența față de hardware-ul platformei, izolând componentele de bază ale specificațiilor hardware. (hal.dll)

Deși orice sistem de operare trebuie pur și simplu să se ocupe de hardware, distribuția (kit de instalare/fișiere de sistem) conține drivere pentru componentele hardware cheie, fără de care sistemul pierde literalmente accesul la hardware cu toate problemele care apar cu cine: Nu este posibil să funcționeze, sau toată lumea va trebui să treacă prin procedura de instalare a energiei electrice. Furnizarea acestor drivere „interne” la ceea ce pare a fi o așa-numită bibliotecă de drivere încorporate, care variază de la versiune la versiune, urmează etapele evoluției hardware și tendințele pieței. Driverele din această bibliotecă, dacă este necesar, sunt instalate în etapa de instalare a sistemului de operare în conformitate cu identificarea (identificarea) acestor și altor dispozitive de pe computer. La sfârșitul perioadei de instalare, codul modulului identificat este determinat de instalarea dispozitivelor pe computer și verifică cu biblioteca acestuia prezența driverelor incorecte. Pentru aceste dispozitive, cum ar fi driverele de sistem, instalarea se realizează în modul automat (în fundal). La sfârșitul zilei, după instalarea sistemului de operare, putem selecta setul minim necesar de drivere de sistem pentru funcționare, ceea ce ne permite să organizăm primul nucleu de lucru. Este important de reținut că nu este posibil să se facă distincția între driverele furnizate de kitul de distribuție; pentru funcționarea completă a majorității dispozitivelor, este posibil să aveți nevoie de drivere furnizate de distribuitorul dispozitivului.

Sursa de alimentare este oprită: toate componentele modului kernel interacționează cu echipamentul, inclusiv prin nivelul HAL? Care sunt vina? Merezha are un număr mare de dispozitive concepute pentru a crea circuite pentru ca driverele adaptoarelor grafice să interacționeze cu plăcile video ca „fără mijloc”, ocolind HAL. Din câte îmi amintesc, graficii în unele versiuni de Windows au primit cea mai mare prioritate, așa că au fost văzute în categoria adiacentă de dispozitive care funcționează direct cu adaptorul grafic și au fost separate ca urmare a accelerației interfata grafica sistem.

Niveluri de interogare de întrerupere (IRQL)

Printre mecanismele interne cheie care determină funcționarea sistemului de operare Windows, există un subiect important pentru înțelegerea principiilor de funcționare a driverului care este puțin probabil să fie evitat. Mecanismul acestui inele întreruperea unui număr egal de băuturi(Interrupt Request Level, IRQ Level, IRQL) și adăugați suficient pentru înțelegere, astfel încât profunzimea învățării noastre să depășească cu mult sfera materialului care este inclus, vom încerca în acest articol scurt video(Ei bine, în viitorul apropiat probabil voi edita articolul). Aparent, eu însumi sunt încă derutat de conceptul de IRQL, care se pune în practică sistematic, pas cu pas, pe baza cunoștințelor, pe baza etapelor pielii.
Termenul „întrerupere” a fost întotdeauna asociat cu modul real de lucru al procesorului, transferându-se în câteva ore de la sistemul de operare MSDOS, lucru care a fost ușor de realizat: prin formarea din 256 de întreruperi disponibile prin tabelul vectorilor „întreruperi”. Unele dintre acestea erau hardware și probabil au fost generate independent folosind un hardware extern, în timp ce altele erau software și probabil puteau fi accesate din codul de supliment. Intrările din tabel ar putea fi reatribuite, astfel încât vectorul procesatorului de date pentru re-rendarea elementelor disponibile să poată fi schimbat la procedura oficială de prelucrare. Nu exista așa ceva ca să înțelegi cum să întrerupi o serie de băuturi, totul era simplu și de înțeles. Cu toate acestea, odată cu evoluția procesoarelor și a sistemelor de operare, a apărut primul mod de furt, apoi Windows, moment din care totul a început să se complice rapid.
Literal, în primele versiuni de Windows 95/NT, a apărut un tabel (care constă din 32 de nivele de interogări de întrerupere), care sunt clasificate de la cel mai mic 0 (pasiv) la cel mai mare 31 (mai mare):

Sunt Clasă Misiune Rubarb Intel x86-64
ÎNALT Hardware Rubarba supremă. Modificări nemascate și alte tipuri. 31
PUTERE Hardware Sub taverna de foc 30
IPI Hardware Semnal interprocesor. Semnale de comunicare interprocesor. 29
CEAS Hardware Bifarea temporizatorului de sistem 28
PROFIL Hardware Controlul productivității. Cronometru de profilare a nucleului (mecanism de monitorizare a productivității sistemului). 27
DISPOZITIV Hardware DIRQL (Dispozitive IRQL). Revizuire hardware a dispozitivelor. 3-26
EXPEDIERE Software Operațiuni Planner/Procedure Posting (DPC). 2
APC Software Apeluri asincrone de proceduri. 1
PASIV Software Rubarbă pasivă. Nu este nevoie să exagerați. Elan primar pentru regimul de cod vikonannya koristuvach 0

După cum puteți observa, tabelul are o caracteristică specială: sunt afișate imediat nivelurile de program și hardware (0-2 pentru nivelul programului și 3-31 pentru hardware).

IRQL este un atribut software puternic introdus de comercianții Microsoft. Acest mecanism nu are suport hardware pe partea procesorului. Sistemul gestionează în mod independent toate tipurile de întreruperi, care sunt generate prin mecanismul de afișare a egalităților de transfer ale controlerului de schimb hardware (PIC) și software-ul principal egal într-un singur tabel de întrerupere independent de hardware.

Din această afirmație rezultă că modelul este bazat pe putere, programatic, iar colegii din el nu sunt legați de nicio specificație de proprietate, ceea ce permite ca sistemul să fie colectat într-o singură ierarhie de priorități hardware și nu paratyi tipi întrerupt. Nivelurile inferioare (non-hardware/software) ale IRQL (PASSIVE, APC, DPC/DISPATCH) sunt folosite pentru a sincroniza subsistemele software ale sistemului de operare: lansarea operațiunilor de programare, cum ar fi inversarea firelor de execuție sau finalizarea procesării I/O. Să aruncăm o privire la rapoartele lor:

  • Prioritate 0 (cea mai joasă) IRQL (PASIV): Este comună schimbarea modului de operare în sistemul de operare, atât în ​​modul desktop, cât și în modul kernel. Codul (programul) care se adaugă la acest nivel poate fi supus unor întreruperi elementare (întreruperi) în orice mod posibil: de exemplu, fluxurile care sunt adăugate la nivelul IRQ PASSIVE sunt supuse modificării de către planificator după sfârșitul cuantumului. ale orei, văzute pentru ei.
  • Nivelurile IRQL APC și DPC/DISPATCH - întrerupe nivelurile programului asociate cu planificatorul.
  • Nivelul 1 IRQL (APC): La ce nivel se află așa-numitele proceduri APC, care sunt proceduri care sunt executate asincron în contextul unui fir specific, care organizează intrarea și ieșirea asincrone sau execută/verifica orice obiect de sistem (extern, global) c. Utilizarea funcțiilor APC (de exemplu, WaitForSingleObjectEx) în cod nu are ca rezultat execuția funcției, ci fluxul (în contextul căruia este inițiată funcția) trece la o stare specială care este generată de APC program de întrerupere, făcând clic pe funcția ї plasată lângă sertarul interior. Acum, când a sosit momentul să închei acest thread, funcția APC este planificată să fie terminată la același nivel cu APC. Threadurile care rulează la nivelul APC nu trebuie neapărat să scrie la nivelul lor APC, care este modul în care sistemul gestionează operațiunile de finalizare a I/O.
  • Nivelul 2 IRQL (DPC/DISPATCH):
    • Vikorist este utilizat pentru procesarea apelurilor depuneri de proceduri (DPC): Depozite de apeluri de procedura - nu subprograme ale apelului de retur, precum sunt depozitele pentru iesire pana in momentul trecerii la nivelul IRQL DISPATCH; Apelați DPC-uri de la niveluri IRQL ridicate folosind metoda de creare roboți suplimentari,Pentru orice oră de procesor petrecută nu este critică. Această etapă este importantă pentru productivitate și voi explica de ce. Șoferii de dispozitiv sunt încurajați să efectueze cât mai puține operațiuni posibil în mijlocul subrutinelor ISR puternice, pentru a nu ocupa mult timp cu DIRQL, astfel încât să nu blocheze soluția de întrerupere și, ca urmare, să deterioreze întregul sistem. .

      Dacă IRQL este egal, procesul va fi mai puțin eficient. Acest lucru încurajează distribuitorii să nivel inalt IRQL este dezactivat numai pentru operațiunile cele mai necesare, iar toate celelalte operațiuni sunt menținute la nivel scăzut.

      Pentru că șoferul înțelege că necesită muncă suplimentară, care ocupă ora curentă a procesorului, pornește DPC-ul și îl transferă la o altă sarcină. Când nivelul IRQL scade la DISPATCH, este generat un apel de întoarcere din funcția atașată a driverului, care este partea finală a procesării. Realizuychi este algoritmul subinth pe RIVNI IRQL Dispatch, șoferul este efectuat pe RIVNI DIRQL Menshu Kilki, eu, ora, ora scurgerii puterii puterii, timul stârnirii lui Yogo pentru aceeași extensie a sistemelor.

    • Vikorist pentru sarcina finală a planificatorului: După cum știți, în sistemele de operare ale liniei Windows NT există o mulțime de sarcini implementate, ceea ce înseamnă că procesul de piele care este finalizat în sistemul de operare pare a fi un cânt oră pentru Viconnan. Fragmentele IRQL ale planificatorului de flux și DPC sunt egale cu 2, apoi prioritatea planificatorului de flux este mai mare (setat la nivelul 0). Cu toate acestea, prioritatea planificatorului este mai mică decât prioritatea întreruperilor hardware (întreruperi de la dispozitive), așa că este posibil să nu fiți întrerupt de întreruperile hardware.

Bine, dar încă nu înțeleg de ce nu a fost posibil să înveți de la toți acești rivali și să creez un model „plat” al desenelor sau să surprind toate aceste tipuri de sarcini din lume? Să simulăm o situație de lucru:
Să ne imaginăm un cod, de exemplu un mic program scris „pe desktop”. Axa a fost lansată pe web, se pare că în sistem s-a format un proces pentru programul nostru, în contextul căruia a început să se dezvolte fluxul principal. Un fir obișnuit (modul de bază sau modul kernel) este setat la cel mai scăzut nivel de IRQL PASSIVE. Pe parcursul zilei, cronometrul (microcircuit timer) generează periodic tensiuni de întrerupere pentru intervale de timp, care sunt utilizate pentru a determina sistemul de operare să treacă un anumit interval de timp. Procedura de procesare a reprelucrării datei este la nivelul IRQL CLOCK, care (așa cum se arată în tabel) are prioritate față de majoritatea nivelurilor: nivelul DISPATCH, pe care este selectat planificatorul și nivelul PASIV, pe care Programul nostru. este în curs de finalizare. În acest fel, cronometrul bifează continuu munca, planificatorul și programul nostru. Odată cu transmiterea pe piele a căpușei cronometrului, procedura de procesare a întreruperii cronometrului se modifică și nu mai este în concordanță cu Narazi fluxul nostru koristuvach quantum chas. În momentul în care cuantumul de timp pentru flux se schimbă la zero, programul de procesare a fluxului anului generează o modificare a nivelului DISPATCH, declanșând astfel lansarea planificatorului pentru a selecta următorul flux pentru flux. După faptul că întreruperea nivelului DISPATCH este generată, procedura de procesare a întreruperii temporizatorului se termină cu codul acesteia și controlul revine în nucleul sistemului. Nucleul este cunoscut prin sursa de alimentare la momentul întreruperii cu nivelul de prioritate în modul de recuperare. Iritația pielii este tratată conform procedurii. Odată ce toate întreruperile de peste nivelul DISPATCH sunt deservite, procedura de procesare a întreruperii nivelului DISPATCH este finalizată. Acest program de procesare colectează lista de DPC-uri și apoi apelează planificatorul. Planificatorul detectează că cuantumul fluxului curent a fost epuizat și este schimbat la zero, după care planificatorul creează un algoritm de programare pentru selectarea următorului flux de curgere. Codul fluxului atribuit va fi afișat dacă sistemul scade la nivelul IRQL PASIV.
În acest fel, se realizează prioritățile și, evident, bogăția sarcinii la îndemână. Acum află ce vei obține de la sistem, ierarhia rivalilor, întrerupând modul în care se comportă sistemul? În această situație, ar fi nerezonabil ca, și dacă s-ar concluziona, sistemul să cedeze toate elementele care erau în regulă, ceea ce ar duce la faptul că fluxurile ar putea bloca cu ușurință planificatorul și, prin urmare, fie să se aprindă, fie Vreau să scot în evidență abundența de sarcini care ar fi făcut ca sistemul de operare să fie indisponibil robotului. În acest mod:

IRQL este un sistem de prioritizare hardware-software care este utilizat pentru sincronizarea în sistemele de operare din familia Windows, deci IRQL este metoda principală folosită pentru a determina prioritățile a tot x acțiune care este finalizată în sistemul de operare Windows prin ciclul de lucru.

evident:

IRQL indică prioritatea codului care este executat pe procesor fără a întrerupe alte procese asincrone (rapto).

Atribuțiile nivelurilor IRQL în sistem sunt după cum urmează:

  1. Mascare: nivelul avansat de întrerupere vă permite să tăiați (mascați) nivelurile inferioare de întrerupere hardware pe Controler PIC. Acest lucru vă permite să ignorați întreruperile în orice moment, care vor apărea pentru mai multe nivel scăzut, prin prezenta încheiem jucăuș procedura de procesare a întreruperii hardware a acestei regiuni.
  2. Sincronizare hardware: sincronizarea datelor între fire care rulează pe diferite procesoare/nuclee ale unui sistem multiprocesor.
  3. Sincronizare software: pentru a determina câte proceduri APC/DPC diferite pot fi deservite, pentru a determina câte proceduri APC/DPC diferite pot fi deservite de programe în modul personalizat.

Astfel, la nivel global, mecanismul IRQL permite subprogramelor sistemului de operare să:

  • reintrare Keruvati (reintrare)
  • Garantați că puteți continua să lucrați fără întrerupere (întrerupere) prioritară cu alte activități.

Sincronizarea proceselor este un mecanism care vă permite să asigurați integritatea oricărei resurse (fișier, date de memorie) care este partajată de mai multe procese și fire într-o ordine aleatorie.

Ei bine, cum afectează asta șoferii? Știm că driverele pot fi instalate atât în ​​modul PC, cât și în modul kernel și, evident, sunt instalate în modul PC și în modul kernel. Următorul este după cum urmează:

Codul driverului poate fi modificat pe diferite niveluri IRQL.

Și stelele evidențiază două note importante:

  1. Codul șoferului se blochează și se blochează. Dacă există orice alt cod în sistem, pot exista întreruperi în orice moment după sfârșitul cuantumului văzut al orei;
  2. Codul driverului este susceptibil să interfereze cu alte seturi de funcții ale sistemului, în funcție de nivelul IRQL pe care este configurat.

Detectează situația când codul driverului este actualizat la un nivel scăzut de IRQL, modifică un obiect (de exemplu, un fișier file.txt), apoi un alt cod la un nivel ridicat de IRQL își repetă conexiunea și modifică același fișier file.txt cu alte date. Dacă reveniți la driver, puteți continua să modificați fișierul cu datele dvs., suprascriind astfel datele care au venit de pe alt dispozitiv. În acest fel, dosarul va trece în uitare. Pentru cirese probleme similare Au fost introduse diverse obiecte de sincronizare a sistemului. Pentru ca codul kernelului să modifice tipurile de date, obiectele sunt dezactivate reciproc, mai întâi trebuie să eliminați codul de blocare.

Conceptul de șofer

Nucleul sistemului de operare Windows nu a fost proiectat pentru interacțiunea independentă cu dispozitivele.

Concluziile din această afirmație sunt evidente: pentru ca sistemul să interacționeze cu dispozitivele, interfețele necesare pot fi o combinație a mai multor interfețe. Conceptul de șofer a fost descompus pentru performanță maximă și este adoptat în majoritatea modelelor sistemele actuale Se bazează pe un cod special din spațiul de adrese al nucleului care asigură interacțiunea nucleului de sistem cu orice tip de dispozitive logice/fizice.
În conformitate cu orientarea juridică a resursei, statisticile evidențiază specificul driverelor sistemului de operare Windows. Ozhe, pentru Drivere Windows, În ceea ce privește driverele altor sisteme de operare, suntem siguri de următoarele afirmații:

Driver este un program software care, pe lângă orice sistem de operare (software de sistem, nucleu și alte componente), permite accesul la funcționalitatea oricărui dispozitiv fizic sau logic.

la fel, dar cu alte cuvinte:

Un driver este o interfață între cod, modul driver, modul kernel și funcțiile unui dispozitiv fizic/logic/virtual.

Unul dintre aceste puncte subliniază importanța șoferului: este important să se ofere șoferului doar în interacțiunea cu un dispozitiv fizic, deoarece șoferul nu este neapărat responsabil pentru acordarea accesului la funcții de orice fel, acesta putând fi securizat exclusiv în software funcțional. Caracteristici. Aplicațiile unor astfel de soluții includ drivere care sunt instalate în sistem de către antivirusuri, sisteme de criptare a datelor și sisteme de monitorizare. Algoritmul ascuns pentru funcționarea oricărui driver al atacului: programele pentru funcțiile suplimentare ale interfeței speciale a computerului (în Windows acesta este API-ul Win32) sau intrările de intrare-ieșire sunt convertite indirect/indirect în funcțiile driverul oricărui dispozitiv. Driverul, la rândul său, oferă acces la caracteristicile funcționale ale dispozitivului care trebuie descărcat și, de asemenea, controlează procesul de interacțiune dintre sursele de alimentare ale suplimentelor și dispozitivul în sine. Desigur, în driver este necesar să se definească (descrie) toate principiile de interacțiune cu dispozitivul care este întreținut (ușor, puternic), datorită prezenței unui set de date despre acoperirea obiectului, instrucțiuni (cadrare). comenzi), pentru mai mult ajutor cu orice sistem/cod, puteți să inițializați corect dispozitivul și să începeți să interacționați cu acesta.

Necesită drivere înainte de a porni sistemul de operare

Ar fi interesant să ne întrebăm în ce stadiu de instalare începe să se implice sistemul de operare și începe să fie instalat primul driver Windows? Cu toate acestea, într-un raport detaliat, procesul nu este banal și pentru o înțelegere mai profundă necesită inversarea codului multor componente ale achiziției, pe lângă tot ceea ce este necesar pentru a lua în considerare toate momentele însoțitoare, precum: succesiunea achiziție , datorită locației dintre drivere, prin care driverele pot fi grupate în același rang „ „Grupuri de instalare”, instalarea driverelor în sine poate fi împărțită în mai multe etape și altele. Având în vedere că există un număr mare de materiale în Merezha, inclusiv sisteme de operare deja învechite, vom încerca să actualizăm procesul de achiziție Drivere Windows pe aplicația (cea mai apropiată de mine) a sistemului de operare Windows 7. Și pentru prima dată, nu ar strica să știm despre principalele componente ale nucleului Windows, care participă activ la procesul de achiziție a driverelor:

  • Manager I/O- un modul mod kernel care este inclus în stocarea subsistemului informatic, care se ocupă de procesele de intrare/ieșire, care asigură abstracția dispozitivelor fizice și logice pentru aplicații informatice componentele sistemului, care conectează programul modului Koristuvalnitsky cu driverele. Controlează etapele procesului de interacțiune cu șoferii. Întregul schimb de date între managerul I/O și drivere are loc prin conversia la procedurile de apel invers al driverului și prin transferul unei structuri de date IRP standardizate, care descrie întreaga esență a transferului către driver;
  • Dispatcher (manager) Plug-and-Play (Manager PnP)- un modul pentru modul kernel și modul utilizator, care este inclus în depozitul subsistemului computerului, care indică adăugarea, recunoașterea și îndepărtarea dispozitivelor din sistemul de operare. Parte a interacțiunii modului kernel cu alte componente ale sistemului și drivere în timpul instalării (instalării) securitatea software-ului, necesar pentru deservirea dispozitivelor prezente în sistem. O parte a regimului Koristuvach vidpovіdov, pentru regimul de proiecție reciprocă al Coristuvach (pentru Coristuvach ilintoratively reciproc) în situațiile de noutate de navigare a parametrului nalastvanny în același timp. Gestionează distribuția resurselor hardware în sistem, astfel încât să poată recunoaște dispozitivele, să răspundă la conexiunile/conexiunile acestora și să instaleze drivere suplimentare pentru a identifica dispozitive noi;
  • Manager de control al serviciului (SCM)- un proces de sistem care presupune crearea, instalarea, lansarea unui grup de servicii și drivere ale sistemului de operare. De asemenea, va asigura: funcționarea jurnalului, susținând tehnologia apelului de procedură la distanță (RPC);

Acești doi manageri, managerul I/O și managerul PnP, comunică activ unul cu celălalt.
Acum vom descrie procesul de instalare a sistemului de operare, nu în forma familiară nouă, ci pe scurt punctele cheie ale modului în care funcționează componentele descrise ale sistemului de operare cu drivere:

  1. Bootmgr(.efi) încarcă modulul winload(.efi) și îl transmite serverului.
  2. Winload(.efi) scanează registry HKEY_LOCAL_MACHINE\System\services Aceasta va afișa o listă cu toate instalările instalate în sistemul de drivere. Ce registru are secțiuni care sunt configurate cu drivere finale, acestea conțin diverși parametri care se referă la drivere, cum ar fi Group, Start, Type, LoadOrderGroup, DependOnGroup, DependOnServices, Ce înseamnă acestea și alte strigăte?
  3. Winload(.efi) importă drivere critice pentru etapa de instalare/funcționare a sistemului de operare, cum ar fi driverele controlerului de stocare, driverele sistemului de fișiere. Evident, astfel de drivere au cea mai mare prioritate, deoarece creează baza pentru utilizarea altor drivere, ceea ce din aceste și alte motive se datorează problemelor de memorie la momentul transferului controlului către nucleu. Aparent, sunt marcate cu un tip special SERVICE_BOOT_START. Șoferii în acest stadiu încep să se încurce în grupuri, până la punctul de a provoca o miros.
  4. Winload(.efi) descarcă nucleul de bază din fișierul ntoskrnl.exe și îl transferă în nucleu.
  5. Nucleul este dominat de Managerul I/O și Managerul PnP.
  6. Managerul de prezentare-afișare creează un catalog global. Acest director este folosit pentru înregistrarea obiectelor dispozitivului.
  7. Managerul PnP pornește șoferul, concentrându-se și asupra puzzle-ului în stadiul avansat (tip SERVICE_BOOT_START), apelând procedura DriverEntry a driverului de piele. În această etapă vor fi introduși șoferii vechi.
  8. Managerul PnP se va uita la arborele de dispozitive al sistemului, îl va străbate de la rădăcină și va descărca drivere de dispozitiv care nu au fost încă descărcate.
  9. Managerul PnP va descărca driverele de dispozitiv care nu mai sunt necesare, indiferent de valoarea parametrului Start. Multe drivere similare au tipul SERVICE_DEMAND_START.
  10. Managerul PnP oferă șoferilor funcționalități avansate. Aceste drivere includ driverul adaptorului video și driverul. dispozitive externe Driver de stivă TCP/IP. Aceste drivere sunt de tip SERVICE_SYSTEM_START.
  11. Nucleul este controlat de Session Manager Subsystem Service (SMSS), care la rândul său este controlat de Service Management Manager (SCM). SCM scanează registrul ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services) și pe baza informațiilor extrase instalează o bază de date internă de servicii/driver, formulare interfata software pentru deservirea instalatiei de servicii/soferi. SCM controlează „pornirea automată” a driverelor non-PnP (tip SERVICE_AUTO_START), precum și a tuturor driverelor, inclusiv a celorlalți.

Pentru acest algoritm de achiziție a șoferului, trebuie să fim conștienți de următoarele reguli de bază: șoferul poate fi achiziționat (în funcție de stadiul/clasa șoferului) cu ajutorul unui manager PnP sau cu ajutorul unui SCM, și axa procesului de funcționare a șoferului este luată activ rol: Manager de introducere.

Structura driverului Windows

Ce fel de șofer ar putea fi similar ca structură? Este aceasta o clasă specială de programe care sunt controlate în mod specific? Adică, dacă chiar îmi pasă, dacă mă gândesc doar la asta, de ce ar fi surprinzător pentru furnizorii de sisteme de operare să-și gestioneze viața și să vină cu un nou format de fișier imagine specializat pentru tot felul de componente nucleare? Este mult mai ușor să adaptezi unul vechi care a fost perfecționat de mult timp și a fost revizuit de o sută de ori.

Driverul este un fel de „bibliotecă în modul kernel”, primar fișier DLL, în care în antetul PE (structura IMAGE_NT_HEADERS, substructura OptionalHeader) valoarea câmpului Subsystem = 1 (IMAGE_SUBSYSTEM_NATIVE).

Tipul de subsistem poate fi atribuit atunci când modulul este pliat și este în curs de pliere. Subsistemul nativ în sine este tipic pentru suplimente care funcționează conform altor reguli care sunt diferite de cele clasice; în etapa de pregătire a imaginii, nu trebuie să inițializeze subsistemul Win32. Printre altele, subsistemul nativ este supus codului modului kernel, care include toate driverele.

Prin analogie cu un DLL, vă puteți gândi pur și simplu la un driver ca la un set de proceduri (clicuri programe externe), pielea este folosită pentru prelucrarea tipului de cânt până la șofer.

Doar o scurtă introducere și să vorbim despre un astfel de concept ca obiect. Pe de altă parte, întregul proces de funcționare a driverului Windows, precum și orice alte module ale sistemului de operare, se află în diferite structuri de date ale sistemului. Aceste structuri sunt controlate de nucleu și pot conține fire de execuție, fire de execuție, cereri de intrare-ieșire, dispozitive și alte entități.

  • Obiecte. Blocuri de date care conțin înregistrări ale autorităților și ale altor entități ale sistemului de operare. Realizat de dispecerul (managerul) obiectelor. Multe obiecte au descriptori (descriptori), pentru care devin disponibile obiecte suplimentare.
  • Structură de date. Blocuri de date care conțin înregistrări ale autorităților și ale altor entități ale sistemului de operare. Keruetyvayutsya miez. Ele apar ca obiecte, obiectele (din cauza inertiei) se mai numesc si obiecte

Prin urmare (în mare măsură) toate structurile interne ale sistemului de operare Windows sunt numite obiecte.
Acum să ne întoarcem la procedurile driverului, de fapt, așa-numitele „proceduri” ale driverului sunt obiectele COM ale gateway-ului, care definesc pașii care trebuie parcurși din obiectele corespunzătoare ale infrastructurii sistemului de operare, ei spunem că driverul oferă nucleul interfeței COM a sistemului de operare, sarcini într-o serie de proceduri care sunt implementate de driver. Exportul, care publică (publică) procedurile driverului pentru apelarea ulterioară către acestea, se termină cu calea de înregistrare în procedura driverului principal (standard pentru toți driverele), care se numește DriverEntry.

Scopul principal al funcției DriverEntry este ca dezvoltatorul de driver să implementeze completarea obiectului driver (înregistrări de structură) cu intrări pe diferite proceduri interne ale driverului pentru a oferi aceeași funcționalitate. În procedura DriverEntry, puteți seta (modifica) numele obiectului dispozitiv, care este adesea folosit de programe pentru a deschide descriptorul dispozitivului și a încărca pachete de solicitare I/O (IRP).

Funcția DriverEntry este de fapt o funcție de inițializare globală și este configurată o dată în timpul etapei de achiziție a driverului. Această funcție poate fi fie extrem de simplă, fie include funcționalități avansate (subprograme suplimentare), cum ar fi crearea de obiecte dispozitiv adiționale, configurarea dispozitivului, fazele suplimentare de configurare și inițialele.
După publicarea funcțiilor sale, driverul devine nucleul „vizibil” al sistemului de operare. Pentru a nu complica și completa teoria complexă, este important ca, din aspectul nucleului Windows, orice dispozitiv să fie aparent abstract”. dispozitiv virtual", care operează cu un set standardizat de comenzi și este accesibil prin interfețe interne. După cum sa spus deja mai sus, în nucleul sistemului de operare Windows există un modul special al sistemului Windows, numit dispecer (manager) introducere, care va oferi o interfață unică pentru interacțiunea tuturor driverelor în modul kernel, inclusiv drivere de dispozitiv fizic, drivere de dispozitiv logic și drivere de sistem de fișiere. Aparent, sistemul I/O kernel este suportat de drivere, sau putem spune că driverele folosesc interfața I/O manager pentru a asigura funcționarea sistemului de operare. Pe de altă parte, driverul va asigura transformarea (conversia) „comenzilor standard” care vin din sistemul de operare, în comenzi care sunt „minte” sub controlul dispozitivului dvs. (așa cum este), și așa mai departe. Managerul de intrare-ieșire definește un set de proceduri standard care pot fi implementate în driver, cum ar fi:

Driverul conține un set de proceduri de poartă pentru a asigura diferitele etape ale procesului de inserare-excludere.

Pentru o mai bună înțelegere a caracteristicilor funcționale pe care driverul trebuie să le ofere, să descriem procedurile cheie ale driverului:

Cu toate acestea, uitându-ne la diagrama de mai sus, devine clar că înseși tipurile de interacțiuni și grupul de proceduri în sine sunt responsabile pentru implementarea driverului Windows abstract. Să revizuim acum pașii din aceste proceduri:

  • Inițializare - Managerul I/O începe procedura de inițializare (numită DriverEntry), care are scopul de a efectua configurarea inițială a obiectului driver, de a înregistra toate celelalte proceduri de driver și de a configura cada dispozitivului ușor și vykonannaya de alte acțiuni pentru beneficiul comerciantului cu amănuntul.
  • Adăugați un dispozitiv - adăugați obiect (suplimentar) „dispozitiv”. În această procedură, șoferul creează în esență obiecte „dispozitiv” pentru dispozitivul de piele care este întreținut de șofer. Vă rugăm să verificați dacă există drivere Plug-and-Play.
  • Procesare – un set de proceduri de expediere (prelucrarea diferitelor instalații). Deschiderea, închiderea, citirea, scrierea pe dispozitive, etapele de viață de procesare, PnP și setările sistemului, precum și alte tipuri de interacțiuni sunt descrise în procedurile de expediere. De fapt, procedurile principale, fragmentele prin procedurile de expediere, sunt procesate în operațiuni tipice de intrare-ieșire.
  • Lansarea (pornirea) introducerii-ieșirii - o altă etapă de procesare este aplicată introducerii-ieșirii pe dispozitiv, care începe imediat introducerea-ieșirii către dispozitiv. Această procedură poate fi urmată pentru a transfera inițial date de pe dispozitiv.
  • Procedura de întreținere a întreruperii - dacă dispozitivul generează o întrerupere, managerul de întrerupere transmite această procedură.
  • Procesarea procedurilor de imbricare - Procedura DPC parcurge activitatea principală cu un eșantion al întreruperii după terminarea ISR. Depunerile și clicurile de proceduri sunt atribuite la niveluri scăzute de IRQL (DPC/DISPATCH), mai mici decât procedura ISR în sine. Un algoritm similar este implementat pentru a preveni blocarea altor întreruperi.
  • Procedura de finalizare I/O - un driver de nivel înalt poate efectua proceduri de finalizare I/O care indică finalizarea procesării IRP de către un driver de nivel scăzut.
  • Rutine I/O - Deoarece operațiunile I/O pot fi întrerupte, driverul poate defini una sau mai multe rutine similare. Dacă driverul selectează un pachet IRP pentru a furniza intrări-ieșiri care pot fi procesate, inițiază o procedură de procesare IRP, iar pachetul IRP trece prin diferite etape de procesare, a cărui procedură poate fi schimbată sau primită, deoarece operațiunea curentă nu este afectată . .
  • Procedură de înlocuire rapidă - Driverele care utilizează în mod activ Managerii cache, cum ar fi driverele de sistem de fișiere, trebuie să ofere proceduri similare pentru a se asigura că nucleul poate ocoli algoritmii tipici de procesare I/O.
  • Procedura de extragere trebuie implementată în driverul skin, care împrumută/împrumută din resursele sistemului pentru ca I/O Manager să extragă driverul din memorie.
  • Procedura de preempțiune la finalizare permite șoferului să elibereze toate resursele împrumutate atunci când sistemul este terminat.

Devine evident că în procesul de dezvoltare a unui driver Windows nu este necesară implementarea întregului set de proceduri descrise mai sus; un driver unic și un dezvoltator pot oferi un set diferit de implementări care sunt suportate de driver. Dacă un driver, asistat de un manager PnP sau SCM, intră în sistem, managerul I/O creează un obiect „driver” în spațiul de nume și apelează procedura de inițializare a driverului (numită DriverEntry), care continuă mai departe și cu inițializare.

Obiectul driver este imaginea driverului încărcat în memoria kernelului și prin acest obiect sistemul furnizează driverul.

Obiectul driver reprezintă codul driverului și datele din nucleu: tot prin acest obiect driverul exportă punctele de intrare către procedurile sale. Procedura de inițializare a driverului scrie în atributele acestui obiect punctele de intrare ale tuturor procedurilor driverului care sunt exportate. Odată instalat, driverul poate crea obiecte „dispozitiv” pentru a reprezenta dispozitivele sau le poate îndrepta către interfața driverului pentru a forma unul. Majoritatea driverelor creează obiecte dispozitiv astfel:

  • Driverele PnP creează obiecte „dispozitiv” urmând procedurile de adăugare a dispozitivului, dacă managerul PnP îi informează despre prezența dispozitivului pe care îl folosesc.
  • Driverele non-PnP creează obiecte „dispozitiv” atunci când managerul solicită procedurile de inițializare.

Când se creează un obiect de tipul dispozitivului, driverul trebuie să dea un nume acestui obiect. Apoi această nouă creație este plasată în spațiul numelor manager de obiecte(Manager de obiecte), care este un dispecer (manager) de intrare și ieșire, face parte din subsistemul Windows kernel. Managerul de obiecte este folosit pentru a menține o bază de date cu toate resursele sistemului de operare reprezentate ca obiecte. Numele obiectului poate fi specificat explicit de driverul însuși sau poate fi generat automat de managerul I/O. De-a lungul anilor, obiectele dispozitivului sunt vinovate de a fi localizate în directorul \Device al spațiului de nume al managerului de obiecte, care este inaccesibil pentru programe prin intermediul API-ului Win32. Și pentru ca obiectul „dispozitiv” să devină disponibil pentru suplimente, driverul trebuie să introducă \GLOBAL?? mesaj simbolic la numele acestui obiect din catalogul \Device. Driverele care nu acceptă tehnologia Plug-and-Play și driverele de sistem de fișiere pot crea mesaje simbolice din nume ascunse (de exemplu, \Device\VMwareKbdFilter). Numai după toate reviziile, șoferul devine „vizibil” în sistem și disponibil pentru utilizare de către suplimentele utilizatorului.

Interacțiunea cu șoferul

Cum poate interacționa programul de calculator cu driverul din sistem? Există două moduri de a face acest lucru:

  1. Implicit - un apel la o funcție tipică Win32 API;
  2. Explicit - intrare și ieșire directă către șofer;

Ei bine, primul pas este că totul este simplu, programul de aplicație apelează fiecare funcție API Win32 obișnuită (de exemplu, CreateFile), iar apoi, ca urmare a obiectului țintă (fișier, director), îl puteți apela în clicker dintre funcțiile dvs. de apel le schimb cu șoferul. De fapt, în acest caz, codul programului nu își setează sarcinile pentru a interacționa cu niciun driver, pur și simplu făcând clic pe proceduri, în prima etapă a programului intrând în modul kernel și făcând clic pe funcțiile driverului. Toate acestea nu se aplică vânzătorului cu amănuntul, dar este posibil să cooperăm unul cu celălalt pentru beneficii nutriționale suplimentare.
Cealaltă problemă este mai gravă, deoarece apare atunci când șoferul face clic pe baza nu clicurilor secvențiale (pentru un clic suplimentar al unei funcții standard), ci pentru transmiterea unei funcții speciale suplimentare (de exemplu, DeviceIoControl) așa-numita intrare /output (cerere de control I/O), care, apoi, inițiază formarea unui bloc de date sub numele pachetului de intrare-ieșire.

I/O Request Packet (IRP, I/O Request Packet) este o structură de date a nucleului Windows care conține informații care descriu cererea I/O.

Formal, IRP este un pachet, sau un obiect kernel, o structură (bloc) de date cu un set de proceduri pentru managerul I/O care asigură schimbul de date între un program și un driver, sau între un driver și un driver. . După cum am ghicit deja, arhitectura Windows este proiectată în așa fel încât să prevină interacțiunea directă între program și modul driver, astfel încât un astfel de schimb este efectuat înainte ca programul să trimită codul IOCTL, ceea ce duce apoi la formarea unui Pachetul IRP de către manager. Managerul I/O însuși, care este responsabil pentru interacțiunea cu driverele, operează cu pachete IRP. Managerul input-output solicită input-output de la programele utilizatorului, apoi formează un IRP și îl transferă la driverul extern.
Pachetul IRP constă din două părți:

  • parte staționară;
  • stivă pentru plasarea I/O.

În partea stabilă a IRP, se folosește codul de funcție mai vechi și (nu întotdeauna) mai tânăr. Coduri majore: IRP_MJ_CREATE, IRP_MJ_CLOSE, IRP_MJ_READ, IRP_MJ_WRITE, IRP_MJ_CLEANUP, IRP_MJ_DEVICE_CONTROL, IRP_MJ_INTERNAL_DEVICE_CONTROL, IRP_MJ_CROANUP J_POWER, IRPUT_D_POWER, IRP_SHD_NJ Pachetul conține și o stivă de plasare I/O - o structură specială IO_STACK_LOCATION pentru a stoca următorii parametri: un set de dispozitive care procesează acest pachet IRP. Mai mult, acest pachet este transmis la stivă secvenţial de la dispozitiv la dispozitiv. Mai mult de un aspect de stivă, este clar că IRP-urile pot fi partajate cu o serie de drivere. „Bufferele de stivă” IRP sunt concepute pentru a salva informații „modificabile” atunci când pachetul IRP trece prin stiva de drivere. Pachetul IRP urmează procedurile publicate ale driverului de piele, care se bazează pe compartimentele „săi” ale stivei pentru a găzdui informațiile I/O necesare. Procedurile șoferului sunt adesea numite „proceduri de apel invers”. După cum am ghicit deja, funcția de inițializare a driverului DriverEtnry notifică nucleul (publică) numele acestor proceduri, iar kernel-ul ulterior apelează aceeași procedură pentru condițiile anterioare.
Când este instalat ca program standard, driverul nu are propriul spațiu de adrese și nu interferează cu fluxul conexiunii. Cu alte cuvinte, funcția driver este definită în contextul firului și al procesului în care a fost efectuat apelul. Contextul (întinderea codului) al șoferului depinde de cine face apelul către șofer. Verificările pot fi inițiate:

  1. Program de aplicație (program pentru modul koristuvach). În acest caz, contextul driverului este cunoscut exact și este salvat de contextul programului de aplicație;
  2. Un alt șofer (terț). În acest caz, contextul wiki-ului este mai complex și poate fi atât cunoscut, cât și neașteptat, dar se află în contextul wiki-ului funcției de driver care este numită.
  3. Modificări hardware/software. În acest caz, contextul instalării este diferit, iar fragmentele de întrerupere (și, aparent, interferența cu codul driverului) pot apărea atunci când este instalat orice cod din sistemul de operare.

Din nou, nu pot accesa driverul ca program obișnuit. funcții standard Win32 API, puteți opera numai funcțiile disponibile în kernel, care încep cu prefixele Ex.., Hal.., Io.., Ke.., Ks.., Mm.., Ob.., Po.. , Ps. , Rtl.. , Se.. , Zw.. și alte activități.

Tipuri de drivere Windows

În procesul de evoluție și, aparent, de complexitatea conceptului de șofer, șoferii au început să se subdivizeze în categorii (sau tipuri) datorită recunoașterii. Axa principală este:

  • Șoferi de clasă(Driver de clasă) – drivere dezvoltate de Microsoft pentru dispozitivele de clasă.
  • Drivere de sistem de fișiere(File System Drivers) - drivere de implementat sisteme de fișiere informații pe diferite medii.
  • Soferi redusi(Drifere vechi) - „drivere vechi” (pe baza structurii versiunilor mai vechi ale sistemului de operare) și drivere pentru modul kernel care controlează în mod independent dispozitivele mici, fără drivere de dispozitiv suplimentare. De ce mirosul unui astfel de nume? Acesta este tipul de driver care a fost salvat din versiunile anterioare ale liniei de sisteme de operare Windows NT.
  • Driver de autobuz - Drivere care oferă funcționalitatea oricărei magistrale de computer (ISA, PCI, USB, IEEE1394 și altele);
  • Filtrarea driverelor(Driver de filtru) - drivere care sunt folosite pentru a monitoriza/modifica logica altui driver lucrând cu datele care trec prin acesta.
    • Drivere de filtrare superioare(Drifere cu filtru superior) - un subtip de drivere care sunt filtrate, care sunt situate deasupra driverului funcțional pe stivă. Toată intrarea trece prin driverele de filtrare superioare, ceea ce înseamnă că pot modifica și/sau filtra informațiile care merg către driverul funcțional și apoi, eventual, către dispozitiv. Aplicațiile pot fi un driver de filtrare care acceptă/filtrează traficul, criptează/reprocesează înregistrările de citire/scriere. Astfel de șoferi sunt victorioși în firewall-uri.
    • Drivere pentru filtrul de jos(Lower-filter drivers) - un subtip de drivere care sunt filtrate care sunt mai mici decât driverul funcțional din stivă. Prin astfel de drivere mai mici, care sunt filtrate, de regulă, trec mai puține solicitări în comparație cu alte drivere de filtrare, deoarece mai multe solicitări sunt completate și completate chiar de driverul funcțional.
  • Drivere funcționale(Function driver) - drivere care funcționează independent și determină toate aspectele asociate dispozitivului.
  • Driver PnP – un driver care acceptă tehnologia Plug-and-Play;
  • Minișofer (miniport, mini-clasă)(Driver Miniport, Minidriver, Driver Miniclass) - driverele care furnizează date, sunt asociate cu dispozitivul final și driverele vikorist la clasa pentru dispozitiv. Aceasta este una dintre părțile unei perechi de drivere, în care această categorie este driverul dispozitivelor finale, care configurează sarcinile specifice ale dispozitivului.

În spatele nivelului de compoziție, șoferii includ:

  • Simultan - procesarea de intrare/ieșire este implementată într-un singur modul, care este conectat (driver).
  • Bagatorivne – procesarea de intrare/ieșire este distribuită între driverele computerului.

Driverele PnP pentru Windows sunt împărțite în:

  • Driver funcțional
  • Șofer de autobuz (sofer de autobuz)
  • Driver-filter (filtru-driver)

Pentru modul driver Windows, următoarele sunt clasificate:

  • Driver pentru modul koristuvach.
  • Driver pentru modul Kernel.

Modele de drivere

În ultimii ani, furnizorii au încercat să standardizeze și să simplifice dezvoltarea driverelor. De aceea au apărut modelele.

Model WDM

De mult timp au existat două direcții principale pentru dezvoltarea conceptului de driver Windows:

  1. modelul VxD (Virtual Device Driver) a fost blocat în Windows 95/98;
  2. În Windows NT3.51, modelul de driver NT (driver în stil NT, NT Driver) a fost dezvoltat în paralel.

Cu toate acestea, începând cu versiunea de Windows 98/NT4.0, dezvoltatorii au încercat să unifice (universalizeze) dezvoltarea driverelor, drept urmare noul model WDM a ajuns să înlocuiască modelele anterioare.

WDM (Windows Driver Model) este un singur mijloc de dezvoltare (cadru) pentru driverele de dispozitiv ale sistemului de operare Windows. Au fost aduse modificări codului de standardizare pentru șoferi.

Modelul WDM a fost un pas în reproiectarea stivei clasice de drivere Windows pentru a sprijini tehnologiile revoluționare Plug-and-Play și ACPI care erau disponibile la acea vreme. Modelul vă permite să instalați/importați drivere „din mers”, fără a fi nevoie să reinstalați sistemul de operare, să extindeți driverele într-un mod care extinde filtrele (filtrele) la driverele de sistem standard și sporește economiile de energie și configurațiile Atenție la dispozitive și Mai mult.
În cadrul modelului WDM, orice dispozitiv hardware este suportat de cel puțin două drivere:

  • Driverul funcțional este responsabil pentru toate caracteristicile funcționale ale dispozitivului care este întreținut: operațiunile de intrare-ieșire, procesarea întreruperii și controlul dispozitivului;
  • Șofer de magistrală – responsabil pentru întreținerea conexiunii dintre dispozitiv și computer, care acceptă de fapt o magistrală validă (de exemplu, PCI, USB etc.).

Model WDF

Pe parcursul dezvoltării actuale, modelul WDM a cunoscut schimbări constante și este în creștere rapidă. Începând cu Windows Vista, s-a făcut un test final pentru dezvoltarea conceptului de driver Windows, de fapt, la vremea respectivă era deja în curs de dezvoltare modelul WDM, din care rezultă un nou model (peste WDM) numit WDF.

WDF (Windows Driver Foundation) este un cadru de dezvoltare (set de instrumente) care facilitează dezvoltarea driverelor de dispozitiv pentru sistemele de operare Windows (Windows 2000 și versiuni ulterioare).

Acest lucru se datorează faptului evident că dezvoltatorii nu au atins un nivel suficient de abstractizare a modelului WDM și integrării foarte insuficiente a subsistemului de intrare-ieșire cu tehnologia Plug-and-Play și controale de viață. Acest lucru a condus la faptul că s-a pus mare accent pe proiectantul driverului pentru a sincroniza aceste surse de alimentare de intrare-ieșire cu surse de alimentare Plug-and-Play și de economisire a energiei. Evident, modelul șoferului trebuie simplificat în continuare. WDF a înlocuit WDM și este considerat modelul actual.
WDF implementează următoarele capabilități:

  1. „Eliminarea” anumitor clase de drivere necritice în modul computer, ceea ce a dus la o reducere a numărului de defecțiuni ale nucleului.
  2. Mai multă procesare a interacțiunii subsistemului de intrare-ieșire cu Plug-and-Play și unități de alimentare este acum implementată folosind mecanismele modelului WDF.
  3. Nadannya nou interfețe interne Modele WDF, care permit abstracția de la interfețele complexe ale sistemului; Modelul WDM/legacy poate implementa cu ușurință logica anumitor părți ale interacțiunii cu driverul, fără a fi nevoie să parcurgeți toate elementele arhitecturii nucleului pliabil; WDF vă permite să automatizați multe tipuri de interacțiuni; O mulțime de cod atunci când se dezvoltă un driver WDM poate fi acum înlocuit cu apeluri de procedură WDF.
  4. Posibilitatea creării unui driver „canonic”. Prezența șabloanelor, care oferă unui dezvoltator terță parte capacitatea de a reevalua criteriile unice pentru șofer, accelerează astfel timpul de dezvoltare.

Modelul WDF este împărțit în două direcții:

  • UMDF (Kernel-Mode Driver Framework) este partea de mijloc a dezvoltării driverului pentru modul kernel.
  • KMDF (User-Mode Driver Framework) este inima dezvoltării driverului pentru modul Koristuvach.

Împărțirea dintre modurile de bază și nucleele modelului WDF este mai precisă, deoarece semnificația principală a acestei distincții constă în clasificarea dezvoltării driverelor pentru aceste și alte clase de dispozitive.

 

 

Tse tsikavo: