Bsod kateri gonilniki so potrebni za računalnik. Uporaba preverjanja gonilnikov za prepoznavanje problematičnega gonilnika. Branje datoteke izpisa

Razlogov za BSOD je veliko, vendar bomo v tem članku obravnavali težavo, ki nastane zaradi konflikta nameščenih gonilnikov. Lahko bi bilo nameščen gonilnik ali poškodovana. Odpravljanje težave z BSOD je lahko precej preprosto, če gre le za težavo z gonilnikom in veste, kateri je. Gonilnik lahko znova namestite ali posodobite, se vrnete na stara različica ali pa se znebite aplikacije, ki je gonilnik namestila v vaš računalnik, tako da jo fizično odstranite. Težava je v tem, da ni vedno mogoče ugotoviti, kateri gonilnik je "krivec", tudi po preučitvi vseh podatkov iz moder zaslon. Vendar obstaja izhod. Če nimate veliko znanja in izkušenj, vendar je treba preveriti gonilnike, lahko za takšne primere uporabite posebno orodje za preverjanje Verifier.exe, vgrajeno v OS. Obstoječi opis v Microsoftovi bazi znanja je predstavljen z zapletenimi tehničnimi izrazi, ki jih niti izkušeni uporabniki ne poznajo vedno. Zato ta članek predstavlja kratek seznam manipulacij, potrebnih za dokončanje naloge. Izvajanje preverjanja gonilnikov Ko odprete meni »Start«, v iskalno polje vnesite poizvedbo »Zaženi« in kliknite rezultat, ki se prikaže na vrhu. V oknu, ki se prikaže, morate vnesti ukaz " preveritelj” (brez narekovajev) in potrdite s klikom na “V redu”.
Prikaže se pogovorno okno Upravitelj preverjanja datotek. V prvem pogovornem oknu morate izbrati postavko »Ustvari nestandardne parametre (za programsko kodo)«. Kliknite »Naprej«.
Naslednji korak je izbira posameznih parametrov za testiranje gonilnika. Za to bomo izvedli naslednje manipulacije: »Izberite posamezne parametre iz celoten seznam« - »Naprej«.
Po zaključku korakov bi morali prejeti pogovorno okno s seznamom parametrov testiranja. Označite vsa polja razen elementa »Simuliraj pomanjkanje virov«. Kliknite Naprej.
Zadnji korak v tem delu je dajanje ukaza dispečerju za avtomatska izbira nepodpisani gonilniki. Izberite "Samodejno izberi nepodpisane gonilnike." Kliknite Naprej.
Zgodi se, da upravitelj ni zaznal nepodpisanih gonilnikov. Nato uporabite funkcijo selektivnega preverjanja gonilnika, o kateri bomo razpravljali kasneje. Delo z nepodpisanimi gonilnikiČe so zaznani nepodpisani gonilniki, jih upravitelj prikaže v obliki seznama.
To so lahko gonilniki naprav ali gonilniki aplikacij. Ko so zaznani nepodpisani gonilniki, ni treba zapreti upravitelja in klikniti gumba »Dokončaj«. Najprej preverimo, ali so gonilniki posodobljeni. Poiščite posodobljene gonilnikeČe želite preveriti, morate izvesti naslednje korake: 1. Gonilnik aplikacije je na seznamu. V tem primeru morate obiskati spletno mesto proizvajalca aplikacije in preveriti, ali so gonilniki posodobljeni. V primeru posodobljena različica gonilnik manjka, poskusite odstraniti aplikacijo. Ne bojte se, pozneje ga lahko vedno znova namestite. Toda to bo odličen pregled: če se kritične napake ne pojavljajo več, je bil razlog v to aplikacijo. 2. Seznam vsebuje gonilnik naprave. V tem primeru (če imate Windows Vista), zaženite center za posodobitve in omogočite iskanje nove funkcije gonilnika. Če je najden nov gonilnik, zaženite njegovo namestitev. 3. Če center za posodobitve ni našel novega gonilnika, poglejte na spletno stran proizvajalca; novi gonilnik bo verjetno tam. Po posodobitvi gonilnika ali aplikacije zaprite upravitelja skeniranja (gumb Prekliči), znova zaženite in počakajte, da se OS naloži. če kritične napake ustavljeno - posodobitev gonilnikov ali aplikacij jih je odpravila. Odstranjevanje gonilnikovČe novih gonilnikov ni mogoče najti, jih lahko poskusite odstraniti. POZOR! Če odstranite gonilnik, bo naprava prenehala delovati. Po ponovnem zagonu bo OS poskušal namestiti gonilnik iz pomnilnika, vendar ni dejstvo, da bo standardni gonilnik to storil. Če niste prepričani o potrebi po odstranitvi katerega koli gonilnika, ga ne smete odstraniti. Zaženite upravitelja naprav tako, da naredite naslednje: Start – Zaženi – devmgmt.msc– Vstopi. Ob ugotovitvi zahtevano napravo, z desno tipko miške kliknite nanj in kliknite Lastnosti – Gonilnik – Odstrani. Preverjanje nepodpisanih gonilnikov POZOR! Po preverjanju nepodpisanih gonilnikov se lahko zgodi, da se sistem ne bo zagnal. Spodaj je opis ukrepov, sprejetih v tej situaciji. Če niste prepričani, da želite odstraniti gonilnik in kljub temu nadaljevati s skeniranjem, kliknite gumb Dokončaj v upravitelju skeniranja. Ko boste pozvani, da izberete fizični disk, izberite tistega, na katerem je nameščen operacijski sistem, in nato znova kliknite Dokončaj. Videli boste sporočilo z besedilom: »Morate znova zagnati računalnik, da bodo spremembe začele veljati.« Tiho zaprite vse aplikacije in znova zaženite. Če se sistem ne zažene in se prikaže moder zaslon z opisom napake, pomeni gonilnik težavno našel. Ko znova zaženete računalnik, preden naložite OS, kliknite F8 verifier.exe/resetverifier.exe
Preverjanje voznika po meri Znova zaženite Driver Verifier Manager in izvedite prejšnje korake do točke, prikazane spodaj.
Izberite "Izberi ime gonilnika s seznama". Naslednji korak bo okno za izbiro gonilnikov za preverjanje. Ne bi smeli izbrati vseh gonilnikov hkrati, ker bo OS rezerviral precej veliko virov za skeniranje in bo porabil veliko časa za to. Postopek preverjanja je bolje ponoviti večkrat, vendar z majhnim številom gonilnikov. Tako boste prihranili čas in sredstva. Najprej preverimo gonilnike, ki so bili pred kratkim posodobljeni ali preprosto problematične gonilnike (gonilnik protivirusni program, požarni zid, virtualni disk ali avtomobili). Naj bo naslednji korak preverjanje gonilnikov, ki jih ne proizvaja Microsoft. Preverite preostalih voznikov 10-15 naenkrat.
Izberite potrebne gonilnike in kliknite gumb "Končano". Ko boste pozvani, da izberete fizični disk, izberite tistega, na katerem je nameščen operacijski sistem, in nato znova kliknite Dokončaj. Prikaže se sporočilo, ki vas poziva, da znova zaženete. Znova zaženite računalnik. Če se po ponovnem zagonu prikaže modri zaslon s sporočilom o napaki, to pomeni, da je bil gonilnik, ki povzroča težavo, najden. Ko znova zaženete računalnik, preden naložite OS, kliknite F8 in izberite »Zaženi varni način" Ko se prijavite, kliknite gumb Start in vnesite Run/Search verifier.exe/reset. Če ni prišlo do težav in se je sistem zagnal v standardnem načinu, potem nepodpisani gonilniki ne povzročajo težav in morate preveriti druge gonilnike. Znova zaženite Driver Verifier Manager ( verifier.exe) in izberite »Prikaži informacije o trenutno preverjenih gonilnikih«.
Ponovite skeniranje za vse preostale gonilnike. Zaključevanje preverjanja gonilnikaČe preverjanje vseh gonilnikov ne razkrije vzrokov kritičnih napak, najverjetneje težava ni v gonilnikih. Težava morda ni v programski opremi, ampak v strojni opremi vašega računalnika. Najverjetneje so to težave s trdim diskom ali RAM-om. Lahko se zgodi tudi, da napajalnik nima dovolj moči, da bi zagotovil delovanje vseh naprav ali kakšna druga težava v strojni opremi, ki je ni mogoče ugotoviti s preverjanjem gonilnikov. Diagnosticirajte RAM in HDD.

Napačen gonilnik lahko povzroči veliko težav v vašem računalniku. Glavni znak, da ima vaš računalnik napačen gonilnik, je modri zaslon smrti, ki ga pogosto povzroči onemogočanje gonilnika.

V tem članku vam bomo povedali, kako lahko najdete napačen gonilnik in ga nato posodobite ali popolnoma odstranite.

Včasih Windows obvesti uporabnika, da eden od gonilnikov ni uspel. Zgodi pa se, da sistem ne more zaznati, v čem je težava, zato ne prikaže sporočil o napakah, zato deluje počasneje oziroma ne po potrebi. V tem primeru Upravitelj preverjanja gonilnikov(Driver Verifier) ​​​​ustvarja dodatno obremenitev sistemskih gonilnikov in s tem poskuša povzročiti zrušitev. Če eden od gonilnikov odpove, potem Upravitelj preverjanja gonilnikov bo poročal o težavi prek modrega zaslona.

Opozorilo

Pred uporabo Upravitelj preverjanja gonilnikov, upoštevajte, da vam lahko orodje prepreči uporabo vašega svoj računalnik. Zaradi Upravitelj preverjanja gonilnikov sproži modri zaslon smrti, ko zazna okvarjen gonilnik, kar lahko povzroči velike težave pri zagonu sistema Windows.

Če ne morete vstopiti v sistem Windows in onemogočiti testiranje gonilnikov, bo računalnik deloval v zanki "zagon -> nalaganje -> zrušitev", iz katere je zelo težko priti. Funkcija samodejnega popravila je ena redkih možnosti za dostop do sistema Windows, vendar se je bolje izogniti tej situaciji.

Preden uporabite Driver Verifier, se prepričajte, da imate vsaj enega od naslednjih zasilnih izhodov:

  • Lahko greste v varni način. Vstopite v varni način pred začetkom Zagon sistema Windows običajno z večkratnim pritiskom tipke F8 med zagonom računalnika. Vendar se novi računalniki zaženejo tako hitro, da preprosto ne boste imeli časa pritisniti F8 ob pravem času.
  • Ali ste pred uporabo ustvarili obnovitveno točko sistema? Upravitelj preverjanja gonilnikov. Priporočljivo je tudi namestitev Windows disk tako da lahko obnovite svoj računalnik na tovarniške nastavitve.

Kako zagnati Driver Verifier Manager

Preden začnete, navodila za uporabo Upravitelj preverjanja gonilnikov, ne pozabite prebrati zgornjega razdelka »Opozorilo«. Piše, kako se izogniti neskončno nalaganje Windows.

Ko ste stoodstotno prepričani, da imate načrt za izhod v sili, kliknite " Tipka Windows + R« in vstopite cmd v pogovornem oknu Izvedi«, nato kliknite » v redu».

V ukazno okno vnesite:

preveritelj

V pojavnem oknu izberite " Ustvarite nestandardne parametre (za programsko kodo)«, nato kliknite » Nadalje».

Videli boste seznam vseh testov, ki jih lahko izvedete za preverjanje gonilnikov. Izberite vse teste s seznama, razen"Simuliraj naključno pomanjkanje virov" in "Dodatno preverjanje skladnosti DDI", nato kliknite " Nadalje».

Na naslednjem zaslonu izberite " Izberiteimena voznikov s seznama"in pritisnite" Nadalje».

Tukaj lahko izberete gonilnike, ki jih želite preizkusiti. Če ne veste, kateri gonilnik je napačen, izberite vse razen Microsofta, ker običajno delujejo brez napak.

Ko pritisnete " pripravljena«, vas bo Windows pozval, da znova zaženete računalnik. Ko se računalnik vklopi, ga nadaljujte z običajno uporabo. Če se prikaže modri zaslon, bodite pozorni na sporočilo o napaki in znova zaženite računalnik.

Ko ugotovite okvarjeni gonilnik, ga lahko onemogočite Upravitelj preverjanja gonilnikov enega od dveh načinov. Lahko znova odprete ukazni poziv, vnesete ukaz preveritelj in izberite " Odstranite obstoječe nastavitve».

Odprete lahko tudi ukazni poziv in vnesete:

Verifier /bootmode resetonbootfail

Ko onemogočite Driver Verifier Manager, znova zaženite računalnik. Če se računalnik ne vklopi, uporabite enega od zasilnih izhodov, o katerih smo govorili v razdelku »Opozorilo«.

Zaključek

Če menite, da je eden od gonilnikov pokvarjen, vendar ne morete ugotoviti, kateri, potem Upravitelj preverjanja gonilnikov bo v veliko pomoč.

Vendar morate biti pripravljeni na možnost, da se računalnik po testiranju gonilnikov ne bo mogel vklopiti, zato razmislite o rezervnem izhodu z izredne razmere, pojdite na primer v varni način ali zaženite obnovitveno točko sistema Windows.

Ste že kdaj imeli težave z gonilniki v računalniku? Kako vam je uspelo najti pokvarjen gonilnik? Povejte nam v spodnjih komentarjih!

Pripomoček Driver Verifier (verifier.exe) je namenjen analizi problematičnih gonilnikov, ko analiza izpisov pomnilnika po BSOD ne omogoča iskanja problematičnega gonilnika. Driver Verifier je "reševalec" v najbolj problematičnih situacijah.

S preverjanjem gonilnikov lahko:

    stresni test voznika (simulirani so pogoji pomanjkanja virov);

    nadzor prekoračitve medpomnilnika;

    nadzor nad napakami, ki nastanejo zaradi nepravilnega delovanja na danem IRQL;

    analiza V/I napak;

    odkrivanje situacij zastoja itd.

Pripomoček Driver Verifier je zelo uporaben, ko:

    administrator (uporabnik) sumi, da prav ta gonilnik povzroča sesutje sistema in želi dodatno preveriti, ali je temu res tako;

    razvijalci gonilnikov želijo preizkusiti svoj gonilnik;

    Pri analizi odlagališča po BSOD je nemogoče najti problematični gonilnik.

Eden najtežjih primerov analiziranja izpisov pomnilnika je, ko gonilnik pomotoma prepiše podatke pred ali po koncu medpomnilnika, ki ga je dodelil. V takšnih primerih pride do napak v jedru OS (na primer analiza izpisa po BSOD pokaže, da je do napake prišlo v ntoskrnl.exe).

Pa poglejmo podoben primer na konkretnem primeru. S pomočjo pripomočka NotMyfault povzročimo BSOD - »Prekoračitev medpomnilnika«.

Rezultat analize odlagališča z uporabo windbg je priložen spodaj.

Glede na analizo odlagališča dobimo:

1. Arg1: 00000007, poskus osvoboditve bazena, ki je bil že sproščen (izveden je bil poskus sprostitve že sproščenega bazena)

2. IME_SLIKE: ntkrpamp.exe (jedro samega sistema ima nekaj opraviti s tem)

Pri takih napakah na pomoč priskoči overitelj.

Zagon preverjanja.

Izberite »Ustvari nestandardne parametre«. Nato izberite »Izberi parametre s seznama«.

Izberite vse razen »Simuliraj pomanjkanje virov«.

Nato izberite »Izberi nenaložene gonilnike za ta seznam« in določite pot do gonilnika myfault.sys, ki se nahaja v istem imeniku kot program NotMyfault.exe.

Nato označite gonilnik in kliknite »Dokončaj«. Po tem moramo znova zagnati računalnik.

Izvajamo vsa ista dejanja kot na začetku. Zaženite NotMyfault.exe, izberite »Buffer overflow« in kliknite »Crash«. Kot ste opazili, se zrušitev morda ne bo zgodila takoj, saj vnaprej ni znano, kdo in kdaj bo poskušal delati s tem pomnilnikom. Kot lahko vidite na spodnji sliki, lahko sistem zahvaljujoč verifikatorju prepozna problematični gonilnik.

Podal bom analizo z!analyze –v v windbg.exe izpisa pomnilnika po BSOD.

Program za preverjanje poskrbi, da gonilnik, ki se testira, namesto običajnega pomnilnika, ki je na voljo v jedru, uporablja posebno skupino, ki je zasnovana za odkrivanje takšne napake. Zahvaljujoč temu lahko najdete gonilnik, ki povzroča BSOD.

Če pogledamo rezultate analize, vidimo naslednje.

1. DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION (d6) – to je ena od napak, ki jih generira preveritelj

2. IMAGE_NAME: myfault.sys – gonilnik, ki je povzročil težavo.

Torej, če analiza izpisa pomnilnika po BSOD-u ne omogoča iskanja "krivega gonilnika", uporabite program verifier.exe (namestite vsa preverjanja, razen za pomanjkanje pomnilnika).

Najenostavnejši način za uporabo preverjanja gonilnikov (verifier.exe) je, da ga zaženete z naslednjimi parametri:

ime datoteke gonilnika verifier /standard /driver

Pripomoček Voznik Verifikator vključeno v vse Windows različice, začenši z operacijskim sistemom Windows XP, in omogoča preverjanje gonilnikov, prepoznavanje težavnih gonilnikov, ki povzročajo modri zaslon smrti (BSOD- modri zaslon smrti) in posnetek podrobne informacije o problematičnem gonilniku v izpisu pomnilnika za nadaljnjo analizo. Pripomoček podvrže preverjene gonilnike različnim " stresni testi", ki simulira različne ekstremne pogoje: pomanjkanje pomnilnika, nadzor V/I, IRQL, zastoje, preverjanja DMA, IRP itd., tj. Situacije, ki se na produktivnih sistemih redko zgodijo, so simulirane in spremljano obnašanje voznika v njih. Namen pripomočka je prepoznati situacije, v katerih lahko voznik povzroči zrušitev sistema z BSOD.

Pokliče se izvršljiva datoteka pripomočka Driver Verifier Verifikator.exe in se nahaja v imeniku %windir%\system32. Obstajata dve možnosti za uporabo pripomočka: iz ukazne vrstice ali z uporabo GUI.

Če želite omogočiti način preverjanja gonilnika v sistemu Windows 8, zaženite pripomoček Driver Verifier tako, da vnesete

Verifikator

Na seznamu opravil izberite Ustvarite nastavitve po meri (za razvijalce kode) in pritisnite Naslednji.

Prepričajte se, da so izbrane možnosti Standardne nastavitve, Vsili čakajoče V/I zahteve in Beleženje IRP. Kliknite Naslednji.

Naprej izberite.

Razvrstite vsebino tabele s klikom na glavo stolpca "Ponudnik" in s seznama gonilnikov izberite tiste, ki jih želite preizkusiti. V našem primeru bomo izvedli preverjanje vseh gonilnikov, ki jih ni razvil MicrosoftCorporation. Izbrali smo gonilnika: e1g6032e.sys (Intel) in lsi_sas.sys (LSI).

Opomba. Razpoložljivost voznika digitalni podpis Microsoft navaja, da je bil gonilnik na določen način testiran glede stabilnosti in njegova koda od takrat ni bila spremenjena. Zato se ne priporoča in ne uporablja.

Vse kar morate storiti je, da kliknete Končaj in pojavilo se bo okno z informacijami, ki navaja, da morate znova zagnati sistem, da bodo spremembe začele veljati.

nasvet. Način preverjanja voznika lahko omogočite tudi iz ukazna vrstica. Na primer za zagon programa Driver Verifier standardne nastavitve za gonilnik myPCDriver.sys bo ukaz videti takole: verifier /standard /driver myPCDriver.sys

Po ponovnem zagonu se sistem zažene v načinu preverjanja gonilnika. Driver Verifier deluje v ozadje, ki izvaja različne vrste testiranja izbranih gonilnikov za odkrivanje napak. Uporabite računalnik kot običajno in počakajte, da se prikaže BSOD. Če veste, katera dejanja so prej povzročila zrušitev sistema, jih ponovite. Če se pojavi BSOD, morate kopirati datoteko izpisa pomnilnika (privzeto je shranjena v imenik C:\Windows\Minidump\*.dmp) in jo analizirati z Windbg ali enakovrednim programom.

Pomembno! Po aktiviranju načina za razhroščevanje gonilnikov s preverjanjem gonilnikov bo ta način deloval, dokler ni prisilno onemogočen.

Če se težava ne ponovi v 1-2 dneh, potem lahko z določeno stopnjo gotovosti sklepamo, da gonilniki, ki se testirajo, niso vzrok za zrušitev sistema in da je način skeniranja zanje lahko onemogočen.

nasvet. Uporaba validatorja Windows gonilniki bistveno upočasni Windows, zato ni priporočljivo nenehno delati v tem načinu.

Driver Verifier lahko onemogočite v ukazni vrstici:

Preverjevalec/ponastavitev

Ali iz grafičnega vmesnika z izbiro Izbrišite obstoječe nastavitve.

Če se ne morete prijaviti v sistem v običajnem načinu, lahko onemogočite način odpravljanja napak v varnem načinu.

Če se sistem ne zažene v varnem načinu, poskusite izbrisati naslednje registrske ključe z zagonom z zagonske diskete:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDrivers
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDriverLevel

Trenutno stanje pripomočka Driver Verifier lahko preverite takole.

Opozarjamo vas, da so vsi poskusi z gonilniki nevarni in lahko poškodujejo sistem. Bolje je, da vnaprej naredite varnostno kopijo sistema in nato ne prekrižate pesti z odstranjevanjem drugega sumljivega gonilnika iz sistema Windows.

In takoj, ko ne grajajo Windows od Microsoft, ki je ubogo stvar hkrati poimenovala počasna, glitchy in celo nestabilna. Toda nikomur se ne mudi, da bi se mu odrekel, in na splošno je malo verjetno, da se mu bo kdaj odrekel. Zato bi bilo bolje, namesto da grajamo uboge razvijalce in zganjamo nesmiselne flame, ugotoviti, zakaj je pravzaprav sistem hrošč? Povedal vam bom majhno skrivnost. V zloglasnih zaslonih smrti in nestabilnega dela Windows v veliki večini primerov so krivi gonilniki tretjih oseb, sam operacijski sistem pa nima čisto nič s tem. Zdaj vam bomo povedali, kako odkriti takšne gonilnike in jih odstraniti iz sistema.

Napake v zasnovi gonilnika lahko segajo od zrušitev do modrega zaslona smrti ( BSOD– Blue Screen of Death) ter do upočasnitve računalnika in nenavadnega obnašanja nekaterih aplikacijskih aplikacij, ki niso popolnoma povezane z gonilnikom.

Modri ​​zaslon smrti je izjemen (brez vsakršne ironije!) v tem, da jasno signalizira prisotnost resne težave in daje namig, kam kopati. Pogosto (vendar ne vedno) je ime voznika "kršitelja" prikazano neposredno v zgornjem desnem kotu modrega zaslona smrti. Lahko pa ga ni ali, kar je še huje, tam je ime popolnoma nepovezanega voznika.

Na primer, en precej pogost gonilnik video kartice Matrox G450 teži k uničevanju osnovne strukture grafični podsistem Windows 2000 , zaradi česar BSOD prikaže ime sistemskega gonilnika win32k.sys, ki implementira precejšen del funkcij USER in GDI in ki s tem seveda nima nobene zveze. Razlaga modrega zaslona smrti je torej magija, intuicija, znanost in umetnost – vsega po malem.

Poleg okvar gonilnika lahko modre zaslone smrti povzročijo tudi okvare strojne opreme, na primer overclockiran procesor, pokvarjen RAM ali pokvarjen krmilnik. trdi disk, kartica PCI, ki ni popolnoma vstavljena v režo, ohlapen kontakt v enem od konektorjev, slabo napajanje, napihnjen elektrolitski kondenzator matična plošča. In slednji se tarnajo iz različnih razlogov: zaradi pregrevanja bližnjega procesorja, pomanjkanja keramičnih kondenzatorjev, ki jih proizvajalec "ne prijavi" (zaradi česar gre RF komponenta skozi elektrolit in ga močno segreje) in končno , zaradi puščanja ključnih tranzistorjev v stabilizatorju enote. Zato se moramo pred sekanjem drv prepričati, da je likalnik, na katerem sedimo, v popolnem stanju. Kako je to mogoče storiti?

Obračun z železom

Modri ​​zasloni smrti, ki nastanejo zaradi okvar strojne opreme, so spontani, pojavijo se nepredvidljivo in ne glede na kakršna koli dejanja uporabnika. Aplikacije aplikacij prav tako začnejo proizvajati kritične napake na različnih mestih, kode napak, naslovi in ​​druge informacije, ki jih izda sistem, pa bodo v vseh primerih drugačne! Mimogrede, na primer gonilniki, ki obravnavajo asinhrone zahteve V/I naprav brezžična omrežja, se obnašajo skoraj popolnoma enako. Modri ​​zasloni smrti, ki jih povzročijo okvarjeni gonilniki, se običajno pojavijo pri izvajanju določenega niza dejanj in vsebujejo bolj ali manj stalne informacije.

Če želite odstraniti vse sume iz strojne opreme, je dovolj, da na sistem priključite drug trdi disk in namestite nedotaknjeno čisto Windows in delaj na tem nekaj časa. Če modri zasloni smrti ne izginejo, je res kriva strojna oprema in čas je, da jo spremenite. Iskanje okvarjenih komponent je tema za ločeno razpravo, ki jo bomo pustili za prihodnjič, za zdaj pa zavihajte rokave in se spopadite s temi zahrbtnimi vozniki.

Drva brez certifikata gredo naravnost v kurišče

Celoten nabor orodij, potrebnih za razvoj gonilnikov ( DDK– komplet za razvoj gonilnikov), ga Microsoft skupaj s priloženo dokumentacijo distribuira brezplačno. Gonilniki, včasih zelo hroščasti in nestabilni.

Da do takšnega kaosa ne bi prišlo, Microsoftže v starih časih je uvedel postopek potrjevanja voznikov glede izpolnjevanja zahtev, ki so jim naložene, po katerem se vozniku izda digitalni podpis. Ali ... ni bil izdan in je bil poslan v revizijo. In čeprav je certificiranje le formalni postopek, ki ne zagotavlja odsotnosti usodnih napak in razvojnih pomanjkljivosti, še vedno odpravi nekatere odkrito »pionirske« gonilnike.

V idealnem primeru bi morali biti v sistemu shranjeni samo digitalno podpisani gonilniki. In čeprav digitalni podpis ni zavarovalna polica, njegova prisotnost že kaže na določeno stopnjo razvojne kulture. Gonilniki brez digitalnega podpisa so hujši od prašiča v žaklju in se jih je treba znebiti, če se le da (še posebej, ker so mnogi med njimi zlonamerna programska oprema, ki so jo namestili rootkiti ali agresivni obrambni mehanizmi, ki prodrejo globoko v sistem in povzročijo njegovo nestabilnost). Skratka, ne spuščajmo se v demagogijo, ampak poskušajmo odgovoriti na eno preprosto vprašanje: kako ustvariti seznam gonilnikov brez digitalnega podpisa?

Pri tem nam bo pomagal pripomoček sigverif.exe, ki je vključen v standardni dostavni komplet operacijski sistem in se nahaja v imeniku WINNT\System32. Zaženemo ga in vidimo pogovorno okno. Kliknite gumb »Napredno« in v zavihku »Išči« nastavite kriterije izbire tako, da izbirni gumb premaknete iz položaja »Obvesti o odjavljenih«. sistemske datoteke"(kjer je privzeto zamrlo) na položaj "Išči druge datoteke, ki niso digitalno podpisane." Nato v »Možnostih iskanja« odprite polje »Iskanje datotek naslednje vrste« in izberite »*.sys« ter spodaj označite iskalno mapo »C:\WINNT«, pri čemer ne pozabite označiti »Vključno podmape«.

Pravzaprav, strogo gledano, gonilnikom ni treba imeti razširitve sys in niso vedno omejeni na imenik WINNT, saj so v imenikih "njihovih" aplikacij, nekatere aplikacije pa celo shranjujejo gonilnike ... v sebi! Takoj po zagonu (ali kadar koli drugje) shranijo datoteko na disk v trenutni ali začasni imenik, naložijo gonilnik v pomnilnik in ... takoj izbrišejo z diska! To ne počnejo samo zlonamerni virusi, ampak tudi precej ugledni programi, kot so nekateri pripomočki slavnega raziskovalca podzemlja Windows Marka Russinovicha.

Zato nam zaradi čistosti poskusa ne bi škodilo, če bi dobili seznam gonilnikov, ki se nahajajo v ta trenutek v pomnilniku in jih primerjajte z gonilniki na disku. Besede "trenutno" so ključne, saj je gonilnike mogoče brezplačno prenesti/odložiti brez ponovnega zagona operacijskega sistema. Priporočljivo je, da to operacijo izvedete večkrat z zagonom pripomočka ukazne vrstice drivers.exe, ki je del DDK, ki ga lahko prenesete s strežnika Microsoft. Zažene se brez stikal z vrstičnim ukazom, pripomoček pogoni.exe izpiše vse informacije na zaslon, kar ni dobro, saj je gonilnikov v sistemu običajno veliko in ne sodijo na zaslon. Vendar pa nam religija omogoča, da preusmerimo izhodni tok na besedilna datoteka(drivers.exe >ime-datoteke.txt), ki ga lahko odpre vsak urejevalnik besedil- z Wordom ali z beležko. Nato ostane le, da izberete navpični blok (česar Notepad ne dovoljuje) in dobite seznam gonilnikov. Neposredno iz jedra operacijskega sistema!

Če vsaj enega od teh gonilnikov ni v imeniku C:\WINNT\, njegov digitalni podpis ne bo preverjen! Seveda takšen voznik takoj pritegne pozornost in se upravičeno vprašamo, od kod prihaja? Najprej pregledamo vse imenike na disku; če je ni, nastavite prekinitveno točko za funkcijo CreateFileW v Soft-Ice in si oglejte argumente, ki so ji bili posredovani. Prej ali slej bomo naleteli na naš buggy gonilnik, potem pa lahko samo pogledamo v spodnji desni kot zaslona Soft-Ice, kjer je prikazano ime procesa, ki ga je ustvaril. Za več podrobnosti si oglejte knjigo »Tehnike za odpravljanje napak v programih brez izvornih besedil«, katere elektronsko kopijo lahko najdete na ftp ali http strežniku nezumi.org.ru, pa tudi na našem disku. In še naprej mučimo uporabnost sigverif.exe.

Po kliku »V redu«, »Začni«, se na zaslonu prikaže »termometer«, ki prikazuje napredek, in trdi disk bo začel šumeti z vsemi svojimi glavami, ki jih ima. Po končanem delu bo sestavljen seznam gonilnikov brez digitalnega podpisa, ki bo prikazan na zaslonu.

Nekatere vroče glave predlagajo, da bi očistili sistem krivoverstva, odstranili vse nepodpisane gonilnike - potem bodo, pravijo, vse težave izginile. Kako je to mogoče storiti? Najbolj groba rešitev je, da jih enostavno odstranimo z diska preko FAR ali Explorerja (seveda z administratorskimi pravicami!). Toda posledice takšne operacije so lahko zelo katastrofalne, zato je bolje, da v Raziskovalcu z desno miškino tipko kliknete ikono gonilnika, v »Lastnosti« poiščete ime proizvajalca, s katerim lahko ugotovite, kakšna aplikacija/strojna oprema je nameščena ta gonilnik in ga na civiliziran način odstranite. Res je, tu obstaja en "ampak".

Gonilnik je označen na spodnji sliki. g400m.sys, ki je priložen kartici Matrox G450, in čeprav Matrox sploh ni šibko podjetje, ni dobil digitalnega podpisa (ali ga Microsoft ni dal ali pa se Matrox sam ni hotel truditi). Seveda, ko ga odstranite iz sistema, boste morali pozabiti na način SVGA. Lahko pa obiščete spletno stran Matrox in prenesete najnovejšo različico gonilnika (je že digitalno podpisan). Samo tukaj ... tako podpisana kot nepodpisana različica vsebuje veliko usodnih napak, zlasti zaradi določenih okoliščin, ko poskuša preklopiti v način prekrivanja, se sistem zruši v BSOD, ker gonilnik poskuša sprostiti že sproščen pomnilnik.

Tako prisotnost/odsotnost digitalnega podpisa sama po sebi ne pomeni ničesar in tudi če uporabljamo samo podpisane gonilnike, nam to ne daje nobenih zagotovil o stabilnosti.

Tu preidemo na drugi del članka, in sicer na testiranje voznikov v razmerah, ki so blizu bojnim.

Drva damo na pravi preizkus

DDK vključuje čudovit pripomoček Voznik Verifikator, ki ustvarja najhujše pogoje za voznike, ki mejijo na ekstrem in samomor, pri katerih je verjetnost okvare največja, ime pokvarjenega voznika pa je določeno z najvišjo natančnostjo (tudi če ne trpi zaradi razvojnih napak, vendar uniči podatkovno strukturo gonilnikov drugih ljudi).

Pomembno je omeniti, da Voznik Verifikator- To ni zdravilo, ampak samo diagnostično orodje. Še vedno vas ne bo rešilo pred okvarami (nasprotno, povečalo bo njihovo intenzivnost za nekaj vrst velikosti), vendar bo pomagalo prepoznati "zahrbtnega" voznika z zadostno stopnjo zanesljivosti.

Torej, zaženemo verifier.exe, vidimo okno Voznik Verifikator Vodja, gremo na zavihek Nastavitev in premaknemo izbirni gumb na položaj Preveri vse gonilnike, nakar pritisnemo gumb “Prednostna nastavitev”, ki nastavi naslednje vrste preverjanja:

  • Poseben bazen– gonilnikom, ki se testirajo, bo dodeljeno posebno pomnilniško območje za dodelitev, ki ne deluje zelo hitro, vendar je sposobno zaznati večino vrst uničenja lastnih in tujih podatkov.
  • Sila IRQL preverjanje. IRQL je raven zahteve za prekinitev. Najpogostejša napaka, ki jo delajo razvijalci gonilnikov, je poskušanje dostopa do pomnilnika na ravni IRQL, na kateri upravitelj strani ne deluje. In če se zahtevana stran nenadoma izloči na disk, se bo sistem spremenil v modri zaslon z napisom "IRQL_LESS_OR_EQULAR". Vsiljevanje tega načina prisili, da se strani gonilnika izpraznijo na disk, tako da se napaka v zasnovi pojavi 100 % časa.
  • Nizka vir simulacija Koristno ga je namestiti, da vidite, kako se gonilnik obnaša v primeru katastrofalnega pomanjkanja sistemskih virov, vendar vam tega ni treba storiti, vendar je bolje, da pustite potrditveno polje Pool tracking (spremljanje pravilnega ravnanja s pomnilnikom bazen). Vhodno/izhodne napake (I/O verification) predstavljajo nepomemben del vseh napak, zato je položaj tega potrditvenega polja na splošno popolnoma nekritičen.

Ko končate z izbiro nastavitev, kliknite gumb »Uporabi« in, kot nam je predlagano, znova zaženite.

Takoj po začetku zagona se bo sistem opazno upočasnil, kar tudi mora biti, saj jedro opravi veliko več preverjanj kot običajno. Ko so odkrite napake, utripa modri zaslon smrti z imenom gonilnika in nekaterimi drugimi informacijami, ki so uporabne za razvijalce, vendar neuporabne za nas. Vse, kar lahko storimo, je posodobiti gonilnik na največ Najnovejša različica ali zavrniti uporabo programa (strojne opreme), ki ga uporablja. Pravzaprav imamo malo več možnosti za vžig mokrega lesa, a o tem kasneje.

Stanje preverjanja lahko kadar koli ugotovite tako, da zaženete verifier.exe. Zavihek Driver Status prikazuje statuse vseh zaznanih gonilnikov z razlago trenutnega stanja. Naloženo stanje pomeni to ta voznik je prenesel in preveril vsaj, enkrat (vendar morda ne v celoti, to je, da vsi deli voznika niso imeli časa za delo). Status Unloaded pomeni, da je bil gonilnik naložen, preverjen (lahko delno) in razložen s strani sistema/programa, ki ga uporablja ali na lastno zahtevo. Slednje je še posebej značilno za gonilnike, ki so ostali od opreme, ki so jo odstranili z barbarskim izvlekom razširitvene kartice iz reže, torej brez deinštalacije. Preživeli voznik pregleda vodilo in poskuša najti »njegovo« strojno opremo, pri iskanju mu spodleti, nato pa se mimogrede odstrani iz pomnilnika, kar upočasni zagon sistema (včasih zelo močno) in pride v konflikt z drugimi gonilniki. Morala: opremo je treba odstraniti iz sistema v skladu z vsemi pravili! Ni pa vsak status Unloaded znak nenormalne situacije in preden izbrišete voznika s takšnim statusom, morate najprej ugotoviti, kakšen severni jelen je to in od kod je sploh prišel.

Stanje Never Loaded pomeni, da ta gonilnik še ni bil naložen, kar pomeni, da ni bil preverjen, zato morate počakati pred zagonom različne programe ki so lahko povezani z njim. Vendar se nekateri gonilniki (zlasti nepravilno odstranjeni) ne naložijo in zato nikoli niso preverjeni.

Po delu s sistemom v načinu trdega preverjanja nekaj časa (od nekaj ur do nekaj dni) bomo identificirali skoraj vse okvarjene gonilnike, zaradi katerih smo prej trpeli, in zapisali njihova imena na kos papirja.

Vrnite sistem v običajni način (to je brez dodatne preglede, ki zmanjšuje produktivnost), lahko uporabite isti preveritelj. Vrnemo se na zavihek Nastavitve, premaknemo izbirni gumb na položaj Preveri izbrane gonilnike (gonilnik ne sme biti izbran), kliknemo na »Ponastavi vse«, nato na »Uporabi« in znova zaženemo. Vse! Sistem zdaj deluje z normalno hitrostjo, vendar brez preverjanj.

Kaj storiti z vlažnimi drvmi?

Toda v resnici, kaj lahko storite z okvarjenim gonilnikom? Hekerji, ki znajo držati v rokah razhroščevalnik, ga lahko, če imajo dovolj prostega časa, razstavijo (na srečo so gonilniki običajno majhni), najdejo napako in se domislijo, kako jo odpraviti, vendar.. . to je preveč zamudno.

Zavreči gonilnik (skupaj s strojno opremo/programom, ki ga uporablja) prav tako ni možnost. Čeprav če se ve, da so krivi modri zasloni smrti zvočna kartica tujec kitajski proizvajalec vreden 20 dolarjev, potem imamo zelo močno motivacijo, da ga zamenjamo z nečim bolj vrednim. Toda to je, strogo gledano, že vsem jasno in dodatni komentarji ne potrebuje.

Vendar vsi ne vedo, da je ogromno zrušitev in modrih zaslonov smrti posledica dejstva, da je gonilnik, razvit (in preizkušen) v enoprocesorskem okolju, nameščen na dvoprocesorskem stroju. Z »dvoprocesorjem« tukaj mislimo tako na pravo platformo z dvema kamnoma kot na Hyper-Threading/večjedrne procesorje. Znano (in potrjeno) velik znesek testi) to domači računalnik dva procesorja sta popolnoma neuporabna, saj v veliki večini aplikacij praktično ni povečanja zmogljivosti.

Torej, če je sistem nestabilen in se je iz enega ali drugega razloga nemogoče znebiti okvarjenega gonilnika, lahko poskusite vstopiti v nastavitve BIOS-a in svoj "virtualni dvoprocesorski" stroj spremenite v enoprocesorskega. . Podoben učinek lahko dosežete z odpiranjem datoteke boot.ini (na računalnikih z Windows NT/2000/XP nahaja se v korenskem imeniku logični pogon, na katerem je nameščen sistem) in mu dodamo stikalo /ONECPU, nato znova zaženemo v upanju, da bodo napake izginile.

Seznam 1

Primer tipične datoteke boot.ini


časovna omejitev=30

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows 2000 Pro" /fastdetect /SOS

Seznam 2

Sistem konfiguriramo tako, da uporablja samo en procesor od vseh razpoložljivih


časovna omejitev=30
privzeto=multi(0)disk(0)rdisk(0)partition(1)\WINNT
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows 2000 Pro" /fastdetect /SOS /ONECPU

Ampak naprej Windows Vista datoteke boot.ini ni, čeprav obstaja (začasna) možnost za njeno konfiguracijo nastavitve zagona z uporabo posebna korist, namerava Microsoft popolnoma opustiti to vrzel, tako da bo ostala samo nastavitev BIOS-a. Vendar, kot za Vista, do takrat, ko bodo prešli nanj, bodo razvijalci gonilnikov verjetno pridobili večprocesorske stroje (saj drugih preprosto ne bo več v prodaji) in bodo svoje stvaritve preizkusili v večprocesorskem okolju.

Še ena subtilna točka. Ne pozabite, zgoraj smo rekli, da je najpogostejša napaka, ki jo naredijo razvijalci gonilnikov, dostopanje do pomnilnika, ki ga je mogoče prevzeti na ravni IRQL, na kateri upravitelj strani ne deluje, in če zahtevane strani ni v pomnilniku, pride do zrušitve? Očitna rešitev bi bila povečanje pomnilnik z naključnim dostopom na glasnost, pri kateri praktično nobena stran ni izrinjena na disk. Pri trenutnih cenah pomnilnika si skoraj vsakdo lahko privošči nakup nekaj novih pomnilniških ključkov. Toda obstaja bolj dostopna (in bolj elegantna) rešitev problema. Če je parameter DisablePagingExecutive, ki se nahaja v naslednji podružnici registra HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement, je enako ena (privzeto nič), jedrske komponente ne bodo izvzete. Zato preprosto zaženemo »urejevalnik registra«, spremenimo ta cenjeni parameter in znova zaženemo (spremembe začnejo veljati šele po ponovnem zagonu), v upanju, da bo to pomagalo rešiti težavo z napakami.