Bsod koji su drajveri potrebni za računalo. Korištenje Driver Verifier-a za prepoznavanje problematičnog upravljačkog programa. Čitanje dump datoteke

Mnogo je razloga za BSOD, ali u ovom ćemo članku razmotriti problem koji nastaje zbog sukoba instaliranih upravljačkih programa. Moglo bi biti instaliran drajver ili oštećena. Rješavanje problema s BSOD-om može biti vrlo jednostavno ako se radi samo o problemu s upravljačkim programom, a vi znate koji je. Možete ponovno instalirati upravljački program ili ga ažurirati, vratiti se na stara verzija ili se riješite aplikacije koja je instalirala upravljački program na vašem računalu tako da je fizički uklonite. Problem je u tome što nije uvijek moguće otkriti koji je vozač "krivac", čak ni nakon proučavanja svih podataka iz plavi ekran. Ali postoji izlaz. Ako nemate puno znanja i iskustva, ali postoji potreba za provjerom upravljačkih programa, za takve slučajeve možete koristiti poseban alat za provjeru Verifier.exe ugrađen u OS. Postojeći opis u Microsoftovoj bazi znanja predstavljen je složenim tehničkim terminima koji nisu uvijek poznati ni iskusnim korisnicima. Stoga ovaj članak predstavlja kratki popis manipulacija potrebnih za dovršenje zadatka. Pokretanje Driver Verifier-a Nakon što otvorite izbornik "Start", u polje za pretraživanje unesite upit "Pokreni" i kliknite na rezultat koji se pojavi na vrhu. U prozoru koji se pojavi morate unijeti naredbu " verifikator” (bez navodnika) i potvrdite klikom na “Ok”.
Pojavljuje se dijaloški okvir File Verification Manager. U prvom dijaloškom okviru trebate odabrati stavku "Stvori nestandardne parametre (za programski kod)". Pritisnite "Dalje".
Sljedeći korak je odabir pojedinačnih parametara za testiranje upravljačkog programa. Da bismo to učinili, izvršit ćemo sljedeće manipulacije: „Odaberite pojedinačne parametre iz puni popis" - "Dalje".
Nakon dovršetka koraka trebali biste dobiti dijaloški okvir s popisom parametara testiranja. Označite sve okvire osim stavke "Simuliraj nedostatak resursa". Pritisnite Dalje.
Posljednji korak u ovom dijelu je davanje naredbe dispečeru za automatski odabir nepotpisani drajveri. Odaberite "Automatski odabir nepotpisanih upravljačkih programa." Pritisnite Dalje.
Dešava se da upravitelj nije otkrio nepotpisane upravljačke programe. Zatim upotrijebite značajku selektivne provjere vozača, o kojoj ćemo kasnije govoriti. Rad s nepotpisanim upravljačkim programima Ako se otkriju nepotpisani upravljački programi, upravitelj će ih prikazati u obliku popisa.
To mogu biti upravljački programi uređaja ili upravljački programi. Nakon što se otkriju nepotpisani upravljački programi, nema potrebe zatvarati upravitelj i kliknuti gumb "Završi". Najprije provjerimo ima li ažuriranih upravljačkih programa. Potražite ažurirane upravljačke programe Za provjeru morate izvršiti sljedeće korake: 1. Upravljački program aplikacije nalazi se na popisu. U tom slučaju trebate posjetiti web mjesto proizvođača aplikacije kako biste provjerili ažurirane upravljačke programe. U slučaju ažurirana verzija nedostaje upravljački program, pokušajte deinstalirati aplikaciju. Ne bojte se, uvijek ga možete ponovo instalirati kasnije. Ali ovo će biti izvrsna provjera: ako se kritične pogreške više ne pojavljuju, razlog je bio ovu aplikaciju. 2. Popis sadrži upravljački program uređaja. U ovom slučaju (ako imate Windows Vista), pokrenite centar za ažuriranje i omogućite traženje nove funkcije upravljačkog programa. Ako se pronađe novi upravljački program, pokrenite njegovu instalaciju. 3. Ako centar za ažuriranje nije pronašao novi upravljački program, pogledajte web stranicu proizvođača; vjerojatno će novi upravljački program biti tamo. Nakon ažuriranja upravljačkog programa ili aplikacije, zatvorite upravitelj skeniranja (gumb Odustani), ponovno pokrenite sustav i pričekajte da se OS učita. Ako su kritične pogreške prestale, ažuriranje upravljačkih programa ili aplikacija ih je uklonilo. Uklanjanje upravljačkih programa Ako se novi upravljački programi ne mogu pronaći, možete pokušati ukloniti upravljački program. PAŽNJA! Ako uklonite upravljački program, uređaj će prestati raditi. Nakon ponovnog pokretanja, OS će pokušati instalirati upravljački program iz memorije, ali nije činjenica da će standardni upravljački program to učiniti. Ako niste sigurni u potrebu uklanjanja bilo kojeg upravljačkog programa, nemojte ga uklanjati. Pokrenite Upravitelj uređaja na sljedeći način: Start – Pokreni – devmgmt.msc- Unesi. Pronašavši potreban uređaj, desnom tipkom miša kliknite na njega i kliknite Svojstva – Upravljački program – Deinstaliraj. Provjera nepotpisanih upravljačkih programa PAŽNJA! Nakon provjere nepotpisanih upravljačkih programa, može se dogoditi da se sustav neće pokrenuti. U nastavku je opis radnji poduzetih u ovoj situaciji. Ako niste sigurni da želite ukloniti upravljački program i nastaviti sa skeniranjem, kliknite gumb Završi u upravitelju skeniranjem. Kada se od vas zatraži da odaberete fizički disk, odaberite onaj na kojem je instaliran OS, a zatim ponovno kliknite Završi. Vidjet ćete poruku s tekstom: "Morate ponovno pokrenuti računalo kako bi promjene stupile na snagu." Tiho zatvorite sve aplikacije i ponovno pokrenite sustav. Ako se sustav ne pokrene i pojavi se plavi ekran s opisom greške, to znači da je upravljački program problematičan pronađeno. Nakon ponovnog pokretanja računala, prije učitavanja OS-a kliknite F8 verifikator.exe/resetverifikator.exe
Prilagođena provjera vozača Ponovno pokrenite Driver Verifier Manager i izvršite prethodne korake do točke prikazane u nastavku.
Odaberite "Odaberi naziv upravljačkog programa s popisa". Sljedeći korak bit će prozor za odabir upravljačkih programa za provjeru. Ne biste trebali odabrati sve upravljačke programe odjednom, jer će OS rezervirati prilično veliku količinu resursa za skeniranje i potrošit će puno vremena na to. Bolje je ponoviti postupak provjere nekoliko puta, ali s malim brojem vozača. Ovo će vam uštedjeti vrijeme i resurse. Prije svega, provjerimo upravljačke programe koji su nedavno ažurirani ili jednostavno problematične upravljačke programe (driver antivirusni program, vatrozid, virtualni disk ili automobili). Neka sljedeći korak bude provjera upravljačkih programa koje nije proizveo Microsoft. Provjerite preostalih vozača 10-15 odjednom.
Izaberi potrebne upravljačke programe i kliknite gumb "Gotovo". Kada se od vas zatraži da odaberete fizički disk, odaberite onaj na kojem je instaliran OS, a zatim ponovno kliknite Završi. Pojavljuje se poruka koja traži da ponovno pokrenete sustav. Ponovno pokrenite računalo. Ako se nakon ponovnog pokretanja pojavi plavi ekran s porukom o pogrešci, to znači da je pronađen upravljački program koji uzrokuje problem. Nakon ponovnog pokretanja računala, prije učitavanja OS-a kliknite F8 i odaberite "Run in siguran način" Kada se prijavite, kliknite gumb Start i upišite Run/Search verifikator.exe/reset. Ako nije došlo do problema i sustav je pokrenut u standardnom načinu rada, tada nepotpisani upravljački programi ne uzrokuju probleme i morate provjeriti druge upravljačke programe. Ponovno pokrenite Driver Verifier Manager ( verifikator.exe) i odaberite "Prikaži informacije o trenutačno provjerenim upravljačkim programima."
Ponovite skeniranje za sve preostale upravljačke programe. Završetak provjere vozača Ako provjera svih upravljačkih programa ne otkrije uzroke kritičnih pogrešaka, najvjerojatnije problem nije u upravljačkim programima. Problem možda nije softver, već hardver vašeg računala. Najvjerojatnije su to problemi s tvrdim diskom ili RAM-om. Također može biti da napajanje nema dovoljno snage da osigura rad svih uređaja ili neki drugi problem u hardveru koji se ne može utvrditi provjerom upravljačkih programa. Dijagnosticirajte RAM i HDD.

Neispravan upravljački program može uzrokovati mnoge probleme na vašem računalu. Glavni znak da vaše računalo ima neispravan upravljački program je plavi ekran smrti, koji je često uzrokovan onemogućavanjem upravljačkog programa.

U ovom članku ćemo vam reći kako možete pronaći neispravan upravljački program i zatim ga ažurirati ili potpuno ukloniti.

Ponekad Windows obavještava korisnika da jedan od upravljačkih programa nije uspio. Međutim, događa se da sustav ne može detektirati u čemu je problem, pa ne prikazuje poruke o pogrešci, zbog čega radi sporije ili ne po potrebi. U ovom slučaju Upravitelj provjere vozača(Driver Verifier) ​​​​stvara dodatno opterećenje za upravljačke programe sustava, pokušavajući tako izazvati pad. Ako jedan od vozača zakaže, onda Upravitelj provjere vozača prijavit će problem pomoću plavog ekrana.

Upozorenje

Prije uporabe Upravitelj provjere vozača Imajte na umu da vam alat može ograničiti korištenje vlastitog računala. Jer Upravitelj provjere vozača aktivira plavi ekran smrti kada otkrije neispravan upravljački program, to može uzrokovati velike probleme prilikom pokretanja sustava Windows.

Ako nemate načina da uđete u Windows kako biste onemogućili testiranje upravljačkih programa, računalo će raditi u petlji "boot -> load -> crash" iz koje je prilično teško izaći. Značajka automatskog popravka jedna je od rijetkih opcija za pristup sustavu Windows, ali bolje je izbjegavati ovu situaciju.

Prije korištenja Driver Verifier-a, provjerite imate li barem jedan od sljedećih izlaza za slučaj opasnosti:

  • Možete ići u siguran način rada. Uđite u siguran način prije pokretanja Windows pokretanje obično se radi uzastopnim pritiskom tipke F8 dok se računalo pokreće. Međutim, nova se računala podižu tako brzo da jednostavno nećete imati vremena pritisnuti F8 u pravom trenutku.
  • Jeste li stvorili točku vraćanja sustava prije upotrebe? Upravitelj provjere vozača. Također je poželjno imati instalaciju Windows disk tako da možete vratiti svoje računalo na tvorničke postavke.

Kako pokrenuti Driver Verifier Manager

Prije nego počnete upute za uporabu Upravitelj provjere vozača, svakako pročitajte gornji odjeljak "Upozorenje". Piše kako izbjeći beskrajno učitavanje Windowsa.

Kada budete sto posto sigurni da imate plan izlaza u nuždi, kliknite na " Tipka Windows + R" i uđi cmd u dijaloškom okviru Izvršiti", zatim kliknite " u redu».

U prozor za naredbe unesite:

verifikator

U skočnom prozoru odaberite " Stvorite nestandardne parametre (za programski kod)", zatim kliknite " Unaprijediti».

Vidjet ćete popis svih testova koje možete pokrenuti da provjerite svoje upravljačke programe. Odaberite sve testove s popisa, osim"Simuliraj nasumični nedostatak resursa" i "Dodatna provjera usklađenosti s DDI", zatim kliknite " Unaprijediti».

Na sljedećem zaslonu odaberite " Odaberiteimena vozača s popisa" i pritisnite " Unaprijediti».

Ovdje možete odabrati upravljačke programe koje želite testirati. Ako ne znate koji je driver neispravan, odaberite sve osim Microsofta jer oni najčešće rade bez grešaka.

Kada pritisnete " Spreman", Windows će od vas tražiti da ponovno pokrenete računalo. Nakon što se računalo uključi, nastavite ga koristiti kao i obično. Ako dobijete plavi ekran, obratite pozornost na poruku o pogrešci i ponovno pokrenite računalo.

Nakon što identificirate neispravan upravljački program, možete onemogućiti Upravitelj provjere vozača jedan od dva načina. Možete ponovno otvoriti naredbeni redak, unesite naredbu verifikator i odaberite " Ukloni postojeće postavke».

Također možete otvoriti naredbeni redak i upisati:

Verifier /bootmode resetonbootfail

Nakon što onemogućite Driver Verifier Manager, ponovno pokrenite računalo. Ako se računalo ne uključi, upotrijebite jedan od izlaza za slučaj opasnosti o kojima smo govorili u odjeljku "Upozorenje".

Zaključak

Ako mislite da je jedan od upravljačkih programa neispravan, ali ne možete shvatiti koji, onda Upravitelj provjere vozača bit će veliki pomagač.

Međutim, trebali biste biti spremni na mogućnost da se računalo neće moći uključiti nakon testiranja upravljačkih programa, stoga razmislite o rezervnom izlazu s hitna situacija, na primjer, idite u siguran način rada ili pokrenite točku vraćanja sustava Windows.

Jeste li ikada imali problema s upravljačkim programima na računalu? Kako ste uspjeli pronaći neispravan upravljački program? Recite nam u komentarima ispod!

Uslužni program Driver Verifier (verifier.exe) dizajniran je za analizu problematičnih upravljačkih programa kada analiza ispisa memorije nakon BSOD-a ne dopušta pronalaženje problematičnog upravljačkog programa. Driver Verifier je “spas” u najproblematičnijim situacijama.

Uz Driver Verifier možete:

    stres test vozača (simuliraju se uvjeti nedostatka resursa);

    kontrola prekoračenja međuspremnika;

    kontrola nad pogreškama koje se javljaju zbog netočnog rada na danom IRQL-u;

    I/O analiza grešaka;

    otkrivanje zastoja itd.

Uslužni program Driver Verifier vrlo je koristan kada:

    administrator (korisnik) sumnja da upravo ovaj upravljački program uzrokuje pad sustava i želi dodatno provjeriti je li to stvarno tako;

    programeri drajvera žele testirati svoj drajver;

    Prilikom analize dumpa nakon BSOD-a, nemoguće je pronaći problematični upravljački program.

Jedan od najtežih slučajeva analize ispisa memorije je kada upravljački program greškom prebriše podatke prije ili nakon završetka međuspremnika koji je dodijelio. U takvim slučajevima dolazi do pogrešaka u jezgri OS-a (na primjer, analiza dumpa nakon BSOD-a pokazuje da je do pogreške došlo u ntoskrnl.exe).

Da vidimo sličan slučaj na konkretnom primjeru. Pomoću uslužnog programa NotMyfault uzrokujemo BSOD - "Prelijevanje međuspremnika".

Rezultat analize deponija pomoću windbg-a priložen je u nastavku.

Prema dump analizi dobivamo:

1. Arg1: 00000007, Pokušaj oslobađanja bazena koji je već bio oslobođen (pokušano je oslobađanje već oslobođenog skupa)

2. NAZIV_SLIKE: ntkrpamp.exe (jezgra samog sustava ima neke veze s ovim)

Kod takvih grešaka verifikator dolazi u pomoć.

Pokreni verifikator.

Odaberite "Stvori nestandardne parametre". Zatim odaberite "Odaberite parametre s popisa".

Odaberite sve osim "Simuliraj nedostatak resursa".

Zatim odaberite "Odaberi neučitane upravljačke programe za ovaj popis" i odredite put do upravljačkog programa myfault.sys koji se nalazi u istom direktoriju kao i program NotMyfault.exe.

Zatim označite upravljački program i kliknite "Završi". Nakon toga moramo ponovno pokrenuti računalo.

Izvodimo sve iste radnje kao na početku. Pokrenite NotMyfault.exe, odaberite “Buffer overflow” i kliknite “Crash”. Kao što ste primijetili, pad se možda neće dogoditi odmah, budući da je unaprijed nepoznato tko će i kada pokušati raditi s tom memorijom. Kao što možete vidjeti na slici ispod, zahvaljujući verifikatoru, sustav može identificirati problematični upravljački program.

Dat ću analizu pomoću!analyze –v u windbg.exe dumpa memorije nakon BSOD-a.

Program za provjeru čini tako da upravljački program koji se testira, umjesto obične memorije dostupne u kernelu, koristi poseban skup dizajniran za otkrivanje takve pogreške. Zahvaljujući tome, možete pronaći upravljački program koji uzrokuje BSOD.

Pogledamo li rezultate analize, vidimo sljedeće.

1. DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION (d6) – ovo je jedna od grešaka koje generira verifikator

2. IMAGE_NAME: myfault.sys – upravljački program koji je uzrokovao problem.

Stoga, ako vam analiza memorijskog dumpa nakon BSOD-a ne omogućuje pronalaženje "krivog upravljačkog programa", upotrijebite program verifier.exe (instalirajte sve provjere, osim za nedostatak memorije).

Najjednostavniji način korištenja programa Driver Verifier (verifier.exe) je da ga pokrenete sa sljedećim parametrima:

verifikator /standard /driver naziv datoteke upravljačkog programa

Korisnost Vozač Verifikator uključeno u sve Windows verzije, počevši od sustava Windows XP, i omogućuje vam provjeru upravljačkih programa, prepoznavanje problematičnih upravljačkih programa koji uzrokuju plavi ekran smrti (BSOD- Plavi ekran smrti) i snimite detaljne informacije o problematičnom upravljačkom programu u memoriji za daljnju analizu. Uslužni program podvrgava provjerene upravljačke programe različitim " stres testovi", simulirajući razne ekstremne uvjete: nedostatak memorije, I/O kontrolu, IRQL, zastoje, DMA provjere, IRP, itd. Tj. simuliraju se situacije koje se rijetko događaju na produktivnim sustavima, te se prati ponašanje vozača u njima. Svrha uslužnog programa je identificirati situacije u kojima upravljački program može dovesti do pada sustava s BSOD-om.

Poziva se izvršna datoteka uslužnog programa Driver Verifier Verifikator.egz i nalazi se u direktoriju %windir%\system32. Postoje dvije mogućnosti korištenja uslužnog programa: iz naredbenog retka ili pomoću GUI.

Da biste omogućili način provjere upravljačkog programa u sustavu Windows 8, pokrenite uslužni program Driver Verifier upisivanjem

Verifikator

Na popisu zadataka odaberite Stvorite prilagođene postavke (za programere koda) i pritisnite Sljedeći.

Provjerite jesu li opcije odabrane Standardne postavke, Prisilno U/I zahtjeve na čekanju I IRP evidentiranje. Klik Sljedeći.

Sljedeći odabir.

Razvrstajte sadržaj tablice klikom na zaglavlje stupca "Provider" i odaberite one koje želite testirati s popisa upravljačkih programa. U našem primjeru, pokrenut ćemo provjeru za sve upravljačke programe koje nije razvio MicrosoftKorporacija. Odabrali smo upravljačke programe: e1g6032e.sys (Intel) i lsi_sas.sys (LSI).

Bilješka. Dostupnost vozača digitalni potpis Microsoft navodi da je upravljački program testiran na određeni način za stabilnost i njegov kod od tada nije mijenjan. Zato se ne preporučuje niti koristi.

Sve što trebate učiniti je kliknuti Završi i pojavit će se prozor s informacijama da morate ponovno pokrenuti sustav kako bi promjene stupile na snagu.

Savjet. Način provjere vozača također se može omogućiti iz naredbeni redak. Na primjer, za pokretanje programa Driver Verifier standardne postavke za upravljački program myPCDriver.sys, naredba će izgledati ovako: verifier /standard /driver myPCDriver.sys

Nakon ponovnog pokretanja, sustav se pokreće u modu provjere upravljačkog programa. Driver Verifier radi u pozadina, izvodeći različite vrste testiranja odabranih upravljačkih programa kako bi se identificirale pogreške. Koristite računalo kao i obično i pričekajte da se pojavi BSOD. Ako znate koje su radnje prethodno uzrokovale pad sustava, ponovite ih. Ako se pojavi BSOD, trebate kopirati datoteku dumpa memorije (prema zadanim postavkama, ona je spremljena u direktorij C:\Windows\Minidump\*.dmp) i analizirati je pomoću Windbg-a ili ekvivalenta.

Važno! Nakon aktiviranja načina rada za otklanjanje pogrešaka upravljačkog programa pomoću programa Driver Verifier, ovaj će način rada raditi sve dok se prisilno ne onemogući.

Ako se problem ne ponovi unutar 1-2 dana, tada s određenim stupnjem sigurnosti možemo zaključiti da upravljački programi koji se testiraju nisu uzrok pada sustava i način skeniranja za njih može biti onemogućen.

Savjet. Korištenje Validatora Windows upravljački programi značajno usporava Windows, pa se ne preporučuje stalno raditi u ovom načinu rada.

Možete onemogućiti Driver Verifier iz naredbenog retka:

Verifikator /reset

Ili iz grafičkog sučelja odabirom Izbrišite postojeće postavke.

Ako se ne možete prijaviti u sustav u normalnom načinu rada, možete onemogućiti način otklanjanja pogrešaka iz sigurnog načina rada.

Ako se sustav ne pokreće u sigurnom načinu rada, pokušajte izbrisati sljedeće ključeve registra pokretanjem s disketa za pokretanje:

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

Trenutačni status uslužnog programa Driver Verifier možete provjeriti ovako.

Upozoravamo vas da su svi eksperimenti s upravljačkim programima opasni i mogu oštetiti sustav. Bolje je unaprijed napraviti sigurnosnu kopiju sustava i onda ne držati prste uklanjanjem drugog sumnjivog upravljačkog programa iz sustava Windows.

I čim ne grde Windows iz Microsoft, nazivajući jadnicu istovremeno sporom, glitchy i čak nestabilnom. Ali nikome se ne žuri odreći ga se, i općenito je malo vjerojatno da će ga se ikada odreći. Stoga, umjesto da grdimo jadne developere i dižemo besmislene bake, bilo bi dobro shvatiti zašto je, zapravo, sustav buja? Reći ću vam malu tajnu. U notornim ekranima smrti i nestabilnog rada Windows u velikoj većini slučajeva krivi su drajveri trećih strana, a sam operativni sustav nema apsolutno nikakve veze s tim. Sada ćemo vam reći kako otkriti takve upravljačke programe i ukloniti ih iz sustava.

Greške u dizajnu vozača mogu varirati od sudara do plavog ekrana smrti ( BSOD– Blue Screen of Death) te na usporavanje računala i čudno ponašanje nekih aplikacijskih aplikacija koje su potpuno nevezane za upravljački program.

Plavi ekran smrti je izvanredan (bez imalo ironije!) po tome što jasno signalizira prisutnost ozbiljnog problema i daje savjet gdje kopati. Često (ali ne uvijek) ime vozača "prekršitelja" prikazuje se izravno u gornjem desnom kutu plavog ekrana smrti. Međutim, možda ga nema ili, još gore, može biti ime potpuno nepovezanog vozača.

Na primjer, jedan prilično uobičajeni upravljački program za video karticu Matrox G450 teži uništavanju osnovne strukture grafički podsustav Windows 2000 , što rezultira BSOD-om koji prikazuje naziv upravljačkog programa sustava win32k.sys, koji implementira značajan dio USER i GDI funkcija i koji, naravno, nema nikakve veze s tim. Dakle, tumačenje plavog ekrana smrti je magija, intuicija, znanost i umjetnost - pomalo od svega.

Osim nedostataka upravljačkog programa, plave ekrane smrti također mogu uzrokovati kvarovi hardvera, na primjer, overclockani procesor, neispravan RAM ili neispravan kontroler. tvrdi disk, PCI kartica nije do kraja umetnuta u utor, labav kontakt u jednom od konektora, loše napajanje, nabubreni elektrolitski kondenzator matična ploča. A potonji se dure iz raznih razloga: zbog pregrijavanja obližnjeg procesora, nedostatka keramičkih kondenzatora koje proizvođač “nije prijavio” (zbog čega RF komponenta prolazi kroz elektrolit i jako ga zagrijava), i na kraju , zbog curenja ključnih tranzistora u stabilizatoru jedinice. Stoga, prije cijepanja drva, moramo se uvjeriti da je željezo na kojem sjedimo potpuno ispravno. Kako se to može učiniti?

Obračun sa željezom

Plavi ekrani smrti uzrokovani hardverskim kvarovima spontani su, pojavljuju se nepredvidivo i neovisno o bilo kakvim specifičnim radnjama korisnika. Aplikacijske aplikacije također počinju stvarati kritične pogreške na različitim mjestima, a kodovi grešaka, adrese i druge informacije koje izdaje sustav bit će različite u svim slučajevima! Usput, upravljački programi koji obrađuju asinkrone zahtjeve od I/O uređaja, na primjer bežične mreže, ponašaju se gotovo potpuno isto. Plavi zasloni smrti uzrokovani neispravnim upravljačkim programima obično se pojavljuju prilikom izvođenja određenog skupa radnji i sadrže više ili manje konstantne informacije.

Da biste uklonili sve sumnje s hardvera, dovoljno je spojiti još jedan tvrdi disk na sustav i instalirati netaknuti čisti Windows i raditi na tome neko vrijeme. Ako plavi ekrani smrti ne nestanu, to znači da je hardver stvarno kriv i da je vrijeme da ga promijenite. Pronalaženje neispravnih komponenti tema je za zasebnu raspravu, koju ćemo ostaviti za sljedeći put, a za sada zasucite rukave i uhvatite se u koštac s ovim podmuklim vozačima.

Ogrjevno drvo bez atesta ide direktno u ložište

Cijeli skup alata potrebnih za razvoj drajvera ( DDK– Driver Development Kit), Microsoft ga distribuira besplatno zajedno s pratećom dokumentacijom. Vozači, ponekad vrlo nepravilni i nestabilni.

Da ne bi došlo do takvog kaosa, Microsoft još u davnim vremenima uveo je postupak potvrđivanja vozača u skladu sa zahtjevima koji su im nametnuti, nakon čega se vozaču izdaje digitalni potpis. Ili... nije izdana, a poslana je na reviziju. I premda je certifikacija samo formalni postupak koji ne jamči nepostojanje fatalnih pogrešaka i nedostataka u razvoju, on još uvijek eliminira neke od iskreno "pionirskih" vozača.

U idealnom slučaju, u sustavu bi se trebali držati samo digitalno potpisani upravljački programi. I premda digitalni potpis nije polica osiguranja, njegova prisutnost već ukazuje na određenu razinu kulture razvoja. Upravljački programi bez digitalnog potpisa gori su od praseta i treba ih se riješiti ako je moguće (pogotovo jer su mnogi od njih zlonamjerni softver instaliran pomoću rootkita ili agresivnih obrambenih mehanizama koji prodiru duboko u sustav i uzrokuju njegovu nestabilnost). Ukratko, nemojmo se upuštati u demagogiju, ali pokušajmo odgovoriti na jedno jednostavno pitanje: kako napraviti popis vozača bez digitalnog potpisa?

Uslužni program će nam pomoći u tome sigverif.exe, uključen u standardnu ​​isporuku operacijski sustav i nalazi se u direktoriju WINNT\System32. Pokrećemo ga i vidimo dijaloški okvir. Pritisnite gumb "Napredno" i na kartici "Traži" postavite kriterije odabira pomicanjem radio gumba s pozicije "Obavijesti o odjavljenoj pretplati". sistemske datoteke"(gdje je prema zadanim postavkama zamro) na poziciju "Traži druge datoteke koje nisu digitalno potpisane." Nakon toga u “Opcijama pretraživanja” otvorite okvir “Traži datoteke sljedeće vrste” i odaberite “*.sys”, a ispod označite mapu za pretraživanje “C:\WINNT”, pazeći da označite “Uključujući podmape” potvrdni okvir.

Zapravo, strogo govoreći, upravljački programi ne moraju imati sys ekstenziju i nisu uvijek ograničeni na WINNT direktorij, jer se nalaze u direktorijima “njihovih” aplikacija, a neke aplikacije čak pohranjuju upravljačke programe... unutar sebe! Odmah nakon pokretanja (ili u bilo kojem drugom trenutku), spremaju datoteku na disk u trenutnom ili privremenom direktoriju, učitavaju upravljački program u memoriju i... odmah ga brišu s diska! To ne rade samo zlonamjerni virusi, već i prilično respektabilni programi, poput nekih uslužnih programa poznatog istraživača podzemlja Windowsa Marka Russinovicha.

Stoga, radi čistoće eksperimenta, ne bi nam škodilo dobiti popis upravljačkih programa koji se nalaze u ovaj trenutak u memoriji i usporedite ih s upravljačkim programima koji se nalaze na disku. Riječi "trenutno" su ključne, budući da se upravljački programi mogu besplatno preuzeti/skidati bez ponovnog pokretanja operativnog sustava. Preporučljivo je izvršiti ovu operaciju nekoliko puta pokretanjem uslužnog programa naredbenog retka drivers.exe koji je dio DDK-a koji se može preuzeti s Microsoftovog poslužitelja. Pokrenut bez ikakvih prekidača pomoću linijske naredbe, uslužnog programa pogoni.exe ispisuje sve informacije na ekran, što nije dobro, jer obično ima puno upravljačkih programa u sustavu i oni ne stanu na ekran. Međutim, religija nam omogućuje preusmjeravanje izlaznog toka na tekstualna datoteka(drivers.exe >file-name.txt), može otvoriti bilo tko uređivač teksta- ili s Wordom ili s notepadom. Tada ostaje samo odabrati okomiti blok (što Notepad ne dopušta) i dobiti popis upravljačkih programa. Izravno iz jezgre operativnog sustava!

Ako barem jedan od ovih upravljačkih programa nije u direktoriju C:\WINNT\, njegov digitalni potpis neće biti provjeren! Naravno, takav vozač odmah privlači pozornost, a mi imamo razumno pitanje: odakle dolazi? Prvo skeniramo sve direktorije na disku; ako je nema, postavite točku prekida na funkciju CreateFileW u Soft-Iceu i pogledajte argumente koji su joj proslijeđeni. Prije ili kasnije naići ćemo na naš buggy driver, nakon čega možemo samo gledati u donji desni kut Soft-Ice ekrana, gdje je prikazano ime procesa koji ga je generirao. Za više detalja pogledajte knjigu “Tehnike za otklanjanje pogrešaka u programima bez izvornih tekstova”, čija se elektronička kopija može pronaći na ftp ili http poslužitelju nezumi.org.ru, kao i na našem disku. I nastavljamo mučiti komunalu sigverif.exe.

Nakon klika na “OK”, “Start”, na ekranu će se pojaviti “termometar” koji prikazuje napredak, a tvrdi disk će početi šuškati sa svim svojim glavama koje ima. Po završetku rada, popis vozača bez digitalnog potpisa će se sastaviti i prikazati na ekranu.

Neke usijane glave predlažu, kako bi se sustav očistio od krivovjerja, ukloniti sve nepotpisane upravljačke programe - tada će, kažu, svi problemi nestati. Kako se to može učiniti? Najgrublje rješenje je jednostavno ih ukloniti s diska preko FAR-a ili Explorera (s administratorskim pravima, naravno!). Ali posljedice takve operacije mogu biti vrlo katastrofalne, pa je bolje kliknuti desnom tipkom miša na ikonu upravljačkog programa u Exploreru, pronaći u "Svojstvima" naziv proizvođača, po kojem možete odrediti koja je vrsta aplikacije/hardvera instalirana ovaj drajver, i deinstaliraj ga na civiliziran način. Istina, ovdje postoji jedno "ali".

Pokretač je označen na donjoj slici. g400m.sys, koji dolazi uz Matrox G450 karticu, a iako Matrox nije nimalo slaba tvrtka, nije dobio digitalni potpis (ili ga Microsoft nije dao, ili se sam Matrox nije htio zamarati). Naravno, nakon što ga uklonite iz sustava, morat ćete zaboraviti na SVGA način rada. Međutim, možete otići na web stranicu Matrox i preuzeti najnoviju verziju upravljačkog programa (već je digitalno potpisan). Samo ovdje... i potpisane i nepotpisane verzije sadrže mnoge kobne pogreške, posebno, kao rezultat određenih okolnosti, kada se pokušava prebaciti u način preklapanja, sustav se ruši u BSOD, budući da upravljački program pokušava osloboditi već oslobođenu memoriju.

Dakle, prisutnost/odsutnost digitalnog potpisa sama po sebi ne znači ništa, a čak i ako koristimo samo potpisane upravljačke programe, to nam ne daje nikakva jamstva stabilnosti.

Tu prelazimo na drugi dio članka, odnosno testiranje vozača u uvjetima bliskim borbenim.

Drva za ogrjev dajemo pravi test

DDK uključuje prekrasan uslužni program Vozač Verifikator, koji stvara najteže uvjete za vozače, koji graniče s ekstremnim i samoubojstvom, u kojima je vjerojatnost neuspjeha maksimalna, a ime neispravnog vozača određeno je s najvećom točnošću (čak i ako ne pati zbog nedostataka u razvoju, ali uništava strukturu podataka tuđih vozača).

Važno je napomenuti da Vozač Verifikator- Ovo nije lijek, već samo dijagnostičko sredstvo. I dalje vas neće spasiti od kvarova (naprotiv, povećat će njihov intenzitet za nekoliko redova veličine), ali će pomoći u identificiranju "lukog" vozača s dovoljnim stupnjem pouzdanosti.

Dakle, pokrećemo verifier.exe, vidimo prozor Vozač Verifikator Menadžer, idite na karticu Postavka i pomaknite radio gumb na poziciju Provjeri sve upravljačke programe, nakon čega pritisnemo gumb “Preferirana postavka” koja postavlja sljedeće vrste provjere:

  • Posebna bazen– vozačima koji se testiraju bit će dodijeljeno posebno memorijsko područje za dodjelu, koje ne radi vrlo brzo, ali je sposobno detektirati većinu vrsta uništavanja vlastitih i tuđih podataka.
  • Sila IRQL provjeravanje. IRQL je razina zahtjeva za prekid. Najčešća pogreška koju čine programeri upravljačkih programa jest pokušaj pristupa memoriji na IRQL razini na kojoj upravitelj stranica ne radi. A ako se tražena stranica iznenada izbaci na disk, sustav će se pretvoriti u plavi ekran s natpisom "IRQL_LESS_OR_EQULAR". Forsiranje ovog načina rada prisiljava stranice upravljačkog programa na brisanje na disk tako da se greška u dizajnu pojavljuje u 100% slučajeva.
  • Niska resurs simulacija Korisno ga je instalirati da vidite kako će se upravljački program ponašati u slučaju katastrofalnog nedostatka resursa sustava, ali ne morate to učiniti, već je bolje ostaviti potvrdni okvir Pool tracking (praćenje ispravnog rukovanja memorijom bazen). Ulazno/izlazne pogreške (I/O provjera) čine neznatan dio svih grešaka, tako da je položaj ovog checkboxa općenito potpuno nekritičan.

Nakon što ste završili s odabirom postavki, kliknite gumb "Primijeni" i, kako nam je predloženo, ponovno pokrenite sustav.

Odmah nakon početka dizanja, sustav će se osjetno usporiti, što i treba biti, budući da kernel obavlja puno više provjera nego inače. Kada se otkriju pogreške, plavi zaslon smrti treperi s imenom upravljačkog programa i nekim drugim informacijama koje su korisne za programere, ali beskorisne za nas. Sve što možemo učiniti je ažurirati upravljački program na najviše Najnovija verzija ili odbiti korištenje programa (hardvera) koji ga koristi. Zapravo, imamo malo više mogućnosti za paljenje mokrog drva, ali o tome kasnije.

Status provjere možete saznati u bilo kojem trenutku pokretanjem verifier.exe. Kartica Driver Status ispisuje statuse svih otkrivenih drivera uz objašnjenje trenutne situacije. Učitano stanje znači da ovaj vozač je preuzeto i potvrđeno od strane barem, jednom (ali možda ne u potpunosti, to jest, nisu svi dijelovi vozača imali vremena za rad). Status Unloaded znači da je upravljački program učitan, verificiran (eventualno djelomično) i istovaren od strane sustava/programa koji ga koristi ili na vlastiti zahtjev. Potonje je posebno tipično za drivere zaostale s opreme koja je uklonjena barbarskim izvlačenjem kartice za proširenje iz utora, odnosno bez deinstalacije. Preživjeli vozač skenira autobus, pokušavajući pronaći "svoj" hardver, ne uspijeva s pretraživanjem, a zatim se usput istovaruje iz memorije, usporavajući pokretanje sustava (ponekad vrlo značajno) i sukobljavajući se s drugim upravljačkim programima. Moral: oprema mora biti uklonjena iz sustava prema svim pravilima! Međutim, nije svaki status Unloaded znak nenormalne situacije, a prije nego što izbrišete vozača s takvim statusom, morate skužiti o kakvom se sobu radi i odakle je uopće došao.

Status Never Loaded označava da ovaj upravljački program još nije učitan, što znači da nije provjeren, stoga morate pričekati prije pokretanja razne programe koji mogu biti povezani s njim. Međutim, neki se upravljački programi (osobito neispravno deinstalirani) ne učitavaju i, shodno tome, nikad se ne provjeravaju.

Nakon rada sa sustavom u modu tvrde provjere neko vrijeme (od nekoliko sati do nekoliko dana), identificirat ćemo gotovo sve neispravne upravljačke programe od kojih smo prethodno patili i zapisati njihova imena na komad papira.

Pomoću istog verifikatora možete vratiti sustav u normalni način rada (to jest, bez dodatnih provjera koje gube performanse). Vraćamo se na karticu Setting, pomičemo radio gumb na poziciju Verify selected drivers (nijedan upravljački program ne bi trebao biti odabran), kliknemo na “Reset All”, zatim na “Apply” i ponovno pokrećemo sustav. Svi! Sustav sada radi normalnom brzinom, ali bez provjera.

Što učiniti s vlažnim drvetom za ogrjev?

Ali zapravo, što možete učiniti s neispravnim upravljačkim programom? Hakeri koji znaju držati debugger u rukama, ako imaju dovoljno slobodnog vremena, mogu ga rastaviti (srećom, driveri su obično malih dimenzija), pronaći grešku i smisliti način kako je popraviti, ali... .ovo oduzima previše vremena.

Bacanje upravljačkog programa (zajedno s hardverom/programom koji ga koristi) također nije opcija. Mada ako se zna da su za to krivi plavi ekrani smrti zvučna kartica stranac Kineski proizvođač vrijedi 20 dolara, onda imamo vrlo jaku motivaciju da ga zamijenimo nečim vrednijim. Ali to je, strogo govoreći, već svima jasno i Dodatni Komentari ne treba.

Ali ne znaju svi da je veliki broj padova i plavih ekrana smrti posljedica činjenice da je upravljački program razvijen (i testiran) u jednoprocesorskom okruženju instaliran na dvoprocesorskom stroju. Pod "dvoprocesorskim" ovdje mislimo i na pravu platformu s dva kamena i na Hyper-Threading/višejezgrene procesore. Poznato (i potvrđeno) veliki iznos testovi) koji kućno računalo dva procesora su apsolutno beskorisni, jer u velikoj većini aplikacija praktički nema povećanja performansi.

Stoga, ako je sustav nestabilan i iz jednog ili drugog razloga nemoguće se riješiti neispravnog upravljačkog programa, možete pokušati ući u BIOS Setup, pretvarajući svoj "virtualni dvoprocesorski" stroj u jednoprocesorski . Sličan učinak može se postići otvaranjem datoteke boot.ini (na računalima s Windows NT/2000/XP nalazi se u korijenskom direktoriju logički pogon, na kojem je sustav instaliran) i dodajući mu ključ /ONECPU, zatim ponovno pokrenite sustav u nadi da će pogreške nestati.

Ispis 1

Primjer tipične datoteke boot.ini


vrijeme čekanja=30

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

Ispis 2

Konfiguriramo sustav da koristi samo jedan procesor od svih dostupnih


vrijeme čekanja=30
zadano=multi(0)disk(0)rdisk(0)partition(1)\WINNT
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows 2000 Pro" /fastdetect /SOS /ONECPU

Ali na Windows Vidik ne postoji datoteka boot.ini, i iako je moguće (privremeno) konfigurirati njezine postavke pokretanja pomoću posebna korisnost, Microsoft planira potpuno napustiti ovu rupu, tako da će ostati samo BIOS Setup. Međutim, što se tiče Vidik, tada će do trenutka kada pređu na njega, programeri upravljačkih programa vjerojatno nabaviti višeprocesorske strojeve (budući da jednostavno neće biti drugih za prodaju) i testirat će svoje kreacije u višeprocesorskom okruženju.

Još jedna suptilna točka. Upamtite, gore smo rekli da je najčešća pogreška programera upravljačkih programa pristup preemptible memoriji na IRQL razini na kojoj upravitelj stranica ne radi, a ako tražena stranica nije u memoriji, dolazi do rušenja? Očigledno rješenje ovdje bi bilo povećanje RAM memorija do volumena pri kojem se praktički nijedna stranica ne izbacuje na disk. Po trenutnim cijenama memorije, gotovo svatko si može priuštiti kupnju nekoliko novih memorijskih kartica. Ali postoji pristupačnije (i elegantnije) rješenje problema. Ako je parametar DisablePagingExecutive, koji se nalazi u susjednoj matičnoj poslovnici HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement, jednak je jedan (nula prema zadanim postavkama), nuklearne komponente neće biti preuzete. Stoga jednostavno pokrećemo "Uređivač registra", mijenjamo ovaj dragi parametar i ponovno pokrećemo (promjene stupaju na snagu tek nakon ponovnog pokretanja), nadajući se da će to pomoći u rješavanju problema kvarova.