컴퓨터에 어떤 드라이버가 필요한지 확인하십시오. Driver Verifier를 사용하여 문제가 있는 드라이버를 식별합니다. 덤프 파일 읽기

BSOD에는 여러 가지 이유가 있지만 이 기사에서는 설치된 드라이버의 충돌로 인해 발생하는 문제를 살펴보겠습니다. 그럴 수도 있지 설치된 드라이버또는 손상되었습니다. BSOD 문제를 해결하는 것은 단지 드라이버 문제이고 어떤 문제인지 알고 있다면 매우 간단할 수 있습니다. 드라이버를 다시 설치하거나 업데이트하고 이전 버전으로 롤백할 수 있습니다. 구 버전또는 컴퓨터에 드라이버를 설치한 응용 프로그램을 물리적으로 제거하여 제거하십시오. 문제는 모든 데이터를 조사한 후에도 어떤 운전자가 "범인"인지 알아내는 것이 항상 가능한 것은 아니라는 것입니다. 블루 스크린. 그러나 탈출구가 있습니다. 지식과 경험이 많지 않지만 드라이버를 확인해야 하는 경우에는 OS에 내장된 특수 검증 도구 Verifier.exe를 사용할 수 있습니다. Microsoft 기술 자료의 기존 설명은 숙련된 사용자에게도 항상 알려지지 않은 복잡한 기술 용어를 사용하여 제공됩니다. 따라서 이 문서에서는 작업을 완료하는 데 필요한 간단한 조작 목록을 제공합니다. 드라이버 검증 프로그램 실행"시작" 메뉴를 연 후 검색 필드에 "실행" 쿼리를 입력하고 상단에 나타나는 결과를 클릭하세요. 나타나는 창에서 " 명령을 입력해야 합니다. 검증인"(따옴표 제외)를 입력하고 "확인"을 클릭하여 확인하세요.
파일 확인 관리자 대화 상자가 나타납니다. 첫 번째 대화 상자에서 "비표준 매개변수 생성(프로그램 코드용)" 항목을 선택해야 합니다. “다음”을 클릭하세요.
다음 단계는 드라이버를 테스트하기 위해 개별 매개변수를 선택하는 것입니다. 이를 위해 다음 조작을 수행합니다. “다음에서 개별 매개변수를 선택합니다. 전체 목록" - "더 나아가".
단계를 완료하면 테스트 매개변수 목록이 포함된 대화 상자가 표시됩니다. “자원 부족 시뮬레이션” 항목을 제외한 모든 확인란을 선택합니다. 다음을 클릭하세요.
이 부분의 마지막 단계는 디스패처에게 다음 명령을 내리는 것입니다. 자동 선택서명되지 않은 드라이버. "서명되지 않은 드라이버 자동 선택"을 선택하십시오. 다음을 클릭하세요.
관리자가 서명되지 않은 드라이버를 감지하지 못한 경우가 있습니다. 그런 다음 나중에 설명할 선택적 드라이버 확인 기능을 사용하십시오. 서명되지 않은 드라이버 작업서명되지 않은 드라이버가 감지되면 관리자는 이를 목록 형식으로 표시합니다.
이는 장치 드라이버 또는 응용 프로그램 드라이버일 수 있습니다. 서명되지 않은 드라이버가 감지되면 관리자를 닫고 "마침" 버튼을 클릭할 필요가 없습니다. 먼저 업데이트된 드라이버를 확인해 보겠습니다. 업데이트된 드라이버 검색확인하려면 다음 단계를 수행해야 합니다. 1. 응용 프로그램 드라이버가 목록에 있습니다. 이 경우, 응용 프로그램 제조업체의 웹사이트를 방문하여 업데이트된 드라이버를 확인해야 합니다. 경우에 업데이트된 버전드라이버가 없습니다. 응용 프로그램을 제거해 보십시오. 두려워하지 마십시오. 나중에 언제든지 다시 설치할 수 있습니다. 그러나 이는 훌륭한 검사가 될 것입니다. 심각한 오류가 더 이상 발생하지 않으면 그 이유는 다음과 같습니다. 이 신청서. 2. 목록에는 장치 드라이버가 포함되어 있습니다. 이 경우(있는 경우 윈도우 비스타), 업데이트 센터를 실행하고 새 드라이버 기능 검색을 활성화합니다. 새 드라이버가 발견되면 설치를 실행합니다. 3. 업데이트 센터에서 새 드라이버를 찾지 못한 경우 제조업체 웹사이트를 살펴보세요. 새 드라이버가 있을 가능성이 높습니다. 드라이버나 애플리케이션을 업데이트한 후 스캔 관리자(취소 버튼)를 닫고 재부팅한 후 OS가 로드될 때까지 기다립니다. 심각한 오류가 중지된 경우 드라이버나 응용 프로그램 업데이트를 통해 해당 오류가 제거되었습니다. 드라이버 제거새 드라이버를 찾을 수 없는 경우 드라이버를 제거해 볼 수 있습니다. 주목! 드라이버를 제거하면 장치 작동이 중지됩니다. 재부팅 후 OS는 스토리지에서 드라이버 설치를 시도하지만 표준 드라이버가 설치하는 것은 사실이 아닙니다. 드라이버를 제거해야 하는지 확실하지 않은 경우 드라이버를 제거하지 마십시오. 다음을 수행하여 장치 관리자를 시작합니다. 시작 – 실행 – devmgmt.msc- 입력하다. 발견한 필요한 장치, 마우스 오른쪽 버튼을 클릭하고 속성 - 드라이버 - 제거를 클릭합니다. 서명되지 않은 드라이버 확인 중주목! 서명되지 않은 드라이버를 확인한 후 시스템이 부팅되지 않을 수 있습니다. 다음은 이 상황에서 취한 조치에 대한 설명입니다. 드라이버를 제거할지 확실하지 않지만 계속해서 검사를 계속하려면 검사 관리자에서 마침 버튼을 클릭하세요. 물리 디스크를 선택하라는 메시지가 나타나면 OS가 설치된 디스크를 선택한 후 다시 마침을 클릭합니다. "변경 사항을 적용하려면 컴퓨터를 다시 시작해야 합니다."라는 텍스트가 포함된 메시지가 표시됩니다. 모든 응용 프로그램을 조용히 닫고 재부팅하십시오. 시스템이 부팅되지 않고 오류 설명과 함께 블루 스크린이 나타나면 드라이버가 귀찮은설립하다. 컴퓨터를 다시 시작한 후 OS를 로드하기 전에 다음을 클릭합니다. F8 verifier.exe/reset검증인.exe
사용자 정의 드라이버 확인 Driver Verifier Manager를 다시 시작하고 아래 표시된 지점까지 이전 단계를 수행하십시오.
"목록에서 드라이버 이름 선택"을 선택하십시오. 다음 단계는 확인할 드라이버를 선택하는 창입니다. OS는 스캔을 위해 상당히 많은 양의 리소스를 예약하고 이에 많은 시간을 소비하기 때문에 한 번에 모든 드라이버를 선택해서는 안됩니다. 확인 절차를 여러 번 반복하는 것이 좋지만 드라이버 수가 적습니다. 이렇게 하면 시간과 자원이 절약됩니다. 우선 최근에 업데이트된 드라이버나 단순히 문제가 있는 드라이버를 확인해보자(드라이버 바이러스 백신 프로그램, 방화벽, 가상 디스크또는 자동차). 다음 단계는 Microsoft에서 생산하지 않은 드라이버를 확인하는 것입니다. 나머지 드라이버를 10~15번씩 확인하세요.
선택하다 필요한 드라이버그리고 "완료" 버튼을 클릭하세요. 물리 디스크를 선택하라는 메시지가 나타나면 OS가 설치된 디스크를 선택한 후 다시 마침을 클릭합니다. 재부팅하라는 메시지가 나타납니다. 컴퓨터를 다시 시작하십시오. 재부팅 후 오류 메시지와 함께 블루 스크린이 나타나면 문제를 일으키는 드라이버가 발견되었음을 의미합니다. 컴퓨터를 다시 시작한 후 OS를 로드하기 전에 다음을 클릭합니다. F8"실행"을 선택하고 안전 모드" 로그인 후 시작 버튼을 클릭하고 실행/검색을 입력하세요. verifier.exe/reset. 문제가 발생하지 않고 시스템이 표준 모드에서 시작된 경우 서명되지 않은 드라이버는 문제를 일으키지 않으므로 다른 드라이버를 확인해야 합니다. 드라이버 확인 프로그램 관리자를 다시 실행합니다( 검증인.exe) '현재 확인된 드라이버에 대한 정보 표시'를 선택하세요.
나머지 모든 드라이버에 대해 검색을 반복합니다. 드라이버 확인 완료모든 드라이버를 확인해도 심각한 오류의 원인이 밝혀지지 않으면 드라이버에 문제가 없을 가능성이 높습니다. 문제는 소프트웨어가 아니라 컴퓨터 하드웨어에 있을 수 있습니다. 대부분 하드 드라이브나 RAM에 문제가 있을 가능성이 높습니다. 또한 전원 공급 장치에 모든 장치의 작동을 보장할 만큼 충분한 전력이 없거나 드라이버를 확인하여 확인할 수 없는 하드웨어의 다른 문제가 있을 수도 있습니다. RAM을 진단하고 HDD.

결함이 있는 드라이버는 컴퓨터에 많은 문제를 일으킬 수 있습니다. 컴퓨터에 결함이 있는 드라이버가 있다는 주요 징후는 종종 드라이버가 비활성화되어 발생하는 블루 스크린입니다.

이 기사에서는 결함이 있는 드라이버를 찾아 업데이트하거나 완전히 제거하는 방법을 설명합니다.

때때로 Windows는 드라이버 중 하나에 오류가 발생했음을 사용자에게 알립니다. 그러나 시스템이 문제가 무엇인지 감지할 수 없기 때문에 오류 메시지가 표시되지 않으므로 필요에 따라 더 느리게 작동하거나 작동하지 않는 것입니다. 이 경우 드라이버 확인 관리자(Driver Verifier)는 시스템 드라이버에 추가 부하를 발생시켜 충돌을 일으키려고 합니다. 드라이버 중 하나에 오류가 발생하면 드라이버 확인 관리자블루 스크린을 사용하여 문제를 보고합니다.

경고

사용하기 전에 드라이버 확인 관리자이 도구는 귀하가 자신의 컴퓨터를 사용하는 것을 제한할 수 있다는 점에 유의하십시오. 왜냐하면 드라이버 확인 관리자결함이 있는 드라이버를 감지하면 블루 스크린이 표시됩니다. 이로 인해 Windows를 부팅할 때 심각한 문제가 발생할 수 있습니다.

드라이버 테스트를 비활성화하기 위해 Windows에 들어갈 수 있는 방법이 없으면 컴퓨터는 빠져나오기 매우 어려운 "부팅 -> 로드 -> 충돌" 루프에서 실행됩니다. 자동 복구 기능은 Windows에 액세스할 수 있는 몇 가지 옵션 중 하나이지만 이러한 상황은 피하는 것이 좋습니다.

Driver Verifier를 사용하기 전에 다음 비상구 중 하나 이상이 있는지 확인하십시오.

  • 안전 모드로 들어갈 수 있습니다. 시작하기 전에 안전 모드로 들어가기 윈도우 부팅일반적으로 컴퓨터가 부팅되는 동안 F8을 반복해서 누르면 수행됩니다. 그러나 새 컴퓨터는 너무 빨리 부팅되므로 적절한 시점에 F8을 누를 시간이 없습니다.
  • 사용하기 전에 시스템 복원 지점을 만드셨나요? 드라이버 확인 관리자. 설치하는 것도 좋습니다 윈도우 디스크컴퓨터를 공장 설정으로 복원할 수 있습니다.

드라이버 확인 프로그램 관리자를 실행하는 방법

사용 지침을 시작하기 전에 드라이버 확인 관리자, 위의 '경고' 섹션을 꼭 읽어보세요. Windows가 끝없이 로딩되는 것을 방지하는 방법이 나와 있습니다.

비상 탈출 계획이 있다고 100% 확신하면 " 윈도우 키 + R"라고 입력하고 cmd대화 상자에서 실행하다"를 클릭한 후 "를 클릭하세요. 좋아요».

명령 창에 다음을 입력합니다.

검증인

팝업창에서 "를 선택하세요. 비표준 매개변수 생성(프로그램 코드용)"를 클릭한 후 "를 클릭하세요. 더 나아가».

드라이버를 확인하기 위해 실행할 수 있는 모든 테스트 목록이 표시됩니다. 목록에서 모든 테스트를 선택하고, 제외하고"임의의 리소스 부족 시뮬레이션" 및 "추가 DDI 준수 확인"을 클릭한 다음 " 더 나아가».

다음 화면에서 "를 선택하세요. 선택하다목록의 드라이버 이름"를 누르고 "를 누르세요. 더 나아가».

여기에서 테스트하려는 드라이버를 선택할 수 있습니다. 어떤 드라이버에 결함이 있는지 모르는 경우 Microsoft를 제외한 모든 드라이버를 선택하세요. 대부분 오류 없이 작동하는 경우가 많기 때문입니다.

"를 누르면 준비가 된", Windows에서는 PC를 다시 시작하라는 메시지를 표시합니다. 컴퓨터가 켜진 후 평소처럼 계속 사용하세요. 블루 스크린이 나타나면 오류 메시지에 주의하고 컴퓨터를 다시 시작하세요.

결함이 있는 드라이버를 식별한 후에는 비활성화할 수 있습니다. 드라이버 확인 관리자두 가지 방법 중 하나. 명령 프롬프트를 다시 열고 명령을 입력할 수 있습니다. 검증인을 선택하고 ' 기존 설정 제거».

명령 프롬프트를 열고 다음을 입력할 수도 있습니다.

검증자 /bootmode 재설정onbootfail

Driver Verifier Manager를 비활성화한 후 컴퓨터를 다시 시작하십시오. 컴퓨터가 켜지지 않으면 "경고" 섹션에서 설명한 비상구 중 하나를 사용하십시오.

결론

드라이버 중 하나에 결함이 있다고 생각하지만 어느 드라이버에 결함이 있는지 알 수 없는 경우 드라이버 확인 관리자큰 도움이 될 것입니다.

그러나 드라이버를 테스트한 후 컴퓨터가 켜지지 않을 가능성에 대비해야 하므로 다음을 사용하여 백업 종료를 고려하십시오. 긴급 상황예를 들어 안전 모드로 전환하거나 Windows 복원 지점을 실행합니다.

컴퓨터의 드라이버에 문제가 있었던 적이 있습니까? 결함이 있는 운전자를 어떻게 찾았나요? 아래 댓글로 알려주세요!

Driver Verifier 유틸리티(verifier.exe)는 BSOD 후 메모리 덤프 분석을 통해 문제가 있는 드라이버를 찾을 수 없는 경우 문제가 있는 드라이버를 분석하도록 설계되었습니다. Driver Verifier는 가장 문제가 많은 상황에서 "생명의 은인"입니다.

Driver Verifier를 사용하면 다음을 수행할 수 있습니다.

    운전자 스트레스 테스트(자원 부족 조건이 시뮬레이션됨)

    버퍼 오버플로 제어;

    주어진 IRQL에서 잘못된 작동으로 인해 발생하는 오류를 제어합니다.

    I/O 오류 분석;

    교착상태 감지 등

Driver Verifier 유틸리티는 다음과 같은 경우에 매우 유용합니다.

    관리자(사용자)는 이 특정 드라이버가 시스템 충돌을 일으키는 것으로 의심하고 이것이 실제로 사실인지 추가로 확인하고 싶어합니다.

    드라이버 개발자는 자신의 드라이버를 테스트하고 싶어합니다.

    BSOD 이후 덤프를 분석할 때 문제가 있는 드라이버를 찾는 것은 불가능합니다.

메모리 덤프를 분석하는 가장 어려운 경우 중 하나는 드라이버가 할당한 버퍼의 끝 전후에 실수로 데이터를 덮어쓰는 경우입니다. 이러한 경우 OS 커널에서 오류가 발생합니다. 예를 들어 BSOD 후 덤프를 분석하면 ntoskrnl.exe에서 오류가 발생한 것으로 나타납니다.

보자 비슷한 경우구체적인 예에서. NotMyfault 유틸리티를 사용하면 BSOD - "버퍼 오버플로"가 발생합니다.

windbg를 이용한 덤프 분석 결과는 아래와 같습니다.

덤프 분석에 따르면 다음과 같은 결과를 얻습니다.

1. Arg1: 00000007, 이미 해제된 풀을 해제하려고 시도합니다. (이미 해제된 풀을 해제하려고 시도했습니다.)

2. IMAGE_NAME: ntkrpamp.exe (시스템 자체의 핵심이 이것과 관련이 있습니다)

이러한 오류로 인해 검증자가 구출됩니다.

검증 프로그램을 시작하세요.

"비표준 매개변수 생성"을 선택합니다. 다음으로 "목록에서 매개변수 선택"을 선택합니다.

"자원 부족 시뮬레이션"을 제외한 모든 항목을 선택합니다.

그런 다음 "이 목록에 대해 언로드된 드라이버 선택"을 선택하고 NotMyfault.exe 프로그램과 동일한 디렉터리에 있는 myfault.sys 드라이버의 경로를 지정합니다.

그런 다음 드라이버를 표시하고 "마침"을 클릭하십시오. 그런 다음 컴퓨터를 재부팅해야 합니다.

우리는 처음과 동일한 작업을 모두 수행합니다. NotMyfault.exe를 실행하고 "버퍼 오버플로"를 선택한 다음 "충돌"을 클릭합니다. 아시다시피 충돌은 즉시 발생하지 않을 수 있습니다. 왜냐하면 누가 언제 이 메모리로 작업을 시도할지 미리 알 수 없기 때문입니다. 아래 이미지에서 볼 수 있듯이 검증자 덕분에 시스템은 문제가 있는 드라이버를 식별할 수 있습니다.

BSOD 이후 메모리 덤프에 대한 windbg.exe의!analyze –v를 사용하여 분석해 보겠습니다.

검증 프로그램은 테스트 중인 드라이버가 커널에서 사용 가능한 일반 메모리 대신 이러한 오류를 감지하도록 설계된 특수 풀을 사용하도록 만듭니다. 덕분에 BSOD를 일으키는 드라이버를 찾을 수 있습니다.

분석 결과를 살펴보면 다음과 같다.

1. DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION(d6) – 이는 검증자에 의해 생성된 오류 중 하나입니다.

2. IMAGE_NAME: myfault.sys – 문제를 일으킨 드라이버.

따라서 BSOD 이후 메모리 덤프를 분석해도 "범인 드라이버"를 찾을 수 없는 경우 verifier.exe 프로그램을 사용하십시오(메모리 부족을 제외한 모든 검사 설치).

Driver Verifier(verifier.exe)를 사용하는 가장 간단한 방법은 다음 매개변수를 사용하여 실행하는 것입니다.

검증자 /표준 /driver 드라이버 파일 이름

공익사업 운전사 검증자모두에 포함 윈도우 버전, Windows XP부터 시작하여 드라이버를 확인하고 문제를 일으키는 문제가 있는 드라이버를 식별할 수 있습니다. 죽음의 블루 스크린 (BSOD- 죽음의 블루스크린) 및 녹화 자세한 정보추가 분석을 위해 메모리 덤프에 있는 문제가 있는 드라이버에 대해 설명합니다. 유틸리티는 검사된 드라이버에 다양한 " 스트레스 테스트", 메모리 부족, I/O 제어, IRQL, 교착 상태, DMA 검사, IRP 등 다양한 극한 조건을 시뮬레이션합니다. 생산적인 시스템에서 거의 발생하지 않는 상황을 시뮬레이션하고 그 안에서의 운전자 행동을 모니터링합니다. 이 유틸리티의 목적은 드라이버가 BSOD로 인해 시스템 충돌을 일으킬 수 있는 상황을 식별하는 것입니다.

Driver Verifier 유틸리티의 실행 파일은 다음과 같습니다. 검증자.exe%windir%\system32 디렉터리에 있습니다. 유틸리티를 사용하는 방법에는 명령줄을 사용하거나 다음을 사용하는 두 가지 옵션이 있습니다. GUI.

Windows 8에서 드라이버 확인 모드를 활성화하려면 다음을 입력하여 Driver Verifier 유틸리티를 실행하십시오.

검증자

작업 목록에서 다음을 선택하세요. 사용자 정의 설정 만들기(코드 개발자용)그리고 누르세요 다음.

옵션이 선택되어 있는지 확인하세요 표준 설정, 강제 보류 중인 I/O 요청그리고 IRP 로깅. 딸깍 하는 소리 다음.

다음을 선택합니다.

"공급자" 열 헤더를 클릭하여 표의 내용을 정렬하고 드라이버 목록에서 테스트하려는 항목을 선택합니다. 이 예에서는 에서 개발하지 않은 모든 드라이버에 대해 검사를 실행합니다. 마이크로소프트법인. 우리는 e1g6032e.sys(Intel) 및 lsi_sas.sys(LSI) 드라이버를 선택했습니다.

메모. 드라이버 가용성 전자 서명 Microsoft는 드라이버가 안정성을 위해 특정 방식으로 테스트되었으며 그 이후로 해당 코드가 수정되지 않았음을 나타냅니다. 그렇기 때문에 권장되거나 사용되지 않습니다.

클릭만 하면 됩니다 마치다변경 사항을 적용하려면 시스템을 재부팅해야 한다는 정보 창이 나타납니다.

조언. 드라이버 확인 모드는 다음에서 활성화할 수도 있습니다. 명령줄. 예를 들어 Driver Verifier를 실행하려면 표준 설정 myPCDriver.sys 드라이버의 경우 명령은 다음과 같습니다. verifier /standard /driver myPCDriver.sys

재부팅 후 시스템은 드라이버 확인 모드로 부팅됩니다. 드라이버 검증 프로그램은 다음에서 작동합니다. 배경, 선택한 드라이버에 대해 다양한 유형의 테스트를 수행하여 오류를 식별합니다. 평소처럼 컴퓨터를 사용하고 BSOD가 나타날 때까지 기다립니다. 이전에 어떤 작업으로 인해 시스템 충돌이 발생했는지 알고 있다면 해당 작업을 반복하세요. BSOD가 발생하면 메모리 덤프 파일(기본적으로 C:\Windows\Minidump\*.dmp 디렉터리에 저장됨)을 복사하고 Windbg 또는 이에 상응하는 프로그램을 사용하여 분석해야 합니다.

중요한! Driver Verifier를 사용하여 드라이버 디버깅 모드를 활성화한 후 이 모드는 강제로 비활성화될 때까지 작동합니다.

1~2일 이내에 문제가 재발하지 않으면 어느 정도 확실하게 테스트 중인 드라이버가 시스템 충돌의 원인이 아니며 해당 드라이버에 대한 검색 모드를 비활성화할 수 있다는 결론을 내릴 수 있습니다.

조언. 유효성 검사기 사용 윈도우 드라이버 Windows 속도가 크게 느려지므로 이 모드에서 지속적으로 작업하는 것은 권장되지 않습니다.

명령줄에서 Driver Verifier를 비활성화할 수 있습니다.

검증자/재설정

또는 그래픽 인터페이스에서 다음을 선택하여 기존 설정 삭제.

일반 모드에서 시스템에 로그인할 수 없는 경우 안전 모드에서 디버깅 모드를 비활성화할 수 있습니다.

시스템이 안전 모드에서 부팅되지 않으면 부팅 디스크에서 부팅하여 다음 레지스트리 키를 삭제해 보십시오.

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

이와 같이 Driver Verifier 유틸리티의 현재 상태를 확인할 수 있습니다.

운전자를 대상으로 한 모든 실험은 위험하며 시스템을 손상시킬 수 있음을 경고합니다. 미리 시스템을 백업한 다음 Windows에서 의심스러운 다른 드라이버를 제거하여 손가락질을 하지 않는 것이 좋습니다.

그리고 그들이 꾸짖지 않자마자 윈도우~에서 마이크로소프트, 불쌍한 것을 동시에 느리고, 결함이 있고, 심지어 불안정하다고 부릅니다. 그러나 누구도 서둘러 포기하지 않으며 일반적으로 포기할 가능성도 없습니다. 그러므로 불쌍한 개발자를 꾸짖고 무의미한 불길을 일으키기보다는 실제로 시스템이 왜 버그가 있는지 알아내는 것이 좋을 것입니다. 나는 당신에게 작은 비밀을 말할 것입니다. 죽음과 불안정한 노동의 악명 높은 화면 속에서 윈도우대부분의 경우 타사 드라이버가 책임이 있으며 운영 체제 자체는 전혀 관련이 없습니다. 이제 이러한 드라이버를 감지하고 시스템에서 제거하는 방법을 알려 드리겠습니다.

드라이버 설계 결함은 충돌부터 죽음의 블루 스크린( BSOD– 죽음의 블루 스크린) 및 컴퓨터 속도 저하 및 드라이버와 전혀 관련이 없는 일부 응용 프로그램의 이상한 동작.

블루 스크린 오브 데스(Blue Screen of Death)는 심각한 문제가 있음을 분명히 알리고 발굴할 위치에 대한 정보를 제공한다는 점에서 놀랍습니다(아이러니 없이!). 항상 그런 것은 아니지만 종종 "불법" 운전자의 이름이 사망 블루 스크린의 오른쪽 상단에 직접 표시됩니다. 하지만 거기에 없을 수도 있고, 더 나쁘게는 전혀 관련이 없는 운전자의 이름이 있을 수도 있습니다.

예를 들어, 상당히 일반적인 비디오 카드 드라이버 중 하나 매트록스 G450파괴하는 경향이 있다 기본 구조그래픽 하위 시스템 윈도우 2000 , 결과적으로 BSOD에 시스템 드라이버 이름이 표시됩니다. win32k.sys USER 및 GDI 함수의 중요한 부분을 구현하며 당연히 이와 관련이 없습니다. 따라서 죽음의 블루 스크린을 해석하는 것은 마술, 직관, 과학, 예술 등 모든 것의 일부입니다.

드라이버 결함 외에도 오버클럭된 프로세서, 결함이 있는 RAM 또는 비뚤어진 컨트롤러와 같은 하드웨어 오류로 인해 블루 스크린이 발생할 수도 있습니다. 하드 드라이브, PCI 카드가 슬롯에 완전히 삽입되지 않음, 커넥터 중 하나의 접촉이 느슨함, 전원 공급 장치 불량, 전해 콘덴서 부풀음 마더보드. 그리고 후자는 여러 가지 이유로 인해 부풀어 오른다. 인근 프로세서의 과열로 인해 제조업체에서 "보고하지 않은"세라믹 커패시터가 부족하고 (그 결과 RF 구성 요소가 전해질을 통과하여 크게 가열됨) 마지막으로 , 장치 안정기의 주요 트랜지스터 누출로 인해. 그러므로 나무를 자르기 전에 우리가 앉아 있는 철이 제대로 작동하는지 확인해야 합니다. 어떻게 할 수 있나요?

철과의 대결

하드웨어 오류로 인해 발생하는 블루 스크린은 특정 사용자 작업과 관계없이 예측할 수 없이 자연스럽게 나타납니다. 응용 프로그램 응용 프로그램도 다양한 위치에서 심각한 오류를 생성하기 시작하며 시스템에서 발행하는 오류 코드, 주소 및 기타 정보는 모든 경우에 다릅니다! 그런데 I/O 장치의 비동기 요청을 처리하는 드라이버는 예를 들어 무선 네트워크, 거의 똑같이 행동합니다. 결함이 있는 드라이버로 인해 발생하는 블루 스크린은 일반적으로 특정 작업을 수행할 때 발생하며 다소 일정한 정보를 포함합니다.

하드웨어에서 모든 의심을 제거하려면 다른 하드 드라이브를 시스템에 연결하고 깨끗하고 깨끗한 드라이브를 설치하는 것으로 충분합니다. 윈도우그리고 잠시 동안 작업하세요. 죽음의 블루 스크린이 사라지지 않는다면 하드웨어에 문제가 있다는 의미이며 하드웨어를 교체해야 할 때라는 뜻입니다. 결함이 있는 구성 요소를 찾는 것은 별도의 논의 주제이며 다음 시간에 다루겠습니다. 하지만 지금은 소매를 걷어붙이고 이러한 교활한 드라이버를 파악해 보세요.

증명서가 없는 장작은 화실로 바로 들어갑니다.

드라이버 개발에 필요한 전체 도구 세트( DDK– 드라이버 개발 키트), Microsoft는 함께 제공되는 문서와 함께 무료로 배포합니다. 드라이버는 때때로 매우 버그가 많고 불안정합니다.

이런 혼란이 일어나지 않도록, 마이크로소프트고대에는 운전자에게 부과된 요구 사항을 준수하는지 확인하고 운전자에게 디지털 서명을 발급하는 절차가 도입되었습니다. 아니면... 발행되지 않았고 개정을 위해 보내졌습니다. 그리고 인증은 치명적인 오류와 개발 결함이 없음을 보장하지 않는 공식적인 절차일 뿐이지만 여전히 솔직하게 "선구적인" 드라이버 중 일부를 제거합니다.

이상적으로는 디지털 서명된 드라이버만 시스템에 보관해야 합니다. 그리고 디지털 서명은 보험 정책은 아니지만 그 존재는 이미 특정 수준의 개발 문화를 나타냅니다. 디지털 서명이 없는 드라이버는 찔린 돼지보다 더 나쁩니다. 가능하다면 제거해야 합니다(특히 이들 중 다수는 시스템 깊숙이 침투하여 불안정을 초래하는 루트킷이나 공격적인 방어 메커니즘에 의해 설치되는 악성 코드이기 때문에 더욱 그렇습니다). 간단히 말해서 선동에 빠지지 말고 간단한 질문 하나에 답해 보겠습니다. 디지털 서명 없이 운전자 목록을 만드는 방법은 무엇입니까?

유틸리티가 우리를 도와줄 것입니다 sigverif.exe, 표준 배송 키트에 포함됨 운영 체제 WINNT\System32 디렉터리에 있습니다. 우리는 그것을 시작하고 대화 상자를 봅니다. "고급" 버튼을 클릭하고 "검색" 탭에서 "구독 취소 알림" 위치에서 라디오 버튼을 이동하여 선택 기준을 설정합니다. 시스템 파일"(기본적으로 작동하지 않는 곳) "디지털 서명되지 않은 다른 파일 검색" 위치로 이동합니다. 그 후, "검색 옵션"에서 "다음 유형의 파일 검색" 상자를 열고 "*.sys"를 선택하고 아래에 "C:\WINNT" 검색 폴더를 지정하고 "포함"을 확인하십시오. 하위 폴더' 확인란을 선택하세요.

실제로 엄밀히 말하면, 드라이버는 sys 확장자를 가질 필요가 없으며 항상 WINNT 디렉토리, 즉 "그들의" 응용 프로그램 디렉토리에 제한되지 않으며 일부 응용 프로그램은 드라이버를 내부에 저장하기도 합니다. 실행 직후(또는 언제든지) 디스크의 현재 또는 임시 디렉터리에 파일을 저장하고, 드라이버를 메모리에 로드한 후... 즉시 디스크에서 삭제합니다! 이는 악성 바이러스뿐만 아니라 유명한 Windows 지하 연구원 Mark Russinovich의 일부 유틸리티와 같은 상당히 존경받는 프로그램에 의해서도 수행됩니다.

따라서 실험의 순수성을 위해 다음 지역에 있는 운전자 목록을 얻는 것이 나쁠 것은 없습니다. 이 순간메모리에 저장하고 디스크에 있는 드라이버와 비교합니다. 운영 체제를 재부팅하지 않고도 드라이버를 무료로 다운로드/언로드할 수 있으므로 "현재"라는 단어가 핵심입니다. Microsoft 서버에서 다운로드할 수 있는 DDK의 일부인 명령줄 유틸리티 drivers.exe를 실행하여 이 작업을 여러 번 수행하는 것이 좋습니다. 라인 명령을 사용하여 스위치 없이 실행되는 유틸리티 드라이브.exe일반적으로 시스템에 많은 드라이버가 있고 화면에 맞지 않기 때문에 모든 정보를 화면에 덤프하는 것은 좋지 않습니다. 그러나 종교를 사용하면 출력 스트림을 다음으로 리디렉션할 수 있습니다. 텍스트 파일(drivers.exe >file-name.txt), 누구나 열 수 있음 텍스트 에디터- Word나 메모장을 사용하세요. 그런 다음 남은 것은 메모장에서 허용하지 않는 수직 블록을 선택하고 드라이버 목록을 얻는 것입니다. 운영 체제 커널에서 바로!

이러한 드라이버 중 하나 이상이 C:\WINNT\ 디렉터리에 없으면 해당 드라이버의 디지털 서명이 확인되지 않습니다! 당연히 그러한 운전자는 즉시 관심을 끌며 합리적인 질문이 있습니다. 어디서 왔습니까? 먼저 디스크의 모든 디렉터리를 검색합니다. 없으면 Soft-Ice의 CreateFileW 함수에 중단점을 설정하고 전달된 인수를 살펴보세요. 조만간 우리는 버그가 있는 드라이버를 만나게 될 것이며, 그 후에는 이를 생성한 프로세스의 이름이 표시되는 Soft-Ice 화면의 오른쪽 하단 모서리만 볼 수 있습니다. 자세한 내용은 "소스 텍스트 없이 프로그램을 디버깅하는 기술"이라는 책을 참조하세요. 이 책의 전자 사본은 ftp 또는 http 서버 nezumi.org.ru와 디스크에서 찾을 수 있습니다. 그리고 우리는 계속해서 유틸리티를 괴롭히고 있습니다. sigverif.exe.

"확인", "시작"을 클릭하면 "온도계"가 화면에 나타나 진행 상황을 표시하고 하드 드라이브가 모든 헤드에서 바스락거리기 시작합니다. 작업이 완료되면 디지털 서명이 없는 드라이버 목록이 컴파일되어 화면에 표시됩니다.

일부 성급한 사람들은 이단 시스템을 정화하기 위해 서명되지 않은 모든 드라이버를 제거할 것을 제안합니다. 그러면 모든 문제가 사라질 것이라고 그들은 말합니다. 어떻게 할 수 있나요? 가장 거친 해결책은 FAR 또는 Explorer(물론 관리자 권한으로!)를 통해 디스크에서 해당 파일을 제거하는 것입니다. 그러나 이러한 작업의 결과는 매우 비참할 수 있으므로 탐색기에서 드라이버 아이콘을 마우스 오른쪽 버튼으로 클릭하고 "속성"에서 제조업체 이름을 찾아 설치된 응용 프로그램/하드웨어 종류를 확인하는 것이 좋습니다. 이 드라이버를 문명화된 방법으로 제거하십시오. 사실, 여기에는 "하지만"이 하나 있습니다.

드라이버는 아래 그림에 강조 표시되어 있습니다. g400m.sys, Matrox G450 카드와 함께 제공되며 Matrox는 전혀 약한 회사는 아니지만 디지털 서명을받지 못했습니다 (Microsoft가 제공하지 않았거나 Matrox 자체가 귀찮게하고 싶지 않았습니다). 당연히 시스템에서 제거한 후에는 SVGA 모드를 잊어야 합니다. 그러나 Matrox 웹사이트로 이동하여 최신 버전의 드라이버를 다운로드할 수 있습니다(이미 디지털 서명되어 있음). 여기서만... 서명된 버전과 서명되지 않은 버전 모두 치명적인 오류가 많이 포함되어 있습니다. 특히 특정 상황의 결과로 오버레이 모드로 전환하려고 하면 드라이버가 이미 해제된 메모리를 해제하려고 하기 때문에 시스템이 BSOD로 충돌합니다.

따라서 디지털 서명의 유무 자체는 아무 의미가 없으며 서명된 드라이버만 사용하더라도 안정성이 보장되지 않습니다.

여기에서 기사의 두 번째 부분, 즉 전투에 가까운 조건에서 드라이버를 테스트하는 부분으로 넘어갑니다.

우리는 장작을 실제 테스트합니다.

DDK에는 훌륭한 유틸리티가 포함되어 있습니다. 운전사 검증자, 이는 운전자에게 가장 가혹한 조건을 만들어, 실패 확률이 최대이고, 결함이 있는 운전자의 이름이 가장 정확하게 결정되는 극단적인 자살에 접한 것입니다(개발 결함으로 인해 피해를 입지 않더라도, 그러나 다른 사람의 운전자의 데이터 구조를 파괴합니다).

다음 사항에 유의하는 것이 중요합니다. 운전사 검증자- 이것은 의약품이 아니며 진단 도구일 뿐입니다. 여전히 실패로부터 사용자를 보호하지는 못하지만(반대로 강도를 몇 배로 증가시킵니다) 충분한 신뢰성을 가지고 "부적절한" 운전자를 식별하는 데 도움이 될 것입니다.

그래서 verifier.exe를 실행하면 창이 나타납니다. 운전사 검증자 관리자, 설정 탭으로 이동하여 라디오 버튼을 모든 드라이버 확인 위치로 이동한 후 다음 확인 유형을 설정하는 "선호 설정" 버튼을 누릅니다.

  • 특별한 수영장– 테스트 중인 드라이버에는 할당을 위한 특수 메모리 영역이 할당됩니다. 이는 매우 빠르게 작동하지는 않지만 자체 데이터와 다른 사람의 데이터에 대한 대부분의 파괴 유형을 감지할 수 있습니다.
  • IRQL확인 중. IRQL은 인터럽트 요청 수준입니다. 드라이버 개발자가 저지르는 가장 일반적인 실수는 페이징 관리자가 작동하지 않는 IRQL 수준에서 메모리에 액세스하려고 시도하는 것입니다. 그리고 필요한 페이지가 갑자기 디스크에서 제거되는 것으로 밝혀지면 시스템은 "IRQL_LESS_OR_EQULAR"라는 문구와 함께 블루 스크린으로 전환됩니다. 이 모드를 강제로 적용하면 드라이버 페이지가 디스크에 플러시되어 설계 결함이 항상 100% 나타납니다.
  • 낮은 자원 시뮬레이션시스템 리소스가 심각하게 부족한 경우 드라이버가 어떻게 작동하는지 확인하기 위해 설치하는 것이 유용하지만 꼭 그렇게 할 필요는 없지만 풀 추적 확인란을 그대로 두는 것이 좋습니다(메모리의 올바른 처리 모니터링). 수영장). 입/출력 오류(I/O 확인)는 모든 오류 중에서 중요하지 않은 부분을 차지하므로 일반적으로 이 확인란의 위치는 전혀 중요하지 않습니다.

설정 선택을 마친 후 "적용" 버튼을 클릭하고 제안된 대로 재부팅합니다.

부팅이 시작되자마자 커널이 평소보다 더 많은 검사를 수행하기 때문에 시스템 속도가 눈에 띄게 느려집니다. 오류가 감지되면 드라이버 이름과 개발자에게는 유용하지만 우리에게는 쓸모가 없는 기타 정보와 함께 죽음의 블루 스크린이 깜박입니다. 우리가 할 수 있는 일은 드라이버를 최대한 업데이트하는 것 뿐입니다. 최신 버전또는 이를 사용하는 프로그램(하드웨어)의 사용을 거부합니다. 실제로 젖은 나무에 불을 붙일 수 있는 옵션이 조금 더 있지만 이에 대해서는 나중에 자세히 설명합니다.

verifier.exe를 실행하면 언제든지 확인 상태를 확인할 수 있습니다. 드라이버 상태 탭에는 현재 상황에 대한 설명과 함께 감지된 모든 드라이버의 상태가 나열됩니다. 로드된 상태는 다음을 의미합니다. 이 운전자에 의해 다운로드 및 확인되었습니다. 적어도, 한 번 (그러나 완전히는 아닐 수도 있습니다. 즉, 운전자의 모든 섹션이 운동할 시간이 있는 것은 아닙니다). 언로드 상태는 드라이버가 이를 사용하거나 자체 요청에 따라 시스템/프로그램에 의해 로드, 확인(부분적으로 가능) 및 언로드되었음을 의미합니다. 후자는 특히 제거를 수행하지 않고 확장 카드를 슬롯에서 야만적으로 잡아당겨 제거한 장비에서 남은 드라이버의 경우에 일반적입니다. 살아남은 드라이버는 버스를 스캔하여 "해당" 하드웨어를 찾으려고 시도하지만 검색에 실패하고 메모리에서 자체 언로드되어 시스템 부팅 속도가 느려지고(때로는 매우 크게) 다른 드라이버와 충돌합니다. 도덕: 모든 규칙에 따라 장비를 시스템에서 제거해야 합니다! 그러나 모든 Unloaded 상태가 비정상적인 상황을 나타내는 것은 아니며, 이러한 상태의 드라이버를 삭제하기 전에 이것이 어떤 순록인지, 어디서 왔는지 먼저 파악해야 합니다.

Never Loaded 상태는 이 드라이버가 아직 로드되지 않았음을 나타냅니다. 즉, 확인되지 않았음을 의미하므로 실행하기 전에 기다려야 합니다. 다양한 프로그램그것과 연관될 수도 있습니다. 그러나 일부 드라이버(특히 잘못 제거된 드라이버)는 로드되지 않아 검사되지 않습니다.

하드 체크 모드에서 일정 시간(몇 시간에서 며칠까지) 시스템을 작업한 후 이전에 겪었던 결함이 있는 거의 모든 드라이버를 식별하고 해당 드라이버의 이름을 종이에 적습니다.

동일한 검증기를 사용하여 시스템을 일반 모드(즉, 성능을 소모하는 추가 검사 없이)로 되돌릴 수 있습니다. 설정 탭으로 돌아가서 라디오 버튼을 선택한 드라이버 확인 위치로 이동하고(드라이버를 선택하지 않아야 함) "모두 재설정"을 클릭한 다음 "적용"을 클릭하고 재부팅합니다. 모두! 이제 시스템은 정상 속도로 작동하지만 점검은 수행되지 않습니다.

젖은 장작을 어떻게 해야 할까요?

하지만 결함이 있는 운전자로 무엇을 할 수 있습니까? 디버거를 손에 쥘 줄 아는 해커라면 여유 시간이 충분하면 디버거를 분해해서(다행히 드라이버의 크기가 작은 경우가 많다) 오류를 찾아 고칠 수 있는 방법을 찾아내지만.. .시간이 너무 많이 걸립니다.

드라이버(이를 사용하는 하드웨어/프로그램과 함께)를 버리는 것도 선택 사항이 아닙니다. 죽음의 블루 스크린이 책임이 있다는 것이 알려지면 사운드 카드낯선 사람 중국 제조사 20달러의 가치가 있는 것이라면 우리는 그것을 더 가치 있는 것으로 대체하려는 매우 강한 동기를 갖게 됩니다. 그러나 이것은 엄밀히 말하면 이미 모든 사람에게 분명하며 추가 댓글필요하지 않습니다.

그러나 단일 프로세서 환경에서 개발(및 테스트)된 드라이버가 듀얼 프로세서 시스템에 설치되어 있다는 사실로 인해 엄청난 수의 충돌과 블루 스크린이 발생한다는 사실을 모든 사람이 아는 것은 아닙니다. 여기서 "듀얼 프로세서"란 두 개의 스톤이 있는 실제 플랫폼과 하이퍼스레딩/멀티 코어 프로세서를 모두 의미합니다. 알려진(그리고 확인된) 큰 금액테스트) 그 가정용 컴퓨터두 개의 프로세서는 절대적으로 쓸모가 없습니다. 왜냐하면 대부분의 응용 프로그램에서는 실제로 성능 향상이 없기 때문입니다.

따라서 시스템이 불안정하고 어떤 이유로든 결함이 있는 드라이버를 제거할 수 없는 경우 BIOS 설정으로 들어가서 "가상 이중 프로세서" 시스템을 단일 프로세서 시스템으로 전환할 수 있습니다. . boot.ini 파일을 열면 비슷한 효과를 얻을 수 있습니다(컴퓨터의 경우 윈도우 NT/2000/XP루트 디렉토리에 위치합니다 논리 드라이브, 시스템이 설치된 위치)에 /ONECPU 키를 추가한 다음 오류가 사라지길 바라며 재부팅하세요.

목록 1

일반적인 boot.ini 파일의 예


시간 초과=30

멀티(0)디스크(0)rdisk(0)파티션(1)\WINNT="Windows 2000 Pro" /fastDetect /SOS

목록 2

우리는 사용 가능한 모든 프로세서 중에서 단 하나의 프로세서만 사용하도록 시스템을 구성합니다.


시간 초과=30
기본값=다중(0)디스크(0)rdisk(0)파티션(1)\WINNT
멀티(0)디스크(0)rdisk(0)파티션(1)\WINNT="Windows 2000 Pro" /fastDetect /SOS /ONECPU

하지만 윈도우 추억 boot.ini 파일이 없으며 다음을 사용하여 (일시적으로) 부팅 설정을 구성하는 것이 가능하지만 특수 유틸리티, Microsoft는 이 허점을 완전히 포기하여 BIOS 설정만 남게 할 계획입니다. 그러나 추억, 그러면 드라이버 개발자가 이를 전환할 때쯤이면 아마도 멀티프로세서 시스템을 구입하고(판매할 다른 제품이 없기 때문에) 멀티프로세서 환경에서 자신의 창작물을 테스트할 것입니다.

또 다른 미묘한 점. 위에서 드라이버 개발자가 범하는 가장 일반적인 실수는 페이징 관리자가 작동하지 않는 IRQL 수준에서 선점형 메모리에 액세스하고, 요청한 페이지가 메모리에 없으면 충돌이 발생한다고 말한 것을 기억하십니까? 여기서 확실한 해결책은 증가하는 것입니다. 랜덤 액세스 메모리실제로 페이지가 디스크로 제거되지 않는 볼륨입니다. 현재 메모리 가격으로 거의 모든 사람이 새 메모리 스틱 두 개를 구입할 여유가 있습니다. 그러나 문제에 대한 더 접근하기 쉽고 더 우아한 해결책이 있습니다. 매개변수인 경우 비활성화PagingExecutive, 다음 레지스트리 지점에 위치 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement는 1(기본적으로 0)과 같으며, 핵 구성요소는 선점되지 않습니다. 따라서 "레지스트리 편집기"를 실행하고 이 소중한 매개 변수를 변경한 다음 재부팅합니다(변경 사항은 재부팅 후에만 적용됩니다). 이것이 실패 문제를 해결하는 데 도움이 되기를 바랍니다.