Windows 7 hur man identifierar en buggy-drivrutin. Använder Driver Verifier för att fixa en Blue Screen of Death. Söker efter osignerade drivrutiner

En drivrutin är ett program som är nödvändigt för operativ system och olika mjukvaruapplikationer för att interagera med hårdvaruenheter anslutna till den. Hårdvarukomponenter som ljud, grafikkort, skrivare, skannrar och de behöver alla en kompatibel drivrutin för att de ska fungera korrekt.

Alla enhetsdrivrutiner är designade för specifika operativsystem. Till exempel kommer drivrutiner för Windows XP att skilja sig från drivrutiner för Windows Vista. Därför är det nödvändigt att vidta extra försiktighetsåtgärder när du installerar och uppdaterar drivrutiner, eftersom installation av felaktiga eller inkompatibla drivrutiner inte bara kan skada enheten utan även ditt system.

Vanliga orsaker till drivrutinsfel

Några vanliga orsaker till drivrutinsfel listas nedan:

  • Du försöker använda en maskinvaruenhet som inte är korrekt ansluten till din dator.
  • Två eller flera drivrutiner på systemet är inkompatibla med varandra.
  • Drivrutinen eller drivrutinerna är installerade som inte är kompatibla med ditt system.
  • Det finns onödiga eller föråldrade drivrutiner på din PC.

Steg för att åtgärda drivrutinsfel
Det första steget för att identifiera ett drivrutinsfel är att se till att enheten är korrekt ansluten till ditt system. Många enheter ger anslutningsfel, så kontrollera att din enhet är korrekt ansluten till ditt system. Därefter måste du se till att det inte finns några problem med drivrutinerna. Du kan göra detta med hjälp av verktyget Enhetshanteraren som följde med din dator Windows-system. Du kan öppna Enhetshanteraren genom att köra direkt devmgmt. msc från kommandorad Start> KlartDet. När du öppnar Enhetshanteraren kommer du att se en lista över alla enheter som är anslutna till ditt system. Du kan enkelt identifiera den defekta filen eftersom den kommer att markeras med en gul triangel med utropstecken inuti. Högerklicka på en enhet för att öppna dialogrutan för dess egenskaper. Kontrollera avsnittet i egenskapsdialogrutan Enhets status på fliken Är vanliga. Drivrutiner visas på fliken Drivrutiner i egenskapsfönstret. Gör en av följande uppgifter här:

  • Kontrollera och installera drivrutinsuppdateringar: Föråldrade drivrutiner en av huvudorsakerna förknippade med drivrutinsfel. Klicka på knappen för att lösa detta problem Uppdatera drivrutinen.Hårdvaruuppdateringsguiden öppnas. Du kan använda guiden för att uppdatera drivrutinen. Det rekommenderas att du först laddar ner drivrutinsuppdateringen och sparar den på en lämplig plats på din hårddisk och sedan startar uppdateringsprocessen eftersom uppdateringsguiden ber dig ange en plats att installera uppdateringen.
  • Återställning av föraren: Om du börjar få ett felmeddelande kort efter att du installerat en ny uppdatering, är det troligt att den nya uppdateringen är buggig. För att åtgärda det här problemet, klicka på knappen Återställning av föraren att återvända till ditt föregående version förare.
  • Avinstallera drivrutinen: Om det finns problem med dina nuvarande drivrutiner - saknade eller skadade filer - så är det bästa du kan göra att klicka Radera för att avinstallera den aktuella drivrutinen och installera sedan om drivrutinen igen.

Om du inte är säker på vad du gör och om du tycker att ovanstående korrigeringar är lite svåra, rekommenderas det att du väljer ett tillförlitligt verktyg för drivrutinsskanning. Drivrutinssökningsverktyg är utformade för att kontrollera alla enhetsdrivrutiner och se till att de inte är uppdaterade. När nya uppdateringar är tillgängliga laddar drivrutinsskannern automatiskt ned och installerar de bästa uppdateringarna på din dator.

Använda systemverktyget som ingår i Windows Vista/7 Driver verifierare Manager, du kan utföra en omfattande diagnos av drivrutinerna som är installerade i systemet och hitta problematiska komponenter som stör den stabila driften av datorn och utrustningen som är ansluten till den.

För att köra det nämnda verktyget måste du logga in i Windows med administratörsrättigheter, sedan i adressfältet på menyn "Start -> Kör", ange kommandot verifier.exe och klicka på OK. Som ett resultat kommer fönstret Driver Verification Manager att öppnas, där du måste klia dig i huvudet och bestämma dig för lämpligt alternativ för att starta verktyget. Du kan utföra både selektiv och fullständig testning av alla drivrutiner utan undantag.

Efter att ha ställt in programmets driftsläge och tryckt på "Slutför"-knappen, måste du starta om datorn och vänta på att operativsystemet ska laddas. Om en felaktig drivrutin upptäcks kommer Windows att hamna i den så kallade "blue screen of death" (BSOD - Blue Screen Of Death) och rapportera ett kritiskt fel som innehåller information om den problematiska komponenten, som måste beaktas.

Nästa steg är att ta bort de defekta drivrutinsfilerna. För att göra detta måste du hålla ner F8-tangenten när du startar datorn, starta systemet i felsäkert läge och sedan standard använder Windows eliminera den felaktiga komponenten. Sedan måste du öppna konsolen igen och ange verifier.exe /reset-instruktionen för att avaktivera Driver Verifier Manager-applikationen. Det är viktigt att notera att ange det sista kommandot också krävs om datorn startar framgångsrikt, vilket indikerar frånvaron av problematiska drivrutiner.

Ytterligare referensinformation om denna fråga Se artikeln "Använd drivrutinsverifieraren för att identifiera Windows-drivrutinsproblem (avancerat)" på Microsofts supportwebbplats.

Indikerar en systemdrivrutin som sannolikt inte orsakar problemet (t.ex. win32k.sys). I det här fallet kommer en seriös analys av soptippen att krävas, vilket kräver mycket djup kunskap och erfarenhet inom detta område. Du kan dock kontrollera dina drivrutiner själv med hjälp av operativsystemets inbyggda drivrutinskontroll. Verifier.exe. Även om det behandlas i detalj i Microsofts kunskapsbasartikel Använda drivrutinsverifieraren för att felsöka Windows-drivrutinsproblem, presenteras materialet som presenteras där på en ganska avancerad teknisk nivå. Under är kort beskrivningåtgärder som måste vidtas för att kontrollera förare.

På den här sidan

Komma igång med Driver Verifier

På menyn StartKör(eller StartSök) stiga på bekräftare och tryck på Enter. Driver Checker startar. Välj ett föremål Skapa icke-standardparametrar (för programkod) och tryck på knappen Ytterligare.

Välj individuella alternativ från full lista och tryck på knappen Ytterligare.

I nästa steg, markera alla rutor utom Simulerar resursbrist och tryck på knappen Ytterligare.

I nästa steg väljer du Välj automatiskt osignerade drivrutiner och tryck på knappen Ytterligare. Om inga osignerade drivrutiner hittas, gå till .

Osignerade drivrutiner

Om osignerade drivrutiner upptäcks kommer du att se en lista över dem.

Drivrutiner kan tillhöra både enheter och applikationer. Stäng inte fönstret Driver Verifier eller klicka på Ytterligare Nu.

Sök efter uppdaterade drivrutiner

Du måste kontrollera om det finns uppdaterade drivrutiner.

  1. Om du ser en applikationsdrivrutin listad, besök tillverkarens webbplats för att se om applikationen har uppdaterats. Om det inte finns någon uppdaterad version kan du prova att avinstallera appen (du kan alltid installera om den senare). Om kritiska fel upphör var det orsaken.
  2. Om du ser en enhetsdrivrutin i listan och kör Windows Vista, använd centret Windows-uppdateringar för att söka efter nya drivrutiner. Den här metoden fungerar bra för Windows Vista eftersom många enhetstillverkare samarbetar med Microsoft för att göra sina drivrutiner tillgängliga för nedladdning via Windows Update. I Kontrollpanelen väljer du Windows uppdatering och leta efter uppdateringar av din enhetsdrivrutin. Om drivrutinen hittas, installera den.
  3. Om Windows Update inte erbjuder dig nya drivrutiner, besök enhetstillverkarens webbplats. Kanske finns det nya drivrutiner där. Om du har problem med att hitta drivrutiner, besök forumet Hitta drivrutiner, firmware och manualer på OSzone.net.

När du har uppdaterat ett program eller en drivrutin stänger du fönstret Driver Verifier. trycka på en knapp Annullera(men inte Ytterligare) . Starta om datorn och fortsätt att använda operativsystemet. Om det kritiska felet inte längre uppstår har du löst det genom att uppdatera drivrutinen.

Ta bort drivrutiner

Om nya drivrutiner inte kan hittas, försök att avinstallera drivrutinen.

Uppmärksamhet! Att ta bort drivrutiner leder till att enheten inte fungerar. Efter en omstart, i bästa fall, kommer operativsystemet att installera lämplig drivrutin från sin egen drivrutinsbutik. Om du inte är säker på om du ska ta bort en viss drivrutin, ta inte bort den.

I Enhetshanteraren ( StartSök / Kördevmgmt.mscOK) hitta enheten, högerklicka på den och välj från innehållsmeny paragraf Egenskaper. Gå sedan till fliken Förare och tryck på knappen Radera.

Söker efter osignerade drivrutiner

Uppmärksamhet! Efter att ha kontrollerat osignerade drivrutiner kanske systemet inte startar (beskrivs nedan är hur man agerar i en sådan situation).

Om du inte vill ta bort drivrutinen och/eller leta efter osignerade drivrutiner klickar du i fönstret Driver Verifier. Ytterligare. Du kommer att bli ombedd att välja en fysisk disk.

Redo, starta sedan om datorn. Om du efter omstart ser en blå skärm med ett fel, har den problematiska drivrutinen identifierats och dess namn kommer att inkluderas i felmeddelandet. Gå in i felsäkert läge och återställ alla alternativ för förarverifiering genom att gå in StartSök / Kör team verifier.exe /reset.

Om systemet startar i normalt läge, slutfördes kontrollen av osignerade drivrutiner framgångsrikt - de är inte källan till problemet. Du kan se en lista över testade drivrutiner genom att köra verifier.exe .

Eftersom osignerade drivrutiner inte är orsaken till ett allvarligt fel måste du kontrollera andra drivrutiner.

Anpassad förarkontroll

Om inga osignerade drivrutiner hittas eller om du kontrollerar dem inte avslöjar några problem, måste du utföra en anpassad förarkontroll. I det här fallet, välj i fönstret som visas nedan Välj förarnamn från listan.

I nästa steg kommer du att bli ombedd att välja drivrutiner att skanna. Välj inte alla drivrutiner på en gång, eftersom det tar mycket tid och systemresurser att kontrollera dem.

Därför kan verifieringen behöva utföras i flera steg. Steg-för-steg-sekvensen för att välja drivrutiner kan vara följande:

  1. Nyligen uppdaterade drivrutiner eller de som vanligtvis orsakar problem (drivrutiner antivirusprogram, brandväggar, virtuella diskar).
  2. Drivrutiner som inte tillhandahålls av Microsoft.
  3. Grupp på 10 - 15 förare åt gången.

Välj den enhet som operativsystemet är installerat på och klicka Redo, starta sedan om datorn.

Uppmärksamhet! Efter att ha kontrollerat drivrutinerna kanske systemet inte startar (beskrivs nedan är hur man agerar i en sådan situation).

Om du efter omstart ser en blå skärm med ett fel, har den problematiska drivrutinen identifierats och dess namn kommer att inkluderas i felmeddelandet. Starta om datorn och logga in säkert läge genom att trycka F8 medan du laddar. När du har loggat in återställer du alla förarverifieringsinställningar genom att gå in StartSök / Kör team verifier.exe /reset.

Om systemet startar i normalt läge slutfördes kontrollen av de valda drivrutinerna framgångsrikt - de är inte källan till problemet. Du kan se en lista över testade drivrutiner genom att köra verifier.exe och välja objektet i det första steget Visa information om för närvarande verifierade drivrutiner.

Välj nu nästa förargrupp och kontrollera igen.

Alla förare har kontrollerats - vad händer nu?

Om kontrollen av alla förare lyckades måste jag ta av mig hatten för ditt tålamod och uthållighet. Troligtvis är inte drivrutiner orsaken till det kritiska felet som uppstår på ditt system. Det är möjligt att problemet ligger i din dators hårdvara - till exempel en felaktig hårddisk eller random access minne, eller strömförsörjningen har otillräcklig kraft för att säkerställa driften av alla enheter. Det kan finnas andra hårdvaruproblem som inte heller kan identifieras genom att kontrollera drivrutinerna.

Verktyget som vi kommer att beskriva idag heter Driver Verifier och ingår i alla operativsystem, inklusive Windows XP. Det här programmet låter dig kontrollera och identifiera problematiska som kan skada systemet mycket. Det mest kända problemet är dödens blå skärm.

Data om sådana förare registreras i en minnesdump så att analyser kan utföras senare. Så, verktyget utsätter förare för så kallade stresssituationer (tester), vilket skapar visuella extrema förhållanden, till exempel brist på minne, olika lås, IRQL, IRP-kontroller, DMA, etc., I/O-kontroll. Med andra ord simuleras extrema situationer som inte bör inträffa under normalt arbete med Windows, eller så händer de inte ofta. Således låter verktyget dig identifiera drivrutiner som kan leda till en systemkrasch.

Som jag redan sa är verktyget inbyggt i allt Windows-versioner och är på väg %windir%\system32. Verktyget kan också användas i två versioner: kommandorad och grafiskt gränssnitt.

Så för att köra drivrutinskontrollverktyget måste du öppna fönstret "Springa" skriv följande kommando:

bekräftare

Ett fönster öppnas med nödvändiga inställningar, där vi väljer det andra objektet - "Skapa anpassade parametrar" eller "Skapa anpassade inställningar".

Nu måste vi sortera innehållet, för att göra detta, klicka på ordet överst i tabellen Leverantör. Nu kan du välja alla drivrutiner. Förresten, du behöver inte välja drivrutiner från Microsoft.

Nu kan du trycka på knappen Avsluta, varefter du blir ombedd att starta om systemet.

Så omstarten har slutförts, och nu kommer systemet att starta i drivrutinsverifieringsläge. Verktyget körs i bakgrunden och utför olika tester. Du kan lugnt arbeta vid datorn tills verktyget är klart. Efter arbetet kommer informationsfilen att sparas i en minnesdump. En sådan fil finns vanligtvis längs vägen: C:\Windows\Minidump\*.dmp. Nu kan den analyseras, till exempel med Windbg, eller ett annat liknande program.

Om det inom några dagar visar sig att problemet inte har återkommit, kan vi säga att problemet inte alls finns i drivrutinerna och du måste leta efter orsaken någon annanstans. Under tiden kan du redan inaktivera förarverifieringsläget. Jag vill genast säga att det här läget avsevärt saktar ner systemet, därför rekommenderas det inte att arbeta med det ofta.

Du kan inaktivera verktyget så här: på kommandoraden anger du följande kommando:

Det är allt. Jag hoppas att den här artikeln hjälpte dig att lösa dina problem.

Vi varnar dig för att alla experiment med förare är farliga och kan skada systemet. Det är bättre att göra en säkerhetskopia av systemet i förväg och sedan inte korsa tummarna genom att ta bort en annan misstänkt drivrutin från Windows.

Och så fort de inte skäller Windows från Microsoft, kallar stackaren samtidigt långsam, glitchy och till och med instabil. Men ingen har bråttom att ge upp det, och i allmänhet är det osannolikt att de någonsin kommer att ge upp det. Därför, istället för att skälla på dåliga utvecklare och starta meningslösa lågor, skulle det vara bra att ta reda på varför, i själva verket, systemet är buggigt? Jag ska berätta en liten hemlighet. I de ökända skärmarna av död och instabilt arbete Windows i de allra flesta fall är det tredje parts drivrutiner som är skyldiga, och själva operativsystemet har absolut ingenting med det att göra. Nu kommer vi att berätta hur du upptäcker sådana drivrutiner och tar bort dem från systemet.

Drivrutinsdesigndefekter kan variera från krascher till Blue Screen of Death ( BSOD– Blue Screen of Death) och till nedgången av datorn och det konstiga beteendet hos vissa applikationsapplikationer som är helt orelaterade till föraren.

The Blue Screen of Death är anmärkningsvärt (utan någon ironi!) genom att det tydligt signalerar närvaron av ett allvarligt problem och ger ett tips om var man ska gräva. Ofta (men inte alltid) visas namnet på den "förolämpande" föraren direkt i det övre högra hörnet av dödens blå skärm. Men det kanske inte finns där, eller ännu värre, namnet på en helt orelaterade förare kan finnas där.

Till exempel en ganska vanlig grafikkortsdrivrutin Matrox G450 tenderar att förstöra de grundläggande strukturerna i det grafiska delsystemet Windows 2000 , vilket resulterar i att BSOD visar namnet på systemdrivrutinen win32k.sys, som implementerar en betydande del av USER- och GDI-funktionerna och som naturligtvis inte har något med det att göra. Så att tolka den blå skärmen av dödsläsningar är magi, intuition, vetenskap och konst - lite av allt.

Förutom drivrutinsfel kan blå skärmar av dödsfall också orsakas av hårdvarufel, till exempel en överklockad processor, felaktigt RAM-minne eller en sned kontroller. hårddisk, ett PCI-kort som inte är helt insatt i kortplatsen, en lös kontakt i en av kontakterna, en dålig strömförsörjning, en svullen elektrolytkondensator på moderkort. Och de sista surrar olika anledningar: på grund av överhettning från en närliggande processor, en brist på keramiska kondensatorer "inte rapporterad" av tillverkaren (som ett resultat av vilket RF-komponenten går genom elektrolyten och värmer upp den kraftigt), och slutligen på grund av läckage av nyckeltransistorer i stabilisatorenheten. Därför måste vi, innan vi hugger ved, se till att järnet som vi sitter på är i fullt fungerande skick. Hur kan detta göras?

Showdown med järn

Blå skärmar av dödsfall orsakade av hårdvarufel är spontana, dyker upp oförutsägbart och oberoende av några specifika användaråtgärder. Applikationer börjar också ge kritiska fel på en mängd olika platser, och felkoder, adresser och annan information som utfärdas av systemet kommer att vara olika i alla fall! Förresten, drivrutiner som hanterar asynkrona förfrågningar från I/O-enheter, till exempel trådlösa nätverk, beter sig nästan exakt likadant. Blå skärmar av dödsfall orsakade av defekta förare uppstår vanligtvis när man utför en specifik uppsättning åtgärder och innehåller mer eller mindre konstant information.

För att ta bort alla misstankar från hårdvaran räcker det att ansluta en annan till systemet HDD, installera på den en virgin clean Windows och jobba på det ett tag. Om dödens blå skärmar inte försvinner betyder det att hårdvaran verkligen är skyldig och att det är dags att ändra det. Att hitta defekta komponenter är ett ämne för en separat diskussion, som vi lämnar till nästa gång, men för nu, kavla upp ärmarna och ta tag i dessa lömska förare.

Ved utan certifikat går rakt in i eldstaden

Hela uppsättningen av verktyg som behövs för förarutveckling ( DDK– Driver Development Kit), distribuerar Microsoft det gratis tillsammans med den medföljande dokumentationen. Drivrutiner, ibland väldigt buggiga och instabila.

För att förhindra att ett sådant kaos inträffar, Microsoft I forntiden infördes ett förfarande för att certifiera förare för att uppfylla de krav som ställs på dem, varefter föraren får en digital signatur. Eller... den utfärdades inte, och den skickades för revision. Och även om certifiering bara är en formell procedur som inte garanterar frånvaron av fatala fel och utvecklingsfel, eliminerar den fortfarande några av de uppriktigt sagt "pionjär" förarna.

Helst bör endast digitalt signerade drivrutiner finnas kvar i systemet. Och även om en digital signatur inte är en försäkring, indikerar dess närvaro redan en viss nivå av utvecklingskultur. Förare utan digital signatur- det här är värre än en gris i en pet, och bör bli av med om möjligt (speciellt eftersom många av dem är skadliga program installerade av rootkits eller aggressiva försvarsmekanismer som tränger djupt in i systemet och orsakar dess instabilitet). Kort sagt, låt oss inte ägna oss åt demagogi, men låt oss försöka svara på en enkel fråga: hur skapar man en lista över förare utan en digital signatur?

Verktyget kommer att hjälpa oss med detta sigverif.exe, som ingår i operativsystemets standardleveranspaket och finns i katalogen WINNT\System32. Vi startar den och ser en dialogruta. Klicka på knappen "Avancerat" och på fliken "Sök" ställer du in urvalskriterierna genom att flytta radioknappen från positionen "Meddela om avregistrerad prenumeration". systemfiler"(där den försvann som standard) till positionen "Sök efter andra filer som inte är digitalt signerade." Efter det, i "Sökalternativ", öppna rutan "Sök efter filer av följande typ" och välj "*.sys", och ange nedan sökmappen "C:\WINNT", och se till att markera "Inklusive undermappar” kryssrutan.

Egentligen, strängt taget, krävs inte att drivrutiner har sys-tillägget och är inte alltid begränsade till WINNT-katalogen, som finns i katalogerna för "sina" applikationer, och vissa applikationer lagrar till och med drivrutiner... i sig själva! Omedelbart efter lanseringen (eller när som helst), sparar de filen på disken i den aktuella eller temporära katalogen, laddar drivrutinen i minnet och... raderar den omedelbart från disken! Detta görs inte bara av skadliga virus, utan också av ganska respektabla program, till exempel några verktyg från den berömda Windows-undergrundsforskaren Mark Russinovich.

Därför, för experimentets renhet, skulle det inte skada oss att få en lista över förare som finns i det här ögonblicket i minnet och jämför dem med drivrutinerna på disken. Orden "för närvarande" är nyckeln, eftersom drivrutiner kan laddas ner/avlastas gratis utan att starta om operativsystemet. Det är lämpligt att utföra denna operation flera gånger genom att köra kommandoradsverktyget drivers.exe, som är en del av DDK, som kan laddas ner från Microsofts server. Startas utan några växlar med hjälp av ett linjekommando, verktyget drives.exe dumpar all information på skärmen, vilket inte är bra, eftersom det vanligtvis finns många förare i systemet och de inte får plats på skärmen. Religion tillåter oss dock att omdirigera utgångsströmmen till textfil(drivers.exe >filnamn.txt), kan öppnas av alla textredigerare- antingen med Word eller med ett anteckningsblock. Sedan återstår bara att välja det vertikala blocket (vilket Notepad inte tillåter) och få en lista med drivrutiner. Direkt från operativsystemets kärna!

Om minst en av dessa drivrutiner inte finns i C:\WINNT\-katalogen, kommer dess digitala signatur inte att verifieras! Naturligtvis lockar en sådan förare omedelbart uppmärksamhet, och vi har en rimlig fråga: var kommer den ifrån? Först skannar vi alla kataloger på disken; om den inte finns där, ställ in en brytpunkt på CreateFileW-funktionen i Soft-Ice och titta på argumenten som skickas till den. Förr eller senare kommer vi att stöta på vår buggydrivrutin, varefter vi bara kan titta på det nedre högra hörnet av Soft-Ice-skärmen, där namnet på processen som genererade den visas. För mer information, se boken "Tekniker för att felsöka program utan källtexter", en elektronisk kopia av vilken kan hittas på ftp- eller http-servern nezumi.org.ru, såväl som på vår disk. Och vi fortsätter att plåga nyttan sigverif.exe.

Efter att ha klickat på "OK", "Start", kommer en "termometer" att dyka upp på skärmen som visar framsteg, och hårddisken börjar prassla med alla dess huvuden som den har. Efter avslutat arbete kommer en lista över förare utan digital signatur att sammanställas och visas på skärmen.

Vissa hotheads föreslår, för att rena systemet från kätteri, att ta bort alla osignerade drivrutiner - då, säger de, kommer alla problem att försvinna. Hur kan detta göras? Den grovaste lösningen är att helt enkelt ta bort dem från disken via FAR eller Explorer (med administratörsrättigheter såklart!). Men konsekvenserna av en sådan operation kan vara mycket förödande, och det är bättre att högerklicka på drivrutinsikonen i Utforskaren, hitta tillverkarens namn i "Egenskaper", där du kan bestämma vilken typ av applikation/hårdvara som är installerad denna drivrutin och avinstallera den på ett civiliserat sätt. Det är sant att det finns ett "men" här.

Föraren är markerad i bilden nedan. g400m.sys, som följer med Matrox G450-kortet, och även om Matrox inte alls är ett svagt företag fick det ingen digital signatur (antingen gav inte Microsoft det, eller så ville Matrox själv inte bry sig). Naturligtvis, efter att ha tagit bort det från systemet, måste du glömma SVGA-läget. Du kan dock gå till Matrox hemsida och ladda ner den senaste versionen av drivrutinen (den är redan digitalt signerad). Bara här... både signerade och osignerade versioner innehåller många fatala fel, i synnerhet som ett resultat av vissa omständigheter, när man försöker byta till överlagringsläge, kraschar systemet in i BSOD, eftersom föraren försöker frigöra redan frigjort minne.

Förekomsten/frånvaron av en digital signatur i sig betyder alltså ingenting, och även om vi endast använder signerade drivrutiner ger detta oss inga garantier för stabilitet.

Det är här vi går vidare till den andra delen av artikeln, nämligen att testa förare under förhållanden nära strid.

Vi ger veden ett rejält prov

DDK innehåller ett underbart verktyg Förare Bekräftare, vilket skapar de svåraste förhållandena för förare, på gränsen till extrem och självmord, där sannolikheten för misslyckande är maximal, och namnet på den defekta föraren bestäms med högsta noggrannhet (även om den inte lider på grund av utvecklingsfel, men förstör datastrukturen för andras förare).

Det är viktigt att notera det Förare Bekräftare– Det här är ingen medicin, utan bara ett diagnostiskt verktyg. Det kommer fortfarande inte att rädda dig från misslyckanden (tvärtom, det kommer att öka deras intensitet med ett par storleksordningar), men det kommer att hjälpa till att identifiera den "luriga" föraren med en tillräcklig grad av tillförlitlighet.

Så vi startar verifier.exe, vi ser fönstret Förare Bekräftare Chef, gå till fliken Inställningar och flytta radioknappen till läget Verifiera alla förare, varefter vi trycker på knappen "Önskad inställning", som ställer in följande verifieringstyper:

  • Särskild slå samman– drivrutinerna som testas kommer att tilldelas ett speciellt minnesområde för tilldelning, som inte fungerar särskilt snabbt, men som kan upptäcka de flesta typer av förstörelse av sin egen och andras data.
  • Tvinga IRQL kontroll. IRQL är nivån för avbrottsbegäran. Det vanligaste misstaget som drivrutinutvecklare gör är att försöka komma åt minnet på en IRQL-nivå där personsökningshanteraren inte fungerar. Och om den önskade sidan plötsligt visar sig vara vräkt till disk, kommer systemet att förvandlas till en blå skärm med inskriptionen "IRQL_LESS_OR_EQULAR". Genom att tvinga fram detta läge tvingas drivrutinssidorna att spolas till disken så att designdefekten uppträder 100 % av gångerna.
  • Låg resurs simulering Det är användbart att installera det för att se hur drivrutinen kommer att bete sig i händelse av en katastrofal brist på systemresurser, men du behöver inte göra detta, men det är bättre att lämna kryssrutan Poolspårning (övervaka korrekt hantering av minnet slå samman). Inmatnings-/utgångsfel (I/O-verifiering) utgör en obetydlig del av alla fel, så placeringen av denna kryssruta är i allmänhet helt okritisk.

När du har valt inställningarna klickar du på knappen "Apply" och startar om, som vi föreslår.

Omedelbart efter att uppstarten börjar kommer systemet att sakta ner märkbart, vilket är som det ska vara, eftersom kärnan utför många fler kontroller än vanligt. När fel upptäcks blinkar en blå skärm med förarnamnet och annan information som är användbar för utvecklare, men värdelös för oss. Allt vi kan göra är att uppdatera drivrutinen till det mesta senaste versionen eller vägra att använda programmet (hårdvaran) som använder det. Egentligen har vi lite fler alternativ för att tända vått ved, men mer om det senare.

Du kan ta reda på verifieringsstatusen när som helst genom att köra verifier.exe. Fliken Förarstatus listar statusen för alla upptäckta förare med en förklaring av den aktuella situationen. Statusen Loaded betyder att denna drivrutin har laddats och testats minst en gång (men kanske inte helt, det vill säga inte alla delar av drivrutinen har testats). Statusen Unloaded betyder att drivrutinen har laddats, verifierats (eventuellt delvis) och avladdats av systemet/programmet som använder den eller på egen begäran. Det senare är särskilt typiskt för förare som blivit över från utrustning som togs bort genom att på barbarisk vis dra ut expansionskortet ur kortplatsen, det vill säga utan att utföra avinstallation. Den överlevande föraren skannar bussen, försöker hitta "dess" hårdvara, misslyckas med sökningen och laddar sedan av sig själv från minnet, förresten, saktar ner systemstarten (ibland mycket avsevärt) och kommer i konflikt med andra förare. Moral: utrustning måste tas bort från systemet enligt alla regler! Men inte alla avlastade status är ett tecken på en onormal situation, och innan du tar bort en förare med en sådan status måste du ta reda på vilken typ av ren detta är och var den kom ifrån i första hand.

Statusen Never Loaded indikerar att den här drivrutinen ännu inte har laddats, vilket betyder att den inte har kontrollerats, därför måste du vänta innan du startar olika program som kan förknippas med det. Vissa drivrutiner (särskilt felaktigt avinstallerade) laddas dock inte och kontrolleras därför aldrig.

Efter att ha arbetat med systemet i hårdkontrollläge under en tid (från flera timmar till flera dagar), kommer vi att identifiera nästan alla defekta drivrutiner som vi tidigare led av och skriva ner deras namn på ett papper.

Du kan återställa systemet till normalt läge (det vill säga utan ytterligare kontroller som tär på prestanda) med samma verifierare. Vi återgår till fliken Inställningar, flyttar alternativknappen till läget Verifiera valda förare (ingen drivrutin ska väljas), klicka på "Återställ alla", sedan på "Använd" och starta om. Allt! Systemet arbetar nu med normal hastighet, men utan kontroller.

Vad ska man göra med fuktig ved?

Men egentligen, vad kan du göra med en defekt drivrutin? Hackare som vet hur man håller en debugger i sina händer, om de har tillräckligt med ledig tid, kan ta isär den (lyckligtvis är drivrutiner vanligtvis små i storlek), hitta ett fel och komma på ett sätt att fixa det, men... Detta är för tidskrävande.

Att slänga drivrutinen (tillsammans med hårdvaran/programmet som använder den) är inte heller ett alternativ. Även om det är känt att blå skärmar av döden bär skulden Ljudkort från en obekant kinesisk tillverkare som kostar $20, då har vi en mycket stark motivation att ersätta den med något mer värdigt. Men detta är strängt taget redan klart för alla och kräver inga ytterligare kommentarer.

Men inte alla vet att ett stort antal krascher och blå skärmar av dödsfall beror på att en drivrutin som utvecklats (och testats) i en enprocessormiljö är installerad på en dubbelprocessormaskin. Med "dual-processor" menar vi här både en riktig plattform med två stenar och Hyper-Threading/multi-core processorer. Det är känt (och bekräftat av ett stort antal tester) att hemdator två processorer är helt värdelösa, eftersom det i de allra flesta applikationer praktiskt taget inte finns någon ökning i prestanda.

Därför, om systemet är instabilt och av en eller annan anledning inte går att bli av med den defekta drivrutinen, kan du försöka komma in i BIOS inställningar, förvandla din "virtuella dubbelprocessor"-maskin till en enprocessor. En liknande effekt kan uppnås genom att öppna filen boot.ini (på datorer med Windows NT/2000/XP den finns i rotkatalogen för den logiska enhet som systemet är installerat på) och lägger till /ONECPU-växeln till den, starta sedan om i hopp om att felen försvinner.

Lista 1

Exempel på en typisk boot.ini-fil


timeout=30

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

Lista 2

Vi konfigurerar systemet så att det bara använder en processor av alla tillgängliga


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

Men på Windows Perspektiv det finns ingen boot.ini-fil, och även om det är möjligt (tillfälligt) att konfigurera dess startinställningar med hjälp av särskild nytta, Microsoft planerar att helt överge detta kryphål, så att endast BIOS Setup kommer att finnas kvar. Men vad gäller Perspektiv, när de byter till det, kommer drivrututvecklare förmodligen att ha skaffat flerprocessormaskiner (eftersom det helt enkelt inte kommer att finnas några andra kvar till försäljning) och kommer att testa sina skapelser i en multiprocessormiljö.

En annan subtil punkt. Kom ihåg att vi sa ovan att det vanligaste misstaget som görs av drivrutinutvecklare är att komma åt urtagbart minne på IRQL-nivå där personsökningshanteraren inte fungerar, och om den begärda sidan inte finns i minnet inträffar en krasch? Den uppenbara lösningen här skulle vara att öka RAM-minnet till en volym där praktiskt taget inga sidor kastas till disken. Med nuvarande minnespriser har nästan alla råd att köpa ett par nya minnesstickor. Men det finns en mer tillgänglig (och mer elegant) lösning på problemet. Om parametern DisablePagingExecutive, som finns i nästa registergren HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement, lika med ett(noll som standard), kommer kärnkraftskomponenter inte att förebyggas. Därför startar vi helt enkelt "Registerredigeraren", ändrar denna omhuldade parameter och startar om (ändringarna träder i kraft först efter en omstart), i hopp om att detta kommer att hjälpa till att lösa problemet med misslyckanden.




Topp