Fața umană a conducătorului auto, ferestre pro-l

Una dintre părți integrante ale sistemului de operare Windows sunt driverele. În general, conducătorul auto - un software special, care permite dispozitivului extern, precum și unele funcționalități de bază a sistemului de operare.

Trimite o cerere pentru un material

Una dintre părți integrante ale sistemului de operare Windows sunt driverele. În general, conducătorul auto - un software special, care permite dispozitivului extern, precum și unele funcționalități de bază a sistemului de operare.

Conducătorii auto nu sunt folosite doar ca un mecanism pentru a controla dispozitivele hardware, dar, de asemenea, ca parte a software-ului de aplicație. În special, astfel de soluții includ diverse unități virtuale, o tehnologie de protecție la copiere, mecanisme de criptare, software-ul antivirus, și multe altele. În articolul meu, aș dori să clarific întrebări despre modul în care driverele sunt încărcate în sistem, modul în care acestea funcționează și ce să facă în cazul în care începe brusc să se destrame. „Referințe“ pentru mai multe informații, a se vedea bara laterală.

Mai întâi să ne ia în considerare punctele generale despre relația dintre sistemul de operare și driverele, în ceea ce privește administrarea ulterioară a acestora.

În primul rând, este de remarcat faptul că, în ciuda faptului că șoferul - un program regulat în sistemul de operare Windows este executat într-un mod special, și are cerințe unice. Acest lucru se aplică în principal în contextul conducătorilor auto - majoritatea dintre ei lucrează în inel de la zero de protecție a procesorului.

La nivelul solului există un nucleu al sistemului, structura sa de date de control. În plus, aici sunt driverele. Acesta este motivul pentru scris, conducătorii auto trebuie să fie atent și foarte atent la codul. Incorect conducător auto scris poate deteriora datele de sistem ale kernel-ului sau a altor drivere, ceea ce va duce la apariția de „ecran albastru» BSOD. Acest mod în termeni de Windows se numește modul de kernel (kernel-mode).

Următorul element important al interacțiunii dintre sistem și drivere este ordinea în care sunt încărcate. Din acest punct de vedere poate fi împărțit în drivere încărcate în timpul sistemului de operare, așa-numita etapă de conducător auto BOOT-START, și driverele de kernel incarcabile după faza de start-SYSTEM START start-up.

BOOT-START. Aceste drivere sunt necesare pentru procesul a sistemului de operare pentru a încărca și inițializarea. Aceste drivere, de exemplu, includ drivere de sistem de fișiere, și șoferii de autobuz. Aceste drivere sunt încărcate în memorie de către încărcătorul înainte de a începe kernel-ul sistemului de operare. În primul rând, încărcătorul citește registrul SYSTEM sucursală. În această ramură căutările pentru conducătorii auto care au o valoare START, egală cu zero, ceea ce înseamnă SERVICE_BOOT_START. Aceste drivere sunt încărcate, și le inițializează la managerul de I / O, după o lansare de nucleu.

SISTEM-START. Aceste drivere sunt încărcate și inițializate de către PnP-manager (a se vedea. Caseta «PnP-manager"), după etapa de conducător auto va fi inițializat de pornire de pornire și de a construi un copac dispozitiv. În plus, după inițializarea driver de dispozitiv PnP-sarcini manager și inițializează drivere etichetate SYSTEM-START, dar nu a fost încă descărcat. Aceste drivere nu se referă la orice dispozitiv sau pentru a crea neperechislyaemye elemente în arborele de dispozitive.

Potrivit MSDN, la un nivel de bază, conducătorii auto sunt împărțite în două nivele:

drivere - spațiul utilizator sunt executate în modul de utilizare și oferă o interfață între aplicații și drivere kernel-mode. Aceasta include drivere de imprimantă și drivere pentru dispozitive virtuale;

Din punctul de vedere al documentației driverelor de kernel MSDN sunt împărțite în următoarele straturi, descriu driverele lor, de exemplu, sistemele de fișiere.

1. drivere de nivel înalt. Acestea includ drivere de sistem de fișiere care acceptă sistemele de fișiere, cum ar fi FAT, NTFS, CDFS. drivere de nivel înalt sunt întotdeauna dependente de driverele de nivel inferior.

2. Drivere middleware. Acestea includ driverele pentru a sprijini virtuale discuri și oglindirea. drivere middleware dependente de drivere de nivel scăzut. In plus, ele sunt împărțite în următoarele subclase:

drivere funcționale - controlează un anumit tip de dispozitiv. pneuri Drivere oferă un drivere de dispozitiv funcțional prin PnP Managerul;

drivere de filtrare completează motorul de funcții. Putem spune, extinderea funcționalitatea acestuia. Poate fi atât înainte, cât și după șoferul său funcțional în coadă de procesare a cererii de la acest driver. Ele pot fi filtre direct funcționale ale conducătorului auto și filtrele șofer de clasă.

3. Driverele de nivel inferior. Controlați de intrare / ieșire de autobuz, care este conectat la dispozitivul periferic. Și aici, există diferite tipuri de drivere.

Anvelope Drivere - autobuze de control logice sau fizice, cum ar fi PCI, USB. Șoferii de autobuz sunt responsabile pentru recunoașterea dispozitivelor conectate direct la aceste anvelope, PNP notificare Managerul despre aceste dispozitive și parametrii de control al puterii de autobuz.

Conducătorii auto care nu acceptă WDM.

Toate această structură este prezentată în figură.

De bază mecanism de control de proces și să descărcați drivere stabilirea unui registru. Registrul stochează toate informațiile de sistem, care descrie driverele, procesul de încărcare a secvenței de pornire și configurația. Stabilirea unor reguli pentru conducătorii auto și de încărcare sunt descrise în următoarea cheie de registry lor:

HKLMSYSTEMCURRENTCONTROLSETENUM. Această cheie de registru conține o listă de echipamente care a fost vreodată găsit sau instalat pe sistem. La primul nivel al acestei secțiuni descrie anvelopa enumerate mai sus. În secțiunea fiecărui pneu - detectat pe dispozitiv. În interiorul sub-dispozitive pot fi găsite o varietate de drivere de dispozitiv setări, cum ar fi DeviceDesc, FriendlyName. Parametrul conducător auto este o trimitere la punctul HKLMSYSTEMCURRENTCONTROLSETSERVICES în cazul în care este descrisă fișierul driver.

Aici sunt parametri opționali, UpperFilters și LowerFilters, care descriu driverul de filtrare, deținut de către conducătorul auto.

HKLMSYSTEMCURRENTCONTROLSETCONTROLCLASS. Această secțiune descrie registrul tuturor claselor de dispozitive prezente în sistem. Parametrii de clasă sunt după cum urmează:

(Implicit) - descrie numele prietenos al clasei;

Clasa - descrie numele clasei;

EnumPropPages32 - descrie biblioteca, care oferă o interfață grafică pentru configurarea driverului. Nu poate conține numele bibliotecii și numele punctului de intrare;

Install32 - bibliotecă care oferă instalarea driverelor în această clasă;

Icon - identificator de resurse în stabilirea de bibliotecă, arătând spre o pictogramă care este folosit peste tot, în cazul în care furnizează informații despre clasa.

Există mai multe parametri opționali, cel mai important dintre care, în contextul acestui articol sunt:

UpperFilters și LowerFilters. Aici vom descrie numele conducătorului auto-filtru care sunt atribuite acestei clase. Managerul PnP încarcă driverele pentru fiecare dispozitiv aparținând acestei clase.

HKLMSYSTEMCURRENTCONTROLSETSERVICES. Această secțiune descrie fișierul driver în sine. Are:

CaleImagine - calea către imaginea executabil a conducătorului auto;

Tip - tipul de driver 1 - modul de kernel 2 - modul de utilizare;

Start - tipul de sarcină: 0 - cizme de start, 1 - sistem de pornire, 2 - Auto, 3 - manuală, 4 - dezactivat. Tip de descărcare legat nu numai conducătorilor auto, ci și la serviciile de sistem. Setări 0 și 1 se referă la drivere;

ErrorControl - o valoare de 1 indică faptul că, în cazul unei erori la încărcarea sistemului ar trebui să înregistreze jurnalul de erori și pentru a da un mesaj cu privire la aceasta.

Rețineți că este descrisă aici nu numai șoferii, dar și serviciile care rulează pe sistem.

Procesul de descărcarea driverelor

În general, acest proces este un multi-nivel, atinge multe dintre componentele sistemului, în special PnP-manager. Aici vom lua în considerare doar pentru a descărca drivere.

Normal. Modul normal pe normal și că se încarcă toate driverele care sunt listate în registru. Iată cum:

șofer de autobuz dispozitiv de a descoperi transmite identificatorul unic PnP-manager;

PnP-manager, primind ID-ul, găsește secțiunea HKLMSYSTEMCURRENTCONTROLSETENUM dispozitiv corespunzătoare și determină ce fișiere trebuie să fie descărcate folosind link-urile de pe HKLMSYSTEMCURRENTCONTROLSETSERVICES HKLMSYSTEMCURRENTCONTROLSETCONTROLCLAS și chei;

conducător auto încărcate specificat în parametrul LowerFilter de drivere de dispozitiv;

încarcă driverul specificat în clasa dispozitivului parametrul LowerFilter la care conducătorul auto

Încărcarea driverul dispozitivului - funcția conducătorului auto;

încarcă driverul specificat în parametrul UpperFilter de drivere de dispozitiv;

încarcă driverul specificat în parametrul clasa UpperFilter de dispozitive, care includ conducătorul auto.

Această secvență de boot afectează secvența de prelucrare a cererilor pentru mecanic. Cererile sunt procesate în ordine inversă de încărcare, și anume de la UpperFilter-drivere.

Safe Mode. În modul de siguranță, încărcați algoritmul este același. Excepția este secțiunea HKLMSYSTEMCURRENTCONTROLSET CONTROLSAFEBOOT. Această secțiune are două secțiuni: minime și de rețea. Numele lor spune totul. Atunci când încărcați în modul normal de protejat încărcate numai conducătorii auto care sunt în lista minimă subcheii. Când alegeți opțiunea de boot cu suport pentru drivere de rețea, utilizând lista de rețea subsecțiune.

Rămâne să adaug că diferitele programe rău intenționate pot înregistra șoferii lor în această secțiune, și, prin urmare, repornirea computerul în Safe Mode, nu poți scăpa de ele.

Andrew Vernigora ([email protected]) - administrator de DBA și de sistem la unul dintre compania "Ukrtransnafta". MCP are un certificat

Walter. O. Programarea Microsoft Windows Driver Model. 2nd ed.

PnP-manager - o componentă a sistemului de operare, care este responsabil pentru detectarea schimbărilor în sistemul de hardware și de a răspunde la acestea. Pur și simplu pune, în cazul în care conectați un hardware nou pentru detectarea, configurarea și încărcarea driverului răspunde exact. Principalele sarcini efectuate de către PnP-manager, după cum urmează:

detectează dispozitivele instalate, listează dispozitivele instalate pe sistem la inițializare și în timpul funcționării;

între dispozitive alocă resurse de sistem, cum ar fi întreruperi, memorie, autobuz, și dispozitive I / O;

încarcă driverele de dispozitiv;

prevede notificare atunci când noi dispozitive de aplicare / retragere.

Partajați imagini cu prietenii și colegii

articole similare