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

Postoji mnogo razloga za BSOD, ali u ovom članku ćemo razmotriti problem koji nastaje zbog sukoba instaliranih drajvera. Moglo bi biti instaliran drajver ili oštećena. Rješavanje BSOD problema može biti prilično jednostavno ako je to samo problem s upravljačkim programom i znate koji je to. Možete ponovo instalirati drajver ili ga ažurirati, vratiti se na stara verzija ili se riješite aplikacije koja je instalirala drajver na vašem računaru tako što ćete ga fizički ukloniti. Problem je u tome što nije uvijek moguće otkriti koji je vozač „krivac“, čak ni nakon proučavanja svih podataka sa plavi ekran. Ali postoji izlaz. Ako nemate puno znanja i iskustva, ali postoji potreba za provjerom drajvera, za takve slučajeve možete koristiti poseban alat za verifikaciju Verifier.exe ugrađen u OS. Postojeći opis u bazi znanja Microsofta predstavljen je pomoću složenih tehničkih pojmova koji nisu uvijek poznati čak ni iskusnim korisnicima. Stoga ovaj članak predstavlja kratku listu manipulacija potrebnih za završetak zadatka. Pokretanje Driver Verifier-a Nakon otvaranja menija „Start“, unesite upit „Pokreni“ u polje za pretragu i kliknite na rezultat koji se pojavljuje na vrhu. U prozoru koji se pojavi morate unijeti naredbu “ verifikator” (bez navodnika) i potvrdite klikom na “OK”.
Pojavljuje se okvir za dijalog File Verification Manager. U prvom dijalogu morate odabrati stavku „Kreiraj nestandardne parametre (za programski kod)“. Kliknite na “Dalje”.
Sljedeći korak je odabir pojedinačnih parametara za testiranje drajvera. Da bismo to učinili, izvršit ćemo sljedeće manipulacije: „Odaberite pojedinačne parametre iz puna lista" - "Dalje".
Nakon dovršetka koraka, trebali biste dobiti dijaloški okvir sa listom parametara testiranja. Označite sve okvire osim stavke “Simuliraj nedostatak resursa”. Kliknite na Next.
Posljednji korak u ovom dijelu je dati komandu dispečeru automatski odabir nepotpisani drajveri. Odaberite "Automatski odaberite nepotpisane upravljačke programe." Kliknite na Next.
Dešava se da menadžer nije otkrio nepotpisane drajvere. Zatim koristite funkciju selektivne provjere drajvera, o kojoj će biti riječi kasnije. Rad sa nepotpisanim drajverima Ako se otkriju nepotpisani drajveri, menadžer će ih prikazati u obliku liste.
To mogu biti upravljački programi uređaja ili upravljački programi aplikacija. Kada se otkriju nepotpisani drajveri, nema potrebe da zatvorite menadžer i kliknete na dugme „Završi“. Prvo, hajde da proverimo da li postoje ažurirani drajveri. Potražite ažurirane drajvere Da biste provjerili, morate izvršiti sljedeće korake: 1. Upravljački program aplikacije je na listi. U tom slučaju morate posjetiti web stranicu proizvođača aplikacije da provjerite ima li ažuriranih upravljačkih programa. U slučaju ažurirana verzija nedostaje upravljački program, pokušajte da deinstalirate aplikaciju. Ne plašite se, uvek ga možete ponovo instalirati kasnije. Ali ovo će biti odlična provjera: ako se kritične greške više ne pojavljuju, razlog je bio ovu aplikaciju. 2. Lista sadrži upravljački program uređaja. U ovom slučaju (ako imate Windows Vista), pokrenite centar za ažuriranje i omogućite pretragu za novom funkcijom drajvera. 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; vjerovatno je da će novi upravljački program biti tamo. Nakon ažuriranja drajvera ili aplikacije, zatvorite upravitelja skeniranja (dugme Otkaži), ponovo pokrenite sistem i pričekajte da se OS učita. Ako su kritične greške prestale, ažuriranje upravljačkih programa ili aplikacija ih je eliminiralo. Uklanjanje drajvera 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 da instalira drajver iz skladišta, ali nije činjenica da će standardni drajver to učiniti. Ako niste sigurni da li je potrebno ukloniti bilo koji upravljački program, ne biste ga trebali uklanjati. Pokrenite Device Manager tako što ćete uraditi sledeće: Start – Pokreni – devmgmt.msc– Uđi. Nakon što je pronašao potreban uređaj, kliknite desnim tasterom miša na njega i kliknite na Svojstva – Driver – Deinstaliraj. Provjera nepotpisanih drajvera PAŽNJA! Nakon provjere nepotpisanih drajvera, može se dogoditi da se sistem neće pokrenuti. Ispod je opis radnji poduzetih u ovoj situaciji. Ako niste sigurni da želite da uklonite upravljački program i da ipak nastavite sa skeniranjem, kliknite na dugme Završi u menadžeru skeniranja. Kada se od vas zatraži da odaberete fizički disk, odaberite onaj na kojem je instaliran OS, a zatim ponovo kliknite Završi. Vidjet ćete poruku s tekstom: "Morate ponovo pokrenuti računar da bi promjene stupile na snagu." Tiho zatvorite sve aplikacije i ponovo pokrenite sistem. Ako se sistem ne pokrene i pojavi se plavi ekran sa opisom greške, to znači da je upravljački program problematično pronađeno. Nakon ponovnog pokretanja računara, prije učitavanja OS, kliknite F8 verifier.exe/resetverifier.exe
Prilagođena provjera vozača Ponovo pokrenite Driver Verifier Manager i izvršite prethodne korake do tačke prikazane ispod.
Odaberite "Odaberi ime drajvera sa liste". Sljedeći korak će biti prozor za odabir drajvera za provjeru. Ne biste trebali odabrati sve drajvere 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 verifikacije nekoliko puta, ali sa malim brojem vozača. Ovo će vam uštedjeti vrijeme i resurse. Prije svega, provjerimo drajvere koji su nedavno ažurirani ili jednostavno problematične drajvere (driver antivirusni program, firewall, virtuelni disk ili automobile). Neka sljedeći korak bude provjera drajvera koje nije proizveo Microsoft. Provjerite preostale drajvere 10-15 odjednom.
Odaberite neophodni drajveri i kliknite na dugme "Gotovo". Kada se od vas zatraži da odaberete fizički disk, odaberite onaj na kojem je instaliran OS, a zatim ponovo kliknite Završi. Pojavljuje se poruka u kojoj se traži da ponovo pokrenete sistem. Ponovo pokrenite računar. Ako se nakon ponovnog pokretanja pojavi plavi ekran sa porukom o grešci, to znači da je pronađen upravljački program koji uzrokuje problem. Nakon ponovnog pokretanja računara, prije učitavanja OS, kliknite F8 i odaberite "Uleti siguran način" Kada se prijavite, kliknite na dugme Start i ukucajte Run/Search verifier.exe/reset. Ako nije došlo do problema i sistem je pokrenut u standardnom režimu, onda nepotpisani drajveri ne stvaraju probleme i morate da proverite druge drajvere. Ponovo pokrenite Driver Verifier Manager ( verifier.exe) i odaberite "Prikaži informacije o trenutno potvrđenim drajverima."
Ponovite skeniranje za sve preostale drajvere. Završava se verifikacija vozača Ako provjera svih drajvera ne otkrije uzroke kritičnih grešaka, najvjerovatnije problem nije u drajverima. Problem možda nije softver, već hardver vašeg računara. Najvjerovatnije 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 drajvera. Dijagnosticirajte RAM i HDD.

Neispravan drajver može uzrokovati mnoge probleme na vašem računaru. Glavni znak da vaš računar ima neispravan drajver je plavi ekran smrti, koji je često uzrokovan isključenjem drajvera.

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

Ponekad Windows obavještava korisnika da je jedan od drajvera pokvario. Međutim, dešava se da sistem ne može da otkrije u čemu je problem, pa ne prikazuje poruke o grešci, zbog čega radi sporije ili ne po potrebi. U ovom slučaju Menadžer za provjeru vozača(Driver Verifier) ​​stvara dodatno opterećenje na drajverima sistema, pokušavajući time uzrokovati pad. Ako jedan od drajvera pokvari, onda Menadžer za provjeru vozačaće prijaviti problem koristeći plavi ekran.

Upozorenje

Prije upotrebe Menadžer za provjeru vozača Imajte na umu da vam alat može ograničiti korištenje vlastitog računara. Zbog Menadžer za provjeru vozača aktivira plavi ekran smrti kada otkrije neispravan drajver, što može uzrokovati velike probleme pri pokretanju Windowsa.

Ako nemate način da uđete u Windows da biste onemogućili testiranje drajvera, računar će raditi u "boot -> load -> crash" petlji iz koje je prilično teško izaći. Funkcija automatskog popravka je jedna od rijetkih opcija za pristup Windowsu, ali je bolje izbjeći ovu situaciju.

Prije korištenja Driver Verifier-a, provjerite imate li barem jedan od sljedećih izlaza u slučaju nužde:

  • Možete ući u siguran način rada. Prije pokretanja uđite u Safe Mode Windows boot obično se radi pritiskanjem F8 više puta dok se računar pokreće. Međutim, novi računari se pokreću tako brzo da jednostavno nećete imati vremena da pritisnete F8 u pravo vrijeme.
  • Da li ste kreirali tačku vraćanja sistema pre upotrebe? Menadžer za provjeru vozača. Također je preporučljivo imati instalaciju Windows disk tako da možete vratiti svoj računar na fabrička podešavanja.

Kako pokrenuti Driver Verifier Manager

Prije nego počnete upute za upotrebu Menadžer za provjeru vozača, obavezno pročitajte gornji dio "Upozorenje". Piše kako izbjeći beskonačno učitavanje Windowsa.

Kada ste sto posto sigurni da imate plan za izlaz u slučaju nužde, kliknite na " Windows tipka + R“ i uđite cmd u dijaloškom okviru Izvrši", a zatim kliknite na " uredu».

U komandni prozor unesite:

verifikator

U iskačućem prozoru odaberite " Kreirajte nestandardne parametre (za programski kod)", a zatim kliknite na " Dalje».

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

Na sljedećem ekranu odaberite " Izaberiimena vozača sa liste" i pritisnite " Dalje».

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

Kada pritisnete " Spreman", Windows će od vas zatražiti da ponovo pokrenete računar. Nakon što se računar uključi, nastavite da ga koristite kao i obično. Ako dobijete plavi ekran, obratite pažnju na poruku o grešci i ponovo pokrenite računar.

Kada identificirate neispravan upravljački program, možete ga onemogućiti Menadžer za provjeru vozača jedan od dva načina. Možete ponovo otvoriti komandnu liniju, unesite komandu verifikator, i odaberite " Uklonite postojeće postavke».

Također možete otvoriti komandnu liniju i upisati:

Verifier /bootmode resetonbootfail

Nakon što onemogućite Driver Verifier Manager, ponovo pokrenite računar. Ako se računar ne uključi, upotrijebite jedan od izlaza u slučaju nužde o kojima smo govorili u odjeljku "Upozorenje".

Zaključak

Ako mislite da je jedan od drajvera neispravan, ali ne možete da shvatite koji, onda Menadžer za provjeru vozača biće odličan pomoćnik.

Međutim, trebali biste biti spremni na mogućnost da se računar neće moći uključiti nakon testiranja drajvera, pa razmislite o izlazu iz rezervne kopije sa vanredna situacija, na primjer, idite u siguran način rada ili pokrenite Windows tačku vraćanja.

Da li ste ikada imali problema sa drajverima na računaru? Kako ste uspjeli pronaći neispravnog vozača? Recite nam u komentarima ispod!

Uslužni program Driver Verifier (verifiker.exe) je dizajniran da analizira problematične drajvere kada analiza deponija memorije nakon BSOD-a ne dozvoljava pronalaženje problematičnog drajvera. Driver Verifier je „spasitelj života“ u najproblematičnijim situacijama.

Sa Driver Verifierom možete:

    stres test vozača (simulirani su uslovi nedostatka resursa);

    kontrola prelivanja bafera;

    kontrola nad greškama koje nastaju zbog neispravnog rada na datom IRQL-u;

    I/O analiza grešaka;

    otkrivanje zastoja itd.

Uslužni program Driver Verifier je vrlo koristan kada:

    administrator (korisnik) sumnja da ovaj drajver uzrokuje pad sistema i želi dalje provjeriti da li je to zaista tako;

    programeri drajvera žele da testiraju svoje drajvere;

    Kada analizirate dump nakon BSOD-a, nemoguće je pronaći problematični drajver.

Jedan od najtežih slučajeva analize memorijskih dumpova je kada upravljački program greškom prepiše podatke prije ili nakon završetka bafera koji je dodijelio. U takvim slučajevima dolazi do grešaka u kernelu OS-a (na primjer, analiza dumpa nakon BSOD-a pokazuje da se greška dogodila u ntoskrnl.exe).

da vidimo sličan slučaj na konkretnom primjeru. Koristeći NotMyfault uslužni program, izazivamo BSOD - „Prelivanje međuspremnika“.

Rezultat analize deponije koristeći windbg je u prilogu.

Prema analizi deponije dobijamo:

1. Arg1: 00000007, pokušaj oslobađanja bazena koji je već bio oslobođen (učinjen je pokušaj oslobađanja već oslobođenog bazena)

2. IMAGE_NAME: ntkrpamp.exe (suština samog sistema ima neke veze sa ovim)

Kod takvih grešaka verifikator priskače u pomoć.

Pokreni verifikator.

Odaberite “Kreiraj nestandardne parametre”. Zatim odaberite “Odaberi parametre sa liste”.

Odaberite sve osim "Simuliraj nedostatak resursa".

Zatim izaberite „Odaberi neučitane drajvere za ovu listu“ i navedite putanju do drajvera myfault.sys, koji se nalazi u istom direktorijumu kao i program NotMyfault.exe.

Zatim označite drajver i kliknite na „Završi“. Nakon toga moramo ponovo pokrenuti računar.

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, jer je unaprijed nepoznato ko će i kada pokušati raditi s ovom memorijom. Kao što možete vidjeti na slici ispod, zahvaljujući verifikatoru, sistem može identificirati problematični upravljački program.

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

Program za verifikaciju čini tako da upravljački program koji se testira, umjesto obične memorije dostupne u kernelu, koristi posebno spremište dizajnirano da otkrije takvu grešku. Zahvaljujući tome, možete pronaći upravljački program koji uzrokuje BSOD.

Ako pogledamo rezultate analize, vidimo sljedeće.

1. DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION (d6) – ovo je jedna od grešaka koju generiše verifikator

2. IMAGE_NAME: myfault.sys – drajver koji je izazvao problem.

Stoga, ako vam analiza deponije memorije nakon BSOD-a ne dozvoljava da pronađete „drajver koji je krivac“, koristite program verifier.exe (instalirajte sve provjere, osim nedostatka memorije).

Najjednostavniji način da koristite Driver Verifier (verifiker.exe) je da ga pokrenete sa sljedećim parametrima:

verifikator /standardni /driver ime datoteke drajvera

Utility Vozač Verifier uključeno u sve Windows verzije, počevši od Windows XP, i omogućava vam da provjerite drajvere, identifikujete problematične drajvere koji uzrokuju plavi ekran smrti (BSOD- Plavi ekran smrti) i rekord detaljne informacije o problematičnom drajveru u memoriji za dalju analizu. Uslužni program podvrgava provjerene drajvere raznim “ stres testovi“, simulirajući razne ekstremne uslove: nedostatak memorije, I/O kontrola, IRQL, zastoji, DMA provjere, IRP, itd. simuliraju se situacije koje se rijetko dešavaju na produktivnim sistemima i prati se ponašanje vozača u njima. Svrha uslužnog programa je da identifikuje situacije u kojima vozač može dovesti do pada sistema sa BSOD-om.

Poziva se izvršna datoteka uslužnog programa Driver Verifier Verifier.exe i nalazi se u direktoriju %windir%\system32. Postoje dvije opcije za korištenje uslužnog programa: iz komandne linije ili korištenjem GUI.

Da biste omogućili režim verifikacije drajvera u Windows 8, pokrenite uslužni program Driver Verifier tako što ćete ukucati

Verifier

Sa liste zadataka izaberite Kreirajte prilagođene postavke (za programere koda) i pritisnite Sljedeći.

Provjerite jesu li odabrane opcije Standardne postavke, Prisiliti I/O zahtjeve na čekanju I IRP Logging. Kliknite Sljedeći.

Sljedeće odaberite .

Sortirajte sadržaj tabele klikom na zaglavlje kolone "Dobavljač" i izaberite one koje želite da testirate sa liste drajvera. U našem primjeru ćemo pokrenuti provjeru za sve drajvere koje nije razvio MicrosoftCorporation. Odabrali smo drajvere: e1g6032e.sys (Intel) i lsi_sas.sys (LSI).

Bilješka. Dostupnost vozača digitalni potpis Microsoft ukazuje da je drajver na određeni način testiran na stabilnost i da njegov kod od tada nije modifikovan. Zbog toga se ne preporučuje niti koristi.

Sve što treba da uradite je da kliknete Završi i pojaviće se prozor sa informacijama u kojem se navodi da morate ponovo pokrenuti sistem da bi promene stupile na snagu.

Savjet. Način provjere vozača također se može omogućiti iz komandna linija. Na primjer, da pokrenete Driver Verifier sa standardne postavke za drajver myPCDriver.sys, komanda će izgledati ovako: verifier /standard /driver myPCDriver.sys

Nakon ponovnog pokretanja, sistem se pokreće u mod za provjeru drajvera. Potvrda vozača radi pozadini, vršeći različite vrste testiranja odabranih drajvera za identifikaciju grešaka. Koristite računar kao i obično i sačekajte da se pojavi BSOD. Ako znate koje su radnje prethodno izazvale pad sistema, ponovite ih. Ako dođe do BSOD-a, morate kopirati datoteku s dumpom memorije (podrazumevano je sačuvana u direktorijumu C:\Windows\Minidump\*.dmp) i analizirati je pomoću Windbg-a ili ekvivalenta.

Bitan! Nakon aktiviranja režima za otklanjanje grešaka u drajveru pomoću Driver Verifier-a, ovaj režim će raditi sve dok ne bude nasilno onemogućen.

Ako se problem ne ponovi u roku od 1-2 dana, onda sa određenim stepenom sigurnosti možemo zaključiti da upravljački programi koji se testiraju nisu uzrok pada sistema i da se mod skeniranja za njih može onemogućiti.

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

Možete onemogućiti Driver Verifier iz komandne linije:

Verifier /reset

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

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

Ako se sistem ne pokrene u sigurnom načinu rada, pokušajte obrisati sljedeće ključeve registratora pokretanjem s diska za pokretanje:

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

Možete provjeriti trenutni status uslužnog programa Driver Verifier na ovaj način.

Upozoravamo vas da su svi eksperimenti sa drajverima opasni i mogu oštetiti sistem. Bolje je unaprijed napraviti rezervnu kopiju sistema, a zatim ne držati prste uklanjanjem drugog sumnjivog drajvera iz Windowsa.

I čim se ne grde Windows od Microsoft, nazivajući jadnicu istovremeno sporim, neuobičajenim pa čak i nestabilnim. Ali nikome se ne žuri da ga se odrekne, a općenito je malo vjerovatno da će ga se ikada odreći. Stoga, umjesto da grdimo jadne programere i pokrećemo besmislene plamenove, bilo bi dobro shvatiti zašto, u stvari, sistem greši? Reći ću ti malu tajnu. U ozloglašenim ekranima smrti i nestabilnog rada Windows u velikoj većini slučajeva su krivi drajveri trećih strana, a sam operativni sistem nema apsolutno nikakve veze s tim. Sada ćemo vam reći kako otkriti takve drajvere i ukloniti ih iz sistema.

Defekti u dizajnu vozača mogu se kretati od rušenja do plavog ekrana smrti ( BSOD– Plavi ekran smrti) i do usporavanja računara i čudnog ponašanja nekih aplikacija koje su potpuno nepovezane sa drajverom.

Plavi ekran smrti je izvanredan (bez ironije!) po tome što jasno signalizira prisustvo ozbiljnog problema i daje savjet gdje kopati. Često (ali ne uvek) se ime vozača koji je „prekršio“ prikazuje direktno u gornjem desnom uglu plavog ekrana smrti. Međutim, možda ga nema, ili, što je još gore, može biti ime potpuno nepovezanog vozača.

Na primjer, jedan prilično uobičajen drajver za grafičku karticu Matrox G450 teži uništavanju osnovne strukture grafički podsistem Windows 2000 , što rezultira BSOD-om koji prikazuje ime sistemskog drajvera win32k.sys, koji implementira značajan dio USER i GDI funkcija i koji, naravno, nema nikakve veze s tim. Dakle, tumačenje plavog ekrana očitavanja smrti je magija, intuicija, nauka i umjetnost - od svega po malo.

Pored kvarova drajvera, plavi ekrani smrti mogu biti uzrokovani i hardverskim kvarovima, na primjer, overklokovanim procesorom, neispravnim RAM-om ili krivim kontrolerom. tvrdi disk, PCI kartica nije do kraja umetnuta u slot, labav kontakt u jednom od konektora, loše napajanje, nabrekli elektrolitički kondenzator na matična ploča. A potonji se duri iz raznih razloga: zbog pregrijavanja od obližnjeg procesora, nedostatka keramičkih kondenzatora koje proizvođač "ne prijavi" (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 pegla na kojoj sedimo u potpunosti ispravna. Kako se to može uraditi?

Obračun sa gvožđem

Plavi ekrani smrti uzrokovani kvarovima hardvera su spontani, pojavljuju se nepredvidivo i bez obzira na bilo kakve specifične radnje korisnika. Aplikacione aplikacije također počinju proizvoditi kritične greške na raznim mjestima, a kodovi grešaka, adrese i druge informacije koje izdaje sistem bit će različite u svim slučajevima! Usput, drajveri koji rukuju asinhronim zahtjevima sa I/O uređaja, na primjer bežične mreže, ponašaju se skoro potpuno isto. Plavi ekrani smrti uzrokovani neispravnim drajverima obično se javljaju prilikom izvođenja određenog skupa radnji i sadrže manje-više konstantne informacije.

Da biste otklonili sve sumnje sa hardvera, dovoljno je spojiti još jedan hard disk na sistem i instalirati čist Windows i raditi na tome neko vrijeme. Ako plavi ekrani smrti ne nestanu, to znači da je hardver zaista kriv i da je vrijeme da ga promijenite. Pronalaženje neispravnih komponenti je tema za posebnu raspravu, koju ćemo ostaviti za sljedeći put, ali za sada zasučite rukave i uhvatite se u koštac sa ovim podmuklim vozačima.

Ogrevno drvo bez sertifikata ide direktno u ložište

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

Da spriječimo ovakav haos, Microsoft još u davnim vremenima uveo je proceduru certificiranja vozača za usklađenost sa zahtjevima koji su im nametnuti, nakon čega se vozaču izdaje digitalni potpis. Ili... nije izdat, a poslat je na doradu. I iako je certifikacija samo formalna procedura koja ne garantuje odsustvo fatalnih grešaka i razvojnih nedostataka, ipak eliminiše neke od iskreno „pionirskih” pokretača.

U idealnom slučaju, samo digitalno potpisane drajvere treba držati na sistemu. I iako digitalni potpis nije polisa osiguranja, njegovo prisustvo već ukazuje na određeni nivo kulture razvoja. Drajveri bez digitalnog potpisa su gori od svinje u džepu i treba ih se riješiti ako je moguće (posebno jer su mnogi od njih zlonamjerni softveri instalirani putem rootkita ili agresivnih odbrambenih mehanizama koji prodiru duboko u sistem i uzrokuju njegovu nestabilnost). Ukratko, nemojmo se upuštati u demagogiju, ali pokušajmo odgovoriti na jedno jednostavno pitanje: kako napraviti listu drajvera bez digitalnog potpisa?

Uslužni program će nam pomoći u tome sigverif.exe, uključeno u standardni komplet za isporuku operativni sistem i nalazi se u WINNT\System32 direktoriju. Pokrećemo ga i vidimo dijaloški okvir. Kliknite na dugme „Napredno“ i na kartici „Pretraga“ postavite kriterijume odabira pomeranjem radio dugmeta sa pozicije „Obavesti o odjavi“ sistemske datoteke"(gdje je po defaultu čamio) na poziciju "Traži druge datoteke koje nisu digitalno potpisane." Nakon toga, u “Opcijama pretraživanja” otvorite polje “Traži fajlove sljedećeg tipa” i odaberite “*.sys”, a ispod naznačite mapu za pretragu “C:\WINNT” i obavezno označite “Uključujući potfascikle” potvrdni okvir.

Zapravo, striktno govoreći, drajveri ne moraju imati sys ekstenziju i nisu uvijek ograničeni na WINNT direktorij, jer se nalaze u direktorijima “svojih” aplikacija, a neke aplikacije čak pohranjuju drajvere... unutar sebe! Odmah nakon pokretanja (ili u bilo koje drugo vrijeme), pohranjuju fajl na disk u trenutnom ili privremenom direktoriju, učitavaju drajver u memoriju i... odmah ga brišu sa diska! To rade ne samo zlonamjerni virusi, već i prilično respektabilni programi, kao što su neki uslužni programi poznatog istraživača Windows subsurface Marka Russinovicha.

Stoga, radi čistoće eksperimenta, ne bi nam škodilo da dobijemo listu drajvera koji se nalaze u ovog trenutka u memoriji i uporedite ih sa drajverima koji se nalaze na disku. Riječi “trenutno” su ključne, jer se drajveri mogu besplatno preuzeti/skinuti bez ponovnog pokretanja operativnog sistema. Preporučljivo je izvršiti ovu operaciju nekoliko puta pokretanjem uslužnog programa drivers.exe iz komandne linije, koji je dio DDK-a, koji se može preuzeti sa Microsoft servera. Pokrenut bez ikakvih prekidača koristeći linijsku komandu, uslužni program drives.exe ispisuje sve informacije na ekran, što nije dobro, jer obično ima puno drajvera u sistemu i oni ne staju na ekran. Međutim, religija nam omogućava da preusmjerimo izlazni tok na tekstualnu datoteku(drivers.exe >ime-datoteke.txt), svako može otvoriti uređivač teksta- bilo sa Wordom ili sa notesom. Zatim ostaje samo da odaberete vertikalni blok (što Notepad ne dozvoljava) i dobijete listu drajvera. Direktno iz kernela operativnog sistema!

Ako se barem jedan od ovih drajvera ne nalazi u direktoriju C:\WINNT\, tada njegov digitalni potpis neće biti provjeren! Naravno, takav vozač odmah privlači pažnju i postavlja se razumno pitanje: odakle dolazi? Prvo, skeniramo sve direktorije na disku; ako nije tu, postavite tačku prekida na funkciju CreateFileW u Soft-Ice-u i pogledajte argumente koji su joj proslijeđeni. Prije ili kasnije naići ćemo na naš buggy drajver, nakon čega možemo samo pogledati donji desni ugao Soft-Ice ekrana, gdje je prikazano ime procesa koji ga je generirao. Za više detalja pogledajte knjigu „Tehnike za otklanjanje grešaka u programima bez izvornih tekstova“, čija se elektronska kopija može naći na ftp ili http serveru nezumi.org.ru, kao i na našem disku. I nastavljamo da mučimo komunalnu uslugu sigverif.exe.

Nakon što kliknete na “OK”, “Start”, na ekranu će se pojaviti “termometar” koji pokazuje napredak, a hard disk će početi da šušti svim svojim glavama koje ima. Po završetku radova, sastavit će se lista drajvera bez digitalnog potpisa i prikazati na ekranu.

Neki usijane glave predlažu, da bi se sistem očistio od jeresi, da se uklone svi nepotpisani drajveri - tada će, kažu, svi problemi nestati. Kako se to može uraditi? Najgrublje rješenje je jednostavno ih ukloniti sa diska putem FAR-a ili Explorera (s administratorskim pravima, naravno!). Ali posljedice takve operacije mogu biti vrlo katastrofalne, te je bolje kliknuti desnim tasterom miša na ikonu drajvera u Exploreru, pronaći u "Properties" naziv proizvođača, po kojem možete odrediti koja je vrsta aplikacije/hardvera instalirana. ovaj drajver i deinstalirajte ga na civilizovan način. Istina, ovdje postoji jedno „ali“.

Vozač je istaknut na donjoj slici. g400m.sys, koji dolazi uz Matrox G450 karticu, a iako Matrox nije nimalo slaba kompanija, nije dobio digitalni potpis (ili ga Microsoft nije dao, ili sam Matrox nije htio da smeta). Naravno, nakon što ga uklonite iz sistema, moraćete da zaboravite na SVGA režim. Međutim, možete otići na Matrox web stranicu i preuzeti najnoviju verziju drajvera (već je digitalno potpisan). Samo ovdje... i potpisane i nepotpisane verzije sadrže mnogo fatalnih grešaka, posebno, kao rezultat određenih okolnosti, kada se pokuša prebaciti na preklapanje, sistem pada u BSOD, jer drajver pokušava osloboditi već oslobođenu memoriju.

Dakle, prisustvo/odsustvo digitalnog potpisa samo po sebi ne znači ništa, a čak i ako koristimo samo potpisane drajvere, to nam ne daje nikakve garancije stabilnosti.

Ovdje prelazimo na drugi dio članka, odnosno na testiranje vozača u uslovima bliskim borbenim.

Dajemo drva za ogrjev pravi test

DDK uključuje divan uslužni program Vozač Verifier, što stvara najteže uslove za vozače, na granici ekstremnih i samoubilačkih, pri čemu je verovatnoća kvara maksimalna, a ime neispravnog vozača se utvrđuje sa najvećom tačnošću (čak i ako ne strada zbog nedostataka u razvoju, ali uništava strukturu podataka drugih drajvera).

Važno je to napomenuti Vozač Verifier- Ovo nije lijek, već samo dijagnostički alat. I dalje vas neće spasiti od kvarova (naprotiv, povećat će njihov intenzitet za nekoliko redova veličine), ali će pomoći da se "podmukli" vozač identificira s dovoljnim stupnjem pouzdanosti.

Dakle, pokrećemo verifier.exe, vidimo prozor Vozač Verifier Menadžer, idite na karticu Podešavanje i pomerite radio dugme na poziciju Verify all drivers, nakon čega pritisnemo dugme „Preferred Setting“ koje postavlja sledeće tipove verifikacije:

  • Poseban bazen– drajverima koji se testiraju biće dodeljena posebna memorijska oblast za dodelu, koja ne radi veoma brzo, ali je sposobna da detektuje većinu vrsta uništavanja sopstvenih i podataka drugih ljudi.
  • Force IRQL provjeravam. IRQL je nivo zahtjeva za prekidom. Najčešća greška koju prave programeri drajvera je pokušaj pristupa memoriji na IRQL nivou na kojem upravitelj stranica ne radi. A ako se odjednom ispostavi da je tražena stranica izbačena na disk, sistem će se pretvoriti u plavi ekran s natpisom "IRQL_LESS_OR_EQULAR". Forsiranje ovog režima prisiljava stranice drajvera da se isprazne na disk tako da se defekt dizajna pojavljuje 100% vremena.
  • Nisko resurs simulacija Korisno je da ga instalirate da vidite kako će se drajver ponašati u slučaju katastrofalnog nedostatka sistemskih resursa, ali to ne morate da radite, ali je bolje da ostavite polje za potvrdu Pool tracking (praćenje ispravnog rukovanja memorijom). bazen). Ulazno/izlazne greške (I/O verifikacija) čine beznačajan dio svih grešaka, tako da je pozicija ovog checkbox-a, općenito, potpuno nekritična.

Kada završite s odabirom postavki, kliknite na dugme "Primijeni" i, kako nam je sugerirano, ponovno pokrenite sistem.

Odmah nakon pokretanja sistema, sistem će se primetno usporiti, što i treba da bude, jer kernel obavlja mnogo više provera nego inače. Kada se otkriju greške, plavi ekran smrti treperi sa imenom drajvera i nekim drugim informacijama koje su korisne za programere, ali beskorisne za nas. Sve što možemo da uradimo je da ažuriramo drajver na najviše najnoviju verziju ili odbiti korištenje programa (hardvera) koji ga koristi. Zapravo, imamo malo više opcija za paljenje mokrog drveta, ali o tome kasnije.

Status verifikacije možete saznati u bilo kojem trenutku pokretanjem verifier.exe. Kartica Status drajvera navodi statuse svih otkrivenih drajvera sa objašnjenjem trenutne situacije. Učitano stanje to znači ovaj vozač je preuzeo i verificirao najmanje, jednom (ali možda ne u potpunosti, odnosno nisu svi dijelovi vozača imali vremena za vježbanje). Status Unloaded znači da je drajver učitan, verificiran (moguće djelomično) i uklonjen od strane sistema/programa koji ga koristi ili na vlastiti zahtjev. Ovo posljednje je posebno tipično za drajvere koji su ostali od opreme koja je uklonjena varvarskim izvlačenjem kartice za proširenje iz slota, odnosno bez deinstalacije. Preživjeli vozač skenira magistralu, pokušavajući pronaći "njegov" hardver, ne uspijeva u pretraživanju, a zatim se isprazni iz memorije, usput, usporava pokretanje sistema (ponekad vrlo značajno) i sukobljava se s drugim drajverima. Moral: oprema se mora ukloniti iz sistema po svim pravilima! Međutim, nije svaki status Unloaded znak nenormalne situacije, a prije nego što izbrišete vozača s takvim statusom, morate shvatiti o kakvom je jelenu riječ i odakle je uopće došao.

Status Nikada učitano označava da ovaj drajver još nije učitan, što znači da nije provjeren, stoga morate pričekati prije pokretanja razni programi koji mogu biti povezani s tim. Međutim, neki drajveri (posebno pogrešno deinstalirani) se ne učitavaju i, shodno tome, nikada se ne provjeravaju.

Nakon nekog vremena rada sa sistemom u hard check modu (od nekoliko sati do nekoliko dana), identifikovaćemo skoro sve neispravne drajvere od kojih smo ranije patili i zapisati njihova imena na komad papira.

Možete vratiti sistem u normalan način rada (to jest, bez dodatnih provjera koje gutaju performanse) koristeći isti verifikator. Vraćamo se na karticu Podešavanje, pomeramo radio dugme na poziciju Proveri izabrane drajvere (nijedan drajver ne treba da bude izabran), kliknemo na „Resetuj sve“, zatim na „Primeni“ i restartujemo. Sve! Sistem sada radi normalnom brzinom, ali bez provjera.

Šta raditi s vlažnim drvima za ogrjev?

Ali zaista, šta možete učiniti s neispravnim vozačem? Hakeri koji znaju da drže debuger u rukama, ako imaju dovoljno slobodnog vremena, mogu ga rastaviti (srećom, drajveri su obično malih dimenzija), pronaći grešku i smisliti način da je poprave, ali... Ovo je dugotrajno.

Bacanje drajvera (zajedno sa hardverom/programom koji ga koristi) takođe nije opcija. Mada ako se zna da su krivi plavi ekrani smrti zvučna kartica stranac Kineski proizvođač vredan 20 dolara, onda imamo veoma jaku motivaciju da ga zamenimo nečim vrednijim. Ali to je, strogo govoreći, već svima jasno i Dodatni Komentari ne treba.

Ali ne znaju svi da je ogroman broj padova i plavih ekrana smrti posljedica činjenice da je upravljački program razvijen (i testiran) u jednoprocesorskom okruženju instaliran na mašini s dva procesora. Pod „dual-processor“ ovde podrazumevamo i pravu platformu sa dva kamena i Hyper-Threading/multi-core procesore. Poznato (i potvrđeno) veliki iznos testovi) to kućni računar dva procesora su apsolutno beskorisna, jer u velikoj većini aplikacija praktički nema povećanja performansi.

Stoga, ako je sistem nestabilan i iz ovog ili onog razloga je nemoguće riješiti se neispravnog drajvera, možete pokušati ući u BIOS Setup, pretvarajući svoju "virtuelnu dvoprocesorsku" mašinu u jednoprocesorsku. . Sličan efekat se može postići otvaranjem datoteke boot.ini (na računarima sa Windows NT/2000/XP nalazi se u korijenskom direktoriju logički pogon, na kojem je sistem instaliran) i dodavanjem ključa /ONECPU u njega, a zatim restartujte u nadi da će greške nestati.

Listing 1

Primjer tipične datoteke boot.ini


timeout=30

više(0)disk(0)rdisk(0)particija(1)\WINNT="Windows 2000 Pro" /fastdetect /SOS

Listing 2

Konfigurišemo sistem da koristi samo jedan procesor od svih dostupnih


timeout=30
default=više(0)disk(0)rdisk(0)particija(1)\WINNT
više(0)disk(0)rdisk(0)particija(1)\WINNT="Windows 2000 Pro" /fastdetect /SOS /ONECPU

Ali dalje Windows Vista ne postoji datoteka boot.ini, a iako je moguće (privremeno) konfigurirati njene postavke pokretanja koristeći poseban uslužni program, Microsoft planira u potpunosti napustiti ovu rupu, tako da će ostati samo BIOS Setup. Međutim, što se tiče Vista, onda će do trenutka kada pređu na njega, programeri drajvera vjerovatno nabaviti višeprocesorske mašine (pošto jednostavno neće biti drugih za prodaju) i testiraće svoje kreacije u višeprocesorskom okruženju.

Još jedna suptilna tačka. Zapamtite, gore smo rekli da je najčešća greška koju prave programeri drajvera pristupanje memoriji koja se može isključiti na IRQL nivou na kojoj upravitelj stranica ne radi, a ako tražena stranica nije u memoriji, dolazi do pada? Očigledno rješenje ovdje bi bilo povećanje ram memorija do količine pri kojoj se praktično nijedna stranica ne izbacuje na disk. Po trenutnim cijenama memorije, gotovo svako može sebi priuštiti kupovinu nekoliko novih memorijskih kartica. Ali postoji pristupačnije (i elegantnije) rješenje problema. Ako je parametar DisablePagingExecutive, koji se nalazi u sljedećoj grani registra HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement, je jednako jedan (nula prema zadanim postavkama), nuklearne komponente neće biti preuzete. Stoga jednostavno pokrećemo „Registry Editor“, 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.