Pożytek Kierowca Weryfikator zawarte we wszystkim Wersje Windowsa, począwszy od systemu Windows XP, i pozwala sprawdzić sterowniki, zidentyfikować problematyczne sterowniki, które są przyczyną niebieski ekran śmierci (BSOD-a- Niebieski ekran śmierci) i zapisz szczegółowe informacje o problematycznym sterowniku w zrzucie pamięci w celu dalszej analizy. Narzędzie poddaje sprawdzane sterowniki różnym „ testy warunków skrajnych", symulując różne ekstremalne warunki: brak pamięci, sterowanie we/wy, IRQL, zakleszczenia, kontrole DMA, IRP itp. Tj. Symulowane są sytuacje rzadko występujące na systemach produkcyjnych i monitorowane jest zachowanie kierowców w nich. Celem narzędzia jest identyfikacja sytuacji, w których sterownik może spowodować awarię systemu z BSOD.

Nazywa się plik wykonywalny narzędzia Driver Verifier Weryfikator.ex i znajduje się w katalogu %windir%\system32. Istnieją dwie możliwości korzystania z narzędzia: z wiersza poleceń lub za pomocą interfejsu graficznego.

Aby włączyć tryb weryfikacji sterowników w systemie Windows 8, uruchom narzędzie Driver Verifier, wpisując

Weryfikator

Z listy zadań wybierz Utwórz ustawienia niestandardowe (dla twórców kodu) i naciśnij Następny.

Upewnij się, że opcje są zaznaczone Ustawienia standardowe, Wymuś oczekujące żądania we/wy I Rejestrowanie IRP. Trzask Następny.

Następnie wybierz .

Posortuj zawartość tabeli klikając na nagłówek kolumny „Dostawca” i wybierz z listy sterowników te, które chcesz przetestować. W naszym przykładzie sprawdzimy wszystkie sterowniki, które nie zostały opracowane przez MicrosoftuKorporacja. Wybraliśmy sterowniki: e1g6032e.sys (Intel) i lsi_sas.sys (LSI).

Notatka. Dostępność kierowcy podpis cyfrowy Microsoft wskazuje, że sterownik został w określony sposób przetestowany pod kątem stabilności i od tego czasu jego kod nie był modyfikowany. Dlatego nie jest to zalecane ani używane.

Wszystko, co musisz zrobić, to kliknąć Skończyć i pojawi się okno informacyjne z informacją o konieczności ponownego uruchomienia systemu, aby zmiany zaczęły obowiązywać.

Rada. Tryb weryfikacji kierowcy można również włączyć z poziomu wiersz poleceń. Na przykład, aby uruchomić program Driver Verifier ze standardowymi ustawieniami sterownika myPCDriver.sys, polecenie będzie wyglądać następująco:

Weryfikator /standard /sterownik myPCDriver.sys

Po ponownym uruchomieniu system uruchamia się w trybie weryfikacji sterownika. Driver Verifier działa w tle i działa różne typy testowanie wybranych sterowników w celu identyfikacji błędów. Korzystaj z komputera jak zwykle i poczekaj, aż pojawi się BSOD. Jeśli wiesz, jakie działania poprzednio spowodowały awarię systemu, powtórz je. W przypadku wystąpienia BSOD należy skopiować plik zrzutu pamięci (domyślnie jest on zapisany w katalogu C:\Windows\Minidump\*.dmp) lub podobny.

Ważny! Po aktywowaniu trybu debugowania sterownika za pomocą weryfikatora sterowników tryb ten będzie działał, dopóki nie zostanie wymuszony wyłączony.

Jeśli problem nie powtórzy się w ciągu 1-2 dni, to z pewną dozą pewności możemy stwierdzić, że testowane sterowniki nie są przyczyną awarii systemu i można dla nich wyłączyć tryb skanowania.

Rada. Korzystanie z walidatora Sterowniki Windowsa znacznie spowalnia system Windows, dlatego nie zaleca się ciągłej pracy w tym trybie.

Możesz wyłączyć weryfikator sterowników z wiersza poleceń:

Weryfikator /reset

Lub z interfejsu graficznego, wybierając Usuń istniejące ustawienia.

Jeśli nie możesz zalogować się do systemu w trybie normalnym, możesz wyłączyć tryb debugowania z trybu awaryjnego.

W takim przypadku tryb bezpieczny system nie uruchamia się, spróbuj usunąć następujące klucze rejestru, uruchamiając system z dysku rozruchowego:

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

W ten sposób możesz sprawdzić bieżący stan narzędzia Driver Verifier.


Czasami błędy DRIVER_VERIFIER_DETECTED_VIOLATION, takie jak „ niebieski ekran„Związane ze sprzętem może być spowodowane uszkodzeniem BARAN(BARAN). Jeśli występują losowe restarty komputera, sygnały dźwiękowe podczas uruchamiania lub inne problemy z komputerem (oprócz błędów BSOD 0xC4), jest wysoce prawdopodobne, że doszło do uszkodzenia pamięci. W rzeczywistości prawie 10% awarii aplikacji w systemie operacyjnym Windows wynika z uszkodzenia pamięci.

Jeśli niedawno dodałeś do komputera nową pamięć, zalecamy tymczasowe usunięcie jej, aby upewnić się, że nie powoduje błędu DRIVER_VERIFIER_DETECTED_VIOLATION. Jeśli to działanie rozwiąże problem BSOD, oznacza to, że jest to źródło problemu i dlatego nowa pamięć jest albo niezgodna z niektórymi urządzeniami, albo uszkodzona. W takim przypadku konieczna będzie wymiana nowych modułów pamięci.

Jeśli nie dodałeś nowej pamięci, następnym krokiem jest uruchomienie testu diagnostycznego istniejącej pamięci komputera. Test pamięci przeskanuje w poszukiwaniu awarii pamięci twardej i sporadycznych błędów, które mogą powodować błękitny ekran śmierci 0xC4.

Chociaż najnowsze wersje systemu Windows zawierają narzędzie do testowania pamięci RAM, zdecydowanie polecam zamiast tego używać Memtest86. Memtest86 to narzędzie testujące oprogramowanie Oparty na systemie BIOS, w przeciwieństwie do innych programów testowych Środowisko Windowsa. Zaletą tego podejścia jest to, że narzędzie umożliwia sprawdzenie CAŁEJ pamięci operacyjnej pod kątem błędów DRIVER_VERIFIER_DETECTED_VIOLATION, podczas gdy inne programy nie mogą sprawdzać obszarów pamięci zajmowanych przez sam program, system operacyjny i inne uruchomione programy.

Masz więc powtarzający się niebieski ekran śmierci i podobnie jak wiele BSoD, dzieje się tak dlatego, że winny jest zły sterownik. Jednakże ekran nie wyświetla prawidłowych informacji, ponieważ albo nie zawiera żadnego sterownika, albo wyświetla listę sterowników systemowych, które działają jako fałszywe.

Driver Verifier to bezpłatne narzędzie dostępne we wszystkich wersjach systemu Windows, począwszy od systemu Windows XP. Dosłownie sprawdza każdy sterownik na komputerze, dopóki nie napotka problemu, który jest jego przyczyną, celowo tworząc ten sam niebieski ekran, ale następnie zapisując informacje w pliku dziennika, aby pomóc Ci zidentyfikować problem.

Uruchom sterownik sterownika

Jeśli często pojawia się ten sam niebieski ekran i chcesz aktywnie działać i go naprawić, oto jak skorzystać z weryfikatora sterowników.

  1. Kliknij przycisk Start
  2. Kliknij „ Wykonać"...
  3. Wchodzić CMD i naciśnij Wchodzić.
  4. W nowym oknie wprowadź weryfikator i naciśnij Wchodzić.


W Windows Vista i 7:

  1. Kliknij przycisk Start
  2. Wchodzić CMD w polu i kliknij Wchodzić.
  3. W nowym oknie wprowadź weryfikator i naciśnij Wchodzić.


W systemie Windows 8 i 8.1:

  1. Naciśnij klawisz Windows + X
  2. Kliknij „ Wiersz poleceń (administrator) (Windows PowerShell (administrator) w Windowsie 8.1)
  3. W nowym oknie wprowadź weryfikator i naciśnij Wchodzić.


Wszystkie wersje Windowsa:

  1. Upewnij się, że jest wybrany konfigurowanie ustawień użytkownika (dla twórców kodu) .
  2. Kliknij „ Następny" .
  3. Wybierać " Wybierz indywidualne ustawienia” z pełnej listy .
  4. Kliknij „ Następny" .
  5. Odznacz modelowanie systemu o niskich zasobach I żądania we/wy w trybie gotowości. (Te dwa powodują niepotrzebne obciążenie komputera.) Upewnij się, że wszystkie pozostałe opcje są zaznaczone.
  6. Kliknij dwukrotnie „ Następny" .
  7. Wybierać " Wybierz nazwy sterowników” z listy .
  8. Kliknij „ Następny" .
  9. Wybierz wszystkie sterowniki na tym ekranie, z wyjątkiem tych, które mówią Korporacja Microsoft w obszarze Dostawca. Jest bardzo mało prawdopodobne, że przyczyną problemu jest sterownik Microsoft.
  10. Kliknij „ Gotowy" .


Notatka. Jeśli nie możesz wykonać powyższych kroków, ponieważ niebieski ekran ciągle się pojawia, spróbuj uruchomić komputer w systemie .

W tym momencie musisz ponownie uruchomić komputer. Następnie spróbuj ponownie wywołać BSoD, robiąc to samo, co zrobiłeś wcześniej. Aby Ci pomóc, system Windows zwiększa obciążenie sterowników. Jeśli nie możesz odtworzyć BSoD, spróbuj uruchomić komputer na noc. Gdy BSoD pojawi się ponownie, uruchom ponownie komputer i przeczytaj plik Minidump.


Czytanie pliku zrzutu

Uruchomi się sterownik weryfikatora, wyświetli się niebieski ekran i zapisze plik dziennika. Ten plik dziennika znajduje się w C:\Windows\Minidump\. Przeczytaj go, a zobaczysz, który sterownik powoduje ten problem. Spróbuj wyszukać nazwę sterownika, aby zobaczyć, jakiego sprzętu używa Twój komputer.

Jak więc to odczytać? Potrzebujesz narzędzia do debugowania, które możesz pobrać ze strony Microsoft.

A . Pobierz pakiet SDK, zainstaluj go, wybierz narzędzia do debugowania i odznacz wszystko inne.

Należy pamiętać, że narzędzia do debugowania dla poprzednich wersji systemu Windows nie są już dostępne; będziesz musiał wysłać plik zrzutu do technika Microsoft w celu analizy.


Po zainstalowaniu znajdź go na ekranie startowym. Nazywa się windbg (x64). Uruchom to.

  1. Kliknij „ Plik", Następnie " Otwarta awaria” .
  2. Idź do C:\Windows\Minidump\ i otwórz zawarty w nim plik .DMP.
  3. Spójrz na dół wynikowego pliku, gdzie jest napisane: „ Prawdopodobnie spowodowane". Jest to dobra wskazówka, który sterownik powoduje problem.

Napraw sterownik

Zaktualizuj sterownik powiązany z tym sprzętem:

  1. Kliknij przycisk Start
  2. Trzask Panel sterowania
  3. Kliknij „ Przełącz na widok klasyczny”
  4. Kliknij dwukrotnie system
  5. Idź do Zakładka „Sprzęt”.
  6. Trzask Menedżer urządzeń
  7. Kliknij „ Zaktualizuj sterownik.”

W systemie Windows Vista i 7:

  1. Kliknij przycisk Start
  2. Trzask Panel sterowania
  3. Kliknij dwukrotnie Menedżer urządzeń
  4. Znajdź urządzenie powodujące problem
  5. Kliknij go prawym przyciskiem myszy
  6. Kliknij „ Zaktualizuj sterownik.”


W systemie Windows 8 i 8.1:

  1. Naciśnij klawisz Windows + X
  2. Trzask Panel sterowania
  3. Przeglądaj według małe ikony
  4. Trzask Menedżer urządzeń
  5. Znajdź urządzenie powodujące problem
  6. Kliknij go prawym przyciskiem myszy
  7. Kliknij „ Zaktualizuj sterownik.”

Lub skorzystaj z naszej aplikacji, aby nie pomylić się z weryfikatorem sterowników. Driver Reviver automatycznie aktualizuje wszystkie istniejące sterowniki na Twoim komputerze i jest szczególnie dobry w aktualizowaniu słabszych sterowników, takich jak ten, do najnowszej i najlepszej wersji.

Po naprawieniu problemu ze sterownikiem będziesz chciał wyłączyć weryfikator sterowników.

Wyłącz weryfikator sterowników

Gdy skończysz korzystać z weryfikatora sterowników, będziesz chciał go wyłączyć, ponieważ jest to dość trudne dla twojego komputera, gdy jest uruchomiony.

We wszystkich wersjach systemu Windows:

  1. Uruchom ponownie program Driver Verifier, wykonując powyższe kroki.
  2. Wybierać " Usuń istniejące ustawienia” .
  3. Kliknij „ Gotowy" .
  4. Uruchom ponownie komputer ponownie.


Dodaj ten artykuł do zakładek, aby móc z niego skorzystać w przyszłości, aby móc rozwiązać problem za każdym razem, gdy pojawi się niebieski ekran. Zapoznaj się także z naszą interakcją i wprowadź nazwę błędu, aby uzyskać więcej wskazówek na temat rozwiązywania konkretnego niebieskiego ekranu śmierci. Powodzenia!

Ostrzegamy, że wszelkie eksperymenty ze sterownikami są niebezpieczne i mogą uszkodzić system. Lepiej wcześniej zrobić kopię zapasową systemu, a potem nie trzymać palców i usuwać z Windowsa kolejny podejrzany sterownik.

I jak tylko przestaną krzyczeć Okna z Microsoftu, nazywając biedactwo jednocześnie powolnym, wadliwym, a nawet niestabilnym. Ale nikt nie spieszy się z rezygnacją z tego i ogólnie rzecz biorąc, jest mało prawdopodobne, że kiedykolwiek z tego zrezygnuje. Dlatego zamiast karcić biednych programistów i wzniecać bezsensowne wrzaski, dobrze byłoby dowiedzieć się, dlaczego tak naprawdę system jest wadliwy? Zdradzę ci mały sekret. Na osławionych ekranach śmierci i niestabilnej pracy Okna w zdecydowanej większości przypadków winne są sterowniki innych firm, a sam system operacyjny nie ma z tym absolutnie nic wspólnego. Teraz powiemy Ci, jak wykryć takie sterowniki i usunąć je z systemu.

Wady konstrukcyjne sterownika mogą obejmować awarie lub niebieski ekran śmierci ( BSOD-a– Blue Screen of Death) oraz na spowolnienie komputera i dziwne zachowanie niektórych aplikacji, które są całkowicie niezwiązane ze sterownikiem.

Niebieski ekran śmierci jest niezwykły (bez żadnej ironii!), ponieważ wyraźnie sygnalizuje obecność poważnego problemu i daje wskazówkę, gdzie kopać. Często (ale nie zawsze) nazwa „przestępczego” kierowcy jest wyświetlana bezpośrednio w prawym górnym rogu niebieskiego ekranu śmierci. Może jednak go tam nie być lub, co gorsza, może się tam znajdować nazwa zupełnie niepowiązanego sterownika.

Na przykład jeden dość popularny sterownik karty graficznej Matrox G450 ma tendencję do niszczenia podstawowych struktur podsystemu graficznego Okna 2000 , co powoduje wyświetlenie BSOD z nazwą sterownika systemowego win32k.sys, który implementuje znaczną część funkcji USER i GDI i który oczywiście nie ma z tym nic wspólnego. Zatem interpretowanie niebieskiego ekranu odczytów śmierci to magia, intuicja, nauka i sztuka – wszystkiego po trochu.

Oprócz wad sterowników, niebieskie ekrany śmierci mogą być również spowodowane awariami sprzętu, na przykład przetaktowanym procesorem, wadliwą pamięcią RAM lub krzywym kontrolerem. dysk twardy, karta PCI nie do końca włożona do slotu, luźny styk w jednym ze złączy, zły zasilacz, spuchnięty kondensator elektrolityczny na płyta główna. A ci drudzy dąsają się z różnych powodów: z powodu przegrzania pobliskiego procesora, braku „niezgłoszonych” przez producenta kondensatorów ceramicznych (w efekcie element RF przechodzi przez elektrolit i mocno go nagrzewa), czy wreszcie , z powodu wycieku kluczowych tranzystorów w stabilizatorze jednostki. Dlatego przed rąbaniem drewna musimy upewnić się, że żelazko, na którym siedzimy, jest w pełni sprawne. Jak można to zrobić?

Pojedynek z żelazem

Niebieskie ekrany śmierci spowodowane awarią sprzętu są spontaniczne, pojawiają się w sposób nieprzewidywalny i niezależnie od konkretnych działań użytkownika. Aplikacje aplikacyjne również zaczynają generować błędy krytyczne w różnych miejscach, a kody błędów, adresy i inne informacje wydawane przez system będą w każdym przypadku inne! Nawiasem mówiąc, sterowniki obsługujące na przykład żądania asynchroniczne z urządzeń wejścia/wyjścia sieci bezprzewodowe, zachowują się prawie tak samo. Niebieskie ekrany śmierci spowodowane przez wadliwe sterowniki zwykle pojawiają się podczas wykonywania określonego zestawu działań i zawierają mniej więcej stałe informacje.

Aby usunąć wszelkie podejrzenia ze sprzętu, wystarczy podłączyć do systemu kolejny dysk twardy, zainstaluj na nim dziewiczy czysty Okna i popracuj nad tym przez jakiś czas. Jeśli niebieskie ekrany śmierci nie znikną, oznacza to, że naprawdę winny jest sprzęt i czas to zmienić. Znalezienie wadliwych podzespołów to temat na osobną dyskusję, którą zostawimy na następny raz, ale na razie zakasamy rękawy i uporamy się z tymi podstępnymi sterownikami.

Drewno opałowe bez atestu trafia prosto do paleniska

Cały zestaw narzędzi niezbędnych do rozwoju sterowników ( DDK– Driver Development Kit), Microsoft dystrybuuje go bezpłatnie wraz z dołączoną dokumentacją. Sterowniki, czasami bardzo błędne i niestabilne.

Aby zapobiec takiemu chaosowi, Microsoftu już w starożytności wprowadziła procedurę poświadczania kierowców pod kątem spełniania nałożonych na nich wymagań, po czym kierowca otrzymuje podpis cyfrowy. Albo... nie został wydany i przesłany do rewizji. I choć certyfikacja jest jedynie procedurą formalną, która nie gwarantuje braku błędów krytycznych i wad rozwojowych, to i tak eliminuje część szczerze „pionierskich” sterowników.

W idealnym przypadku w systemie powinny znajdować się wyłącznie sterowniki podpisane cyfrowo. I choć podpis cyfrowy nie jest polisą ubezpieczeniową, to jego obecność już świadczy o pewnym poziomie kultury rozwoju. Sterowniki bez podpisu cyfrowego są gorsze niż świnia w worku i należy się ich pozbyć, jeśli to możliwe (zwłaszcza, że ​​wiele z nich to złośliwe programy instalowane przez rootkity lub agresywne mechanizmy obronne, które wnikają głęboko w system i powodują jego niestabilność). Krótko mówiąc, nie dajmy się ponieść demagogii, ale spróbujmy odpowiedzieć na jedno proste pytanie: jak stworzyć listę sterowników bez podpisu cyfrowego?

Narzędzie nam w tym pomoże sigverif.exe, zawarte w standardowym zestawie dostawy system operacyjny i znajduje się w katalogu WINNT\System32. Uruchamiamy go i widzimy okno dialogowe. Kliknij przycisk „Zaawansowane” i w zakładce „Wyszukiwanie” ustal kryteria wyboru przesuwając przycisk radiowy z pozycji „Powiadom o wypisaniu się” pliki systemowe”(gdzie domyślnie pozostawał) do pozycji „Wyszukaj inne pliki, które nie są podpisane cyfrowo”. Następnie w „Opcjach wyszukiwania” otwórz pole „Wyszukaj pliki następującego typu” i wybierz „*.sys”, a poniżej wskaż folder wyszukiwania „C:\WINNT”, zaznaczając opcję „W tym podfoldery”.

Właściwie, ściśle mówiąc, sterowniki nie muszą mieć rozszerzenia sys i nie zawsze ograniczają się do katalogu WINNT, znajdującego się w katalogach „swoich” aplikacji, a niektóre aplikacje nawet przechowują sterowniki… w sobie! Zaraz po uruchomieniu (lub w każdej innej chwili) zapisują plik na dysku w katalogu bieżącym lub tymczasowym, ładują sterownik do pamięci i... natychmiast usuwają go z dysku! Robią to nie tylko złośliwe wirusy, ale także całkiem szanowane programy, takie jak niektóre narzędzia słynnego badacza podpowierzchniowego systemu Windows, Marka Russinovicha.

Dlatego dla czystości eksperymentu nie zaszkodziłoby uzyskać listę sterowników aktualnie znajdujących się w pamięci i porównać je ze sterownikami znajdującymi się na dysku. Słowa „obecnie” są kluczowe, ponieważ sterowniki można pobrać/wyładować bezpłatnie bez konieczności ponownego uruchamiania systemu operacyjnego. Wskazane jest wykonanie tej operacji kilka razy, uruchamiając z wiersza poleceń narzędzie sterowniki.exe, które jest częścią pakietu DDK, który można pobrać z serwera Microsoft. Narzędzie uruchamiane bez żadnych przełączników za pomocą polecenia liniowego dyski.exe zrzuca wszystkie informacje na ekran, co nie jest dobre, ponieważ w systemie jest zwykle dużo sterowników i nie mieszczą się one na ekranie. Jednak religia pozwala nam przekierować strumień wyjściowy do plik tekstowy(drivers.exe > nazwa-pliku.txt), który może otworzyć każdy edytor tekstu- albo za pomocą Worda, albo za pomocą notatnika. Następnie pozostaje tylko wybrać pionowy blok (na co Notatnik nie pozwala) i uzyskać listę sterowników. Prosto z jądra systemu operacyjnego!

Jeżeli przynajmniej jeden z tych sterowników nie znajduje się w katalogu C:\WINNT\, to jego podpis cyfrowy nie zostanie zweryfikowany! Naturalnie taki sterownik od razu przyciąga uwagę i mamy uzasadnione pytanie: skąd się bierze? Najpierw skanujemy wszystkie katalogi na dysku; jeśli go tam nie ma, ustaw punkt przerwania w funkcji CreateFileW w Soft-Ice i sprawdź przekazane do niego argumenty. Prędzej czy później natkniemy się na nasz błędny sterownik, po czym pozostaje nam jedynie patrzeć na prawy dolny róg ekranu Soft-Ice, gdzie wyświetla się nazwa procesu, który go wygenerował. Więcej szczegółów można znaleźć w książce „Techniki debugowania programów bez tekstów źródłowych”, której elektroniczną kopię można znaleźć na serwerze ftp lub http nezumi.org.ru, a także na naszym dysku. I nadal dręczymy narzędzie sigverif.exe.

Po kliknięciu „OK”, „Start”, na ekranie pojawi się „termometr” pokazujący postęp, a dysk twardy zacznie szeleścić wszystkimi swoimi głowicami. Po zakończeniu pracy lista sterowników bez podpisu cyfrowego zostanie utworzona i wyświetlona na ekranie.

Niektórzy pasjonaci sugerują, aby w celu oczyszczenia systemu z herezji usunąć wszystkie niepodpisane sterowniki - wtedy, jak mówią, wszystkie problemy znikną. Jak można to zrobić? Najtrudniejszym rozwiązaniem jest po prostu usunięcie ich z dysku za pomocą FAR lub Explorera (oczywiście z uprawnieniami administratora!). Jednak konsekwencje takiej operacji mogą być bardzo katastrofalne i lepiej kliknąć prawym przyciskiem myszy ikonę sterownika w Eksploratorze, znaleźć we „Właściwościach” nazwę producenta, dzięki czemu można określić, jaki rodzaj zainstalowanej aplikacji/sprzętu ten sterownik i odinstaluj go w cywilizowany sposób. To prawda, jest tu jedno „ale”.

Sterownik został zaznaczony na poniższym rysunku. g400m.sys, który jest dostarczany z kartą Matrox G450 i choć Matrox wcale nie jest słabą firmą, to nie otrzymał podpisu cyfrowego (albo Microsoft go nie dał, albo sam Matrox nie chciał się zawracać). Naturalnie po usunięciu go z systemu trzeba będzie zapomnieć o trybie SVGA. Można jednak wejść na stronę Matroxa i pobrać najnowszą wersję sterownika (jest ona już podpisana cyfrowo). Tylko tutaj... zarówno wersje podpisane, jak i niepodpisane zawierają wiele błędów krytycznych, w szczególności w wyniku pewnych okoliczności przy próbie przejścia do trybu nakładki system wywala BSOD, ponieważ sterownik próbuje zwolnić już zwolnioną pamięć.

Zatem obecność/brak podpisu cyfrowego sama w sobie nic nie oznacza i nawet jeśli używamy tylko podpisanych sterowników, nie daje nam to żadnej gwarancji stabilności.

W tym miejscu przechodzimy do drugiej części artykułu, a mianowicie do testowania kierowców w warunkach zbliżonych do bojowych.

Poddajemy drewno opałowe prawdziwemu testowi

DDK zawiera wspaniałe narzędzie Kierowca Weryfikator, co stwarza kierowcom najcięższe warunki, graniczące ze skrajnością i samobójstwem, przy czym prawdopodobieństwo niepowodzenia jest maksymalne, a nazwisko wadliwego kierowcy jest ustalane z największą dokładnością (nawet jeśli nie cierpi on z powodu wad rozwojowych, ale niszczy strukturę danych sterowników innych osób).

Ważne jest, aby o tym pamiętać Kierowca Weryfikator- To nie jest lek, a jedynie narzędzie diagnostyczne. Nadal nie uchroni Cię to przed awariami (wręcz przeciwnie, zwiększy ich intensywność o kilka rzędów wielkości), ale pomoże zidentyfikować „podstępny” sterownik z wystarczającym stopniem niezawodności.

Uruchamiamy więc verifier.exe, widzimy okno Kierowca Weryfikator Menedżer, przechodzimy do zakładki Ustawienia i przesuwamy przycisk opcji na pozycję Sprawdź wszystkich kierowców, po czym wciskamy przycisk „Preferowane ustawienie”, który ustawia następujące typy weryfikacji:

  • Specjalny basen– testowanym sterownikom zostanie przydzielony do alokacji specjalny obszar pamięci, który nie działa zbyt szybko, ale jest w stanie wykryć większość rodzajów niszczenia danych własnych i cudzych.
  • Siła IRQL kontrola. IRQL to poziom żądania przerwania. Najczęstszym błędem popełnianym przez twórców sterowników jest próba dostępu do pamięci na poziomie IRQL, na którym nie działa menedżer stronicowania. A jeśli nagle okaże się, że żądana strona została wyeksmitowana na dysk, system zamieni się w niebieski ekran z napisem „IRQL_LESS_OR_EQULAR”. Wymuszenie tego trybu wymusza zrzut stron sterownika na dysk, dzięki czemu wada projektowa pojawia się w 100% przypadków.
  • Niski ratunek symulacja Warto go zainstalować, aby zobaczyć, jak zachowa się sterownik w przypadku katastrofalnego braku zasobów systemowych, ale nie trzeba tego robić, ale lepiej pozostawić checkbox Śledzenie puli (monitorowanie poprawności obsługi pamięci basen). Błędy wejścia/wyjścia (weryfikacja I/O) stanowią znikomą część wszystkich błędów, zatem położenie tego checkboxa jest w zasadzie całkowicie bezkrytyczne.

Po zakończeniu wybierania ustawień kliknij przycisk „Zastosuj” i zgodnie z sugestią uruchom ponownie komputer.

Natychmiast po rozpoczęciu uruchamiania system zauważalnie zwalnia, czyli tak, jak powinien, ponieważ jądro wykonuje znacznie więcej kontroli niż zwykle. Po wykryciu błędów miga niebieski ekran śmierci z nazwą sterownika i innymi informacjami przydatnymi dla programistów, ale dla nas bezużytecznymi. Jedyne, co możemy zrobić, to zaktualizować sterownik do najnowszej wersji najnowsza wersja lub odmówić korzystania z programu (sprzętu), który go używa. Właściwie mamy trochę więcej możliwości rozpalania mokrego drewna, ale o tym później.

Status weryfikacji możesz sprawdzić w dowolnym momencie, uruchamiając plik verifier.exe. Karta Stan sterownika zawiera listę statusów wszystkich wykrytych sterowników wraz z wyjaśnieniem bieżącej sytuacji. Stan Załadowany oznacza, że ​​ten sterownik został załadowany i przetestowany co najmniej raz (ale być może nie całkowicie, to znaczy nie wszystkie części sterownika zostały przetestowane). Status Unloaded oznacza, że ​​sterownik został załadowany, zweryfikowany (ewentualnie częściowo) i wyładowany przez system/program go korzystający lub na własne żądanie. To ostatnie jest szczególnie typowe dla sterowników pozostałych po sprzęcie, który został wyjęty poprzez barbarzyńskie wyciągnięcie karty rozszerzeń ze slotu, czyli bez przeprowadzenia dezinstalacji. Sterownik, który przeżył, skanuje magistralę, próbując znaleźć „jego” sprzęt, wyszukiwanie kończy się niepowodzeniem, a następnie, nawiasem mówiąc, rozładowuje się z pamięci, spowalniając uruchamianie systemu (czasami bardzo znacznie) i powodując konflikt z innymi sterownikami. Morał: sprzęt należy usunąć z systemu zgodnie ze wszystkimi zasadami! Nie każdy jednak status Rozładowany jest oznaką nienormalnej sytuacji i przed usunięciem kierowcy z takim statusem należy w pierwszej kolejności dowiedzieć się, co to za renifer i skąd się wziął.

Status Nigdy nie załadowany wskazuje, że ten sterownik nie został jeszcze załadowany, czyli nie został sprawdzony, dlatego należy poczekać przed uruchomieniem różne programy które mogą być z tym powiązane. Jednak niektóre sterowniki (zwłaszcza nieprawidłowo odinstalowane) nie są ładowane i dlatego nigdy nie są sprawdzane.

Po pewnym czasie pracy z systemem w trybie twardej kontroli (od kilku godzin do kilku dni) zidentyfikujemy prawie wszystkie wadliwe sterowniki, na które cierpieliśmy wcześniej i zapiszemy ich nazwy na kartce papieru.

Możesz przywrócić system do trybu normalnego (to znaczy bez dodatkowych kontroli pochłaniających wydajność), używając tego samego weryfikatora. Wracamy do zakładki Ustawienia, przesuwamy przycisk radiowy na pozycję Zweryfikuj wybrane sterowniki (żaden sterownik nie powinien być wybrany), klikamy „Resetuj wszystko”, następnie „Zastosuj” i uruchamiamy ponownie komputer. Wszystko! System działa teraz z normalną prędkością, ale bez kontroli.

Co zrobić z wilgotnym drewnem opałowym?

Ale tak naprawdę, co można zrobić z wadliwym sterownikiem? Hakerzy, którzy wiedzą, jak trzymać debugger w rękach, jeśli mają wystarczająco dużo wolnego czasu, mogą go zdemontować (na szczęście sterowniki są zwykle niewielkich rozmiarów), znaleźć błąd i wymyślić sposób na jego naprawienie, ale.. jest to zbyt czasochłonne.

Wyrzucenie sterownika (wraz ze sprzętem/programem, który go używa) również nie wchodzi w grę. Chociaż wiadomo, że winne są niebieskie ekrany śmierci karta dźwiękowa od nieznanego chińskiego producenta, który kosztuje 20 dolarów, to mamy bardzo silną motywację, aby zastąpić go czymś bardziej godnym. Ale to, ściśle rzecz biorąc, jest już jasne dla wszystkich i nie wymaga dodatkowych komentarzy.

Ale nie wszyscy wiedzą, że ogromna liczba awarii i niebieskich ekranów śmierci wynika z faktu, że sterownik opracowany (i przetestowany) w środowisku jednoprocesorowym jest zainstalowany na maszynie dwuprocesorowej. Przez „dwuprocesor” rozumiemy tutaj zarówno prawdziwą platformę z dwoma kamieniami, jak i procesory Hyper-Threading/wielordzeniowe. Wiadomo (i potwierdza to duża liczba badań), że komputer domowy dwa procesory są absolutnie bezużyteczne, ponieważ w zdecydowanej większości aplikacji praktycznie nie ma wzrostu wydajności.

Dlatego jeśli system jest niestabilny i z tego czy innego powodu nie można pozbyć się wadliwego sterownika, możesz spróbować dostać się do konfiguracji BIOS-u, zamieniając maszynę „wirtualną z dwoma procesorami” w maszynę jednoprocesorową . Podobny efekt można uzyskać otwierając plik boot.ini (na komputerach z rozszerzeniem Windows NT/2000/XP znajduje się on w katalogu głównym dysku logicznego, na którym zainstalowany jest system) i dodając do niego przełącznik /ONECPU, po czym restartujemy komputer w nadziei, że błędy znikną.

Lista 1

Przykład typowego pliku boot.ini


limit czasu = 30

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

Lista 2

Konfigurujemy system tak, aby korzystał tylko z jednego procesora ze wszystkich dostępnych


limit czasu = 30
domyślnie=multi(0)dysk(0)rdisk(0)partycja(1)\WINNT
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows 2000 Pro" /fastdetect /SOS /ONECPU

Ale dalej Okna Widok Nie ma pliku boot.ini i chociaż możliwa jest (tymczasowa) konfiguracja ustawień rozruchu za pomocą specjalnego narzędzia, Microsoft planuje całkowicie wyeliminować tę lukę, tak aby pozostała tylko konfiguracja BIOS-u. Jednakże, jeśli chodzi o Widok, to zanim na to przejdą, twórcy sterowników prawdopodobnie nabędą maszyny wieloprocesorowe (ponieważ innych po prostu nie będzie w sprzedaży) i będą testować swoje dzieła w środowisku wieloprocesorowym.

Kolejny subtelny punkt. Pamiętasz, jak powiedzieliśmy powyżej, że najczęstszym błędem popełnianym przez twórców sterowników jest uzyskiwanie dostępu do pamięci z możliwością wywłaszczania na poziomie IRQL, na którym menedżer stronicowania nie działa, a jeśli żądanej strony nie ma w pamięci, następuje awaria? Oczywistym rozwiązaniem byłoby zwiększenie pamięci RAM do wolumenu, przy którym praktycznie żadne strony nie są usuwane na dysk. Przy obecnych cenach pamięci prawie każdego stać na zakup kilku nowych kości pamięci. Istnieje jednak bardziej dostępne (i bardziej eleganckie) rozwiązanie tego problemu. Jeżeli parametr Wyłącz PagingExecutive, znajdujący się w następnej gałęzi rejestru HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement, jest równe jeden (domyślnie zero), komponenty nuklearne nie zostaną wywłaszczone. Dlatego po prostu uruchamiamy „Edytor rejestru”, zmieniamy ten cenny parametr i uruchamiamy ponownie komputer (zmiany zaczynają obowiązywać dopiero po ponownym uruchomieniu), mając nadzieję, że pomoże to rozwiązać problem awarii.

Narzędzie Driver Verifier (verifier.exe) służy do analizy problematyczne sterowniki podczas analizowania zrzutów pamięci po BSOD nie pozwala na znalezienie problematycznego sterownika. Driver Verifier to „ratunek” w najbardziej problematycznych sytuacjach.

Dzięki Driver Verifier możesz:

    test warunków skrajnych dla kierowców (symulowane są warunki niedoboru zasobów);

    kontrola przepełnienia bufora;

    kontrola nad błędami powstałymi na skutek nieprawidłowej pracy na danym IRQL;

    Analiza błędów we/wy;

    wykrywanie sytuacji zakleszczenia itp.

Narzędzie Driver Verifier jest bardzo przydatne, gdy:

    administrator (użytkownik) ma podejrzenia, że ​​ten konkretny sterownik powoduje awarię systemu i chce dokładniej sprawdzić, czy rzeczywiście tak jest;

    twórcy sterowników chcą przetestować swój sterownik;

    Analizując zrzut po BSOD, nie można znaleźć problematycznego sterownika.

Jednym z najtrudniejszych przypadków analizy zrzutów pamięci jest sytuacja, gdy sterownik omyłkowo nadpisuje dane przed lub po zakończeniu przydzielonego bufora. W takich przypadkach pojawiają się błędy w jądrze systemu operacyjnego (na przykład analiza zrzutu po BSOD pokazuje, że błąd wystąpił w ntoskrnl.exe).

Spójrzmy na podobny przypadek w konkretny przykład. Za pomocą narzędzia NotMyfault powodujemy BSOD - „Przepełnienie bufora”.

Wynik analizy zrzutu za pomocą windbg znajduje się poniżej.

Zgodnie z analizą zrzutu otrzymujemy:

1. Arg1: 00000007, Próba zwolnienia puli, która została już zwolniona (podjęto próbę uwolnienia już uwolnionej puli)

2. NAZWA_OBRAZU: ntkrpamp.exe (sam rdzeń systemu ma z tym coś wspólnego)

Przy takich błędach z pomocą przychodzi weryfikator.

Uruchom weryfikator.

Wybierz opcję „Utwórz parametry niestandardowe”. Następnie wybierz opcję „Wybierz parametry z listy”.

Zaznacz wszystko oprócz „Symuluj niedobór zasobów”.

Następnie wybierz opcję „Wybierz niezaładowane sterowniki dla tej listy” i podaj ścieżkę do sterownika myfault.sys, który znajduje się w tym samym katalogu, co program NotMyfault.exe.

Następnie zaznacz sterownik i kliknij „Zakończ”. Następnie musimy ponownie uruchomić komputer.

Wykonujemy te same czynności co na początku. Uruchom NotMyfault.exe, wybierz „Przepełnienie bufora” i kliknij „Awaria”. Jak zauważyłeś, awaria może nie nastąpić natychmiast, ponieważ nie wiadomo z góry, kto i kiedy będzie próbował pracować z tą pamięcią. Jak widać na obrazku poniżej, dzięki weryfikatorowi, system jest w stanie zidentyfikować problematyczny sterownik.

Przeprowadzę analizę zrzutu pamięci po BSOD za pomocą!analyze –v w windbg.exe.

Program weryfikatora sprawia, że ​​testowany sterownik zamiast zwykłej pamięci dostępnej w jądrze wykorzystuje specjalną pulę przeznaczoną do wykrywania takiego błędu. Dzięki temu możesz znaleźć sterownik powodujący BSOD.

Jeśli spojrzymy na wyniki analizy, zobaczymy, co następuje.

1. DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION (d6) – jest to jeden z błędów generowanych przez weryfikator

2. IMAGE_NAME: myfault.sys – sterownik, który spowodował problem.

Tak więc, jeśli analiza zrzutu pamięci po BSOD nie pozwala na znalezienie „sterownika sprawcy”, użyj programu verifier.exe (zainstaluj wszystkie testy z wyjątkiem braku pamięci).

Najprostszym sposobem użycia narzędzia Driver Verifier (verifier.exe) jest uruchomienie go z następującymi parametrami:

weryfikator /standard /sterownik nazwa pliku sterownika

Wyświetlenia postów: 1042