이 글을 3줄로 요약하면
· 커널 모드에서 실행되던 코드가 예외를 냈을 때 뜨는 정지 코드입니다. 버그 검사 번호는 0x0000003B입니다.
· 원인은 장치 드라이버·시스템 파일 손상·메모리 불량·필터 드라이버 충돌 네 갈래이고, 정지 코드의 첫 번째 값이 어느 갈래인지 좁혀 줍니다.
· 그 값과 덤프 파일을 먼저 보면 네 가지를 순서대로 다 해볼 필요가 없습니다.
0x3B는 정확히 무슨 뜻인가
"윈도우가 고장 났다"가 아니라 "커널 안에서 돌던 코드가 예외를 냈다"입니다. 이 차이가 원인을 가릅니다.
SYSTEM_SERVICE_EXCEPTION의 버그 검사 값은 0x0000003B입니다. 마이크로소프트 문서는 이 코드를 실행 중이던 코드에서 예외가 발생했고 그 스레드가 시스템 스레드였을 때 발생한다고 설명합니다.
여기서 중요한 건 "시스템 스레드"라는 조건입니다. 일반 프로그램이 예외를 내면 그 프로그램만 종료됩니다. 하지만 커널 모드에서 돌던 코드가 같은 잘못을 하면 윈도우 전체를 세워야 하고, 그때 나오는 화면이 블루스크린입니다.
그래서 이 오류는 대부분 커널 모드 코드, 즉 장치 드라이버가 원인입니다. 문서가 짚는 대표적인 잘못은 NULL 포인터 역참조, 엉뚱한 주소 접근, 이미 해제된 메모리 재사용, 데이터 구조 손상 네 가지입니다.
정리하면 0x3B는 "무엇이 고장 났다"를 알려주는 코드가 아니라, "커널 안에서 누군가 잘못된 메모리를 건드렸다"를 알려주는 코드입니다. 그 누군가를 찾는 게 이 글의 목적입니다.
이 오류에는 매개변수 네 개가 따라붙습니다. 첫 번째 값이 예외 코드, 두 번째가 예외를 낸 명령어 주소, 세 번째가 컨텍스트 레코드 주소이고 네 번째는 쓰이지 않습니다. 실무에서 의미가 있는 건 첫 번째 값입니다.
이 값들은 화면에서 사라져도 덤프 파일에 남습니다. 덤프가 쌓이는 위치는 C:\Windows\Minidump입니다. 파일이 하나도 없다면 7번 항목에서 덤프 설정부터 켜야 합니다.
증상으로 원인 좁히기
언제 뜨는지가 원인을 가장 많이 알려줍니다. 자기 상황을 먼저 찾으세요.
같은 이름의 블루스크린이라도 발생 시점의 규칙성이 다르면 원인이 다릅니다. 아래 표에서 자기 상황과 가장 가까운 행을 찾아 해당 섹션부터 보면 시간을 아낄 수 있습니다.
| 증상 | 유력한 원인 | 먼저 볼 항목 |
|---|---|---|
| 드라이버나 윈도우 업데이트 직후부터 시작됐다 | 새 드라이버 버전과 현재 환경의 충돌 | 원인 A → 롤백 |
| 게임·영상 편집 등 그래픽 부하가 걸릴 때만 뜬다 | 그래픽 드라이버 예외 | 원인 A → 재설치 |
| 강제 종료나 정전을 겪은 뒤부터 뜬다 | 시스템 파일 손상 | 원인 B |
| 뜨는 시점에 규칙이 전혀 없고 정지 코드 이름도 매번 바뀐다 | 메모리 불량 또는 접촉 불량 | 원인 C |
| 특정 백신·가상 드라이브·화면 오버레이 프로그램을 켤 때만 뜬다 | 필터 드라이버 충돌 | 원인 D |
| 위 어디에도 안 맞고 아무 때나 뜬다 | 아직 특정 불가 | 7번 항목에서 덤프 먼저 |
"언제부터 떴는지"가 가장 강한 단서입니다
증상이 시작된 날짜와 겹치는 변경 사항(드라이버 업데이트·프로그램 설치·윈도우 업데이트)이 하나라도 있으면, 그것이 원인일 확률이 나머지 전부를 합친 것보다 높습니다. 기억이 안 나면 7번 항목의 이벤트 뷰어에서 날짜를 확인하세요.
원인 A장치 드라이버 버전 충돌
0x3B의 가장 흔한 원인입니다. 방향은 "최신으로"가 아니라 "문제가 없던 버전으로"입니다.
그래픽 카드, 네트워크 어댑터, 사운드 카드 드라이버는 모두 커널 모드에서 돕니다. 그래서 이 중 하나가 잘못된 메모리를 건드리면 그대로 0x3B가 됩니다.
여기서 많이 갈리는 지점이 있습니다. 업데이트를 해야 하는 상황과 되돌려야 하는 상황이 반대라는 점입니다. 판단 기준은 하나뿐입니다.
오류가 시작된 시점이 드라이버 업데이트 직후라면 롤백, 몇 년째 같은 드라이버를 쓰고 있었다면 최신 버전으로 업데이트입니다. 둘을 반대로 하면 증상이 그대로 남습니다.
1장치 관리자를 연다
Win + R을 눌러 실행 창을 열고 위 명령을 입력한 뒤 Enter를 누릅니다. 디스플레이 어댑터 항목을 펼칩니다.
2드라이버 날짜를 먼저 확인한다
장치를 우클릭해 속성으로 들어가 드라이버 탭을 엽니다. 여기 적힌 드라이버 날짜가 블루스크린이 시작된 날짜와 붙어 있으면 롤백 대상입니다. 반대로 몇 년 전 날짜라면 업데이트 대상입니다.
3같은 드라이버 탭에서 되돌린다
드라이버 탭의 "이전 드라이버" 버튼을 누릅니다. 버튼이 흐리게 비활성화돼 있으면 이전 버전 기록이 남아 있지 않다는 뜻이므로, 제조사 공식 사이트에서 한 단계 이전 버전을 직접 받아 설치합니다.
4그래픽 드라이버는 덮어쓰지 말고 지우고 깐다
NVIDIA·AMD 설치 프로그램에는 "클린 설치" 또는 "초기화 후 설치" 옵션이 있습니다. 이 옵션 없이 덮어쓰면 이전 버전의 커널 모듈이 남아 같은 예외가 반복되는 경우가 있습니다.
이 방법이 안 통하는 경우
그래픽 드라이버를 롤백하고 재설치했는데도 같은 이름의 블루스크린이 계속 뜬다면, 예외를 낸 주체가 그래픽 드라이버가 아닐 수 있습니다. 이때는 짐작으로 다른 드라이버를 건드리지 말고 7번 항목에서 덤프의 오류 모듈 이름을 먼저 확인하세요.
원인 B시스템 파일과 구성 요소 저장소 손상
강제 종료·정전·중단된 업데이트를 겪은 PC에서 자주 해당됩니다.
커널이 호출하는 시스템 파일 자체가 깨져 있으면, 정상적인 드라이버가 정상적인 요청을 해도 예외가 납니다. 이 경우는 드라이버를 아무리 바꿔도 증상이 남습니다.
복구는 두 단계입니다. sfc는 시스템 파일을 검사하고, DISM은 sfc가 복구할 때 쓰는 원본 저장소를 고칩니다. 그래서 순서가 있습니다.
1시스템 파일 검사를 먼저 돌린다
시작 버튼을 우클릭해 터미널(관리자)을 열고 입력합니다. 10~20분 걸립니다. "복구했습니다"가 뜨면 재부팅 후 재현되는지 확인하고, "복구할 수 없습니다"가 뜨면 다음 단계로 갑니다.
2원본 저장소를 복구한다
인터넷에 연결된 상태로 실행해야 정상 파일을 받아옵니다. 진행률이 20% 부근에서 오래 멈춘 것처럼 보여도 정상이니 기다립니다.
3sfc를 한 번 더 돌린다
저장소가 복구된 뒤에야 sfc가 실제로 파일을 갈아 끼울 수 있습니다. 이 두 번째 실행을 건너뛰면 DISM만 돌리고 끝낸 셈이 됩니다.
sfc가 "위반을 찾지 못했습니다"라고 해도 안심할 수는 없습니다
sfc는 윈도우가 보호하는 시스템 파일만 검사합니다. 서드파티 드라이버 파일은 검사 범위 밖이라, 이 메시지는 "원인 B가 아니다"라는 뜻이지 "PC가 정상이다"라는 뜻이 아닙니다.
이 방법이 안 통하는 경우
DISM이 오류 코드를 내며 중단되거나 sfc가 같은 파일을 계속 복구하지 못한다면, 그 아래의 디스크나 메모리가 불안정할 수 있습니다. 원인 C로 가서 하드웨어 쪽을 먼저 확인하세요.
원인 C메모리 불량과 접촉 불량
정지 코드 이름이 매번 바뀐다면 이 갈래일 확률이 높습니다.
0x3B의 근본은 "잘못된 메모리를 읽거나 썼다"입니다. 그런데 코드가 멀쩡해도 메모리 소자가 값을 잘못 돌려주면 결과는 똑같습니다. 이 경우 특정 프로그램과 무관하게 아무 때나 뜹니다.
구분법이 하나 있습니다. 드라이버 문제라면 정지 코드 이름이 거의 고정되지만, 메모리 문제라면 이번엔 SYSTEM_SERVICE_EXCEPTION, 다음엔 다른 이름으로 바뀝니다. 매번 다른 이름이 뜬다면 여기부터 보세요.
1윈도우 메모리 진단을 실행한다
Win + R로 실행 창을 열고 입력합니다. "지금 다시 시작하여 문제 확인"을 고르면 재부팅되면서 검사가 시작됩니다. 표준 검사는 보통 10~15분입니다.
2결과를 이벤트 뷰어에서 확인한다
재부팅 후 알림이 지나가 버렸다면 이벤트 뷰어의 Windows 로그 → 시스템에서 원본이 MemoryDiagnostics-Results인 항목을 찾으면 결과가 그대로 남아 있습니다.
3이상이 없다고 나와도 재장착은 해 볼 값어치가 있다
진단 도구는 접촉 불량을 잡아내지 못하는 경우가 있습니다. 전원을 완전히 끄고 램을 뽑았다 다시 꽂거나, 여러 개라면 하나씩만 꽂아 재현되는지 보면 특정 모듈을 가려낼 수 있습니다.
오버클럭이나 XMP를 켜 두었다면 먼저 끄고 판단하세요
램 자체는 정상인데 규격 이상으로 동작시키고 있으면 같은 증상이 나옵니다. XMP·EXPO 프로필을 끈 기본 속도에서 재현되는지 확인한 뒤에 불량 여부를 판단해야 합니다.
이 방법이 안 통하는 경우
메모리 진단에서 오류가 잡혔다면 이 글의 나머지 조치는 의미가 없습니다. 해당 모듈을 교체하거나 빼고 나서 다시 판단하세요. 반대로 아무 이상이 없고 정지 코드 이름도 고정돼 있다면 원인 D로 넘어갑니다.
원인 D필터 드라이버를 설치하는 프로그램 충돌
"프로그램인데 왜 블루스크린이 뜨지"의 답이 여기 있습니다.
백신, 가상 드라이브, 화면 녹화·오버레이 도구, 일부 보안 솔루션은 겉보기엔 평범한 프로그램이지만 설치할 때 커널 모드 필터 드라이버를 함께 얹습니다. 이 드라이버가 예외를 내면 결과는 원인 A와 똑같이 0x3B입니다.
그래서 이 갈래는 프로그램을 하나씩 지워보는 방식이 아니라, 비마이크로소프트 서비스를 통째로 끄고 재현되는지 보는 방식이 훨씬 빠릅니다. 이걸 클린 부팅이라고 합니다.
1시스템 구성 창을 연다
Win + R로 실행 창을 열고 입력한 뒤 상단 "서비스" 탭으로 갑니다.
2마이크로소프트 서비스를 숨기고 나머지를 끈다
하단 "모든 Microsoft 서비스 숨기기"에 체크한 뒤 "모두 사용 안 함"을 누릅니다. 이 체크를 빼먹고 전부 끄면 윈도우가 정상 부팅되지 않을 수 있으니 순서를 지킵니다.
3재부팅해서 재현 여부만 확인한다
이 상태로 평소 블루스크린이 뜨던 작업을 그대로 해 봅니다. 안 뜬다면 원인은 껐던 서비스 중에 있습니다. 절반씩 다시 켜면서 범위를 좁히면 몇 번 만에 특정됩니다.
4확인이 끝나면 반드시 되돌린다
클린 부팅은 진단용 상태입니다. 범인을 찾았거나 원인이 아니라고 확인됐으면 msconfig에서 "모두 사용"을 눌러 원래대로 돌려놓습니다. 백신을 끈 채로 방치하지 않습니다.
이 방법이 안 통하는 경우
클린 부팅 상태에서도 똑같이 블루스크린이 뜬다면 서드파티 프로그램은 범인이 아닙니다. 남은 건 윈도우 기본 드라이버나 하드웨어이므로, 7번 항목의 덤프 분석으로 모듈 이름을 직접 확인하는 편이 빠릅니다.
정지 코드와 덤프로 원인을 확정하는 법
네 갈래를 다 해보는 대신, 어느 갈래인지 먼저 읽어내는 방법입니다.
0x3B의 첫 번째 매개변수는 예외 코드입니다. 이 값만 봐도 성격이 크게 갈립니다. 마이크로소프트 문서가 대표로 드는 두 값은 아래와 같습니다.
| 첫 번째 값 | 의미 | 먼저 볼 항목 |
|---|---|---|
| 0xC0000005 | 액세스 위반 · 접근하면 안 되는 주소를 건드림 | 원인 A 또는 원인 D |
| 0x80000003 | 중단점 · 디버그용 코드가 그대로 남은 드라이버 | 원인 A (해당 드라이버 교체) |
| 값이 매번 다르다 | 특정 코드의 잘못이 아니라 메모리가 불안정 | 원인 C |
값보다 더 확실한 건 어느 모듈이 예외를 냈는지입니다. 이건 덤프 파일에 남습니다. 아래 순서로 확인합니다.
1덤프가 쌓이도록 설정돼 있는지 본다
Win + R로 실행하고 고급 탭 → 시작 및 복구 → 설정으로 들어갑니다. "디버깅 정보 쓰기"가 사용 안 함으로 되어 있으면 자동 메모리 덤프 또는 작은 메모리 덤프로 바꿉니다. 이걸 켜야 다음 블루스크린부터 증거가 남습니다.
2이벤트 뷰어에서 발생 시각을 특정한다
Win + R에 eventvwr.msc를 입력해 열고 Windows 로그 → 시스템에서 이벤트 수준을 오류로 필터링합니다. 원본이 BugCheck인 항목의 시각이 블루스크린이 뜬 시각이고, 그 직전 몇 분의 로그가 어떤 장치·서비스가 관여했는지 알려줍니다.
3덤프에서 모듈 이름을 읽는다
C:\Windows\Minidump에 쌓인 dmp 파일을 무료 덤프 분석 도구로 열면 예외를 낸 드라이버 파일 이름이 나옵니다. nv로 시작하면 NVIDIA, atikm으로 시작하면 AMD, 백신 제조사 이름이 보이면 원인 D입니다.
ntoskrnl.exe가 범인으로 보인다면 그건 대개 오해입니다
ntoskrnl.exe는 윈도우 커널 본체라서, 다른 드라이버가 낸 예외를 대신 보고하는 자리에 자주 등장합니다. 이 이름만 보고 윈도우 재설치로 넘어가지 말고, 함께 표시되는 호출 스택에서 서드파티 드라이버 이름을 찾아야 합니다.
자주 묻는 질문
본문에서 다루지 않은 경계 상황들입니다.
Q.블루스크린이 뜨면 저장된 파일이 삭제되나요?
A.이미 디스크에 저장된 파일이 오류 자체로 지워지지는 않습니다. 다만 저장하지 않은 작업 내용은 사라지고, 쓰기 도중이었다면 그 파일만 손상될 수 있습니다.
Q.드라이버는 업데이트해야 하나요, 롤백해야 하나요?
A.오류가 시작된 시점이 기준입니다. 업데이트 직후부터 시작됐으면 롤백, 오래된 드라이버를 계속 쓰던 중이었다면 업데이트입니다. 원인 A의 2번 단계에서 드라이버 날짜를 먼저 확인하세요.
Q.sfc와 DISM 중 무엇을 먼저 실행해야 하나요?
A.sfc가 먼저입니다. sfc가 "복구할 수 없습니다"를 낼 때만 DISM이 필요하고, DISM 후에는 sfc를 한 번 더 돌려야 실제 파일이 교체됩니다.
Q.Minidump 폴더가 비어 있는데 어떻게 하나요?
A.덤프 쓰기가 꺼져 있거나, 시스템 드라이브 여유 공간이 부족하거나, 최적화 도구가 정리해 버린 경우입니다. 7번 항목 1번 단계에서 설정을 켜면 다음 발생부터 기록됩니다.
Q.윈도우를 다시 설치하면 확실히 없어지나요?
A.원인 B나 원인 D였다면 없어집니다. 하지만 원인 C처럼 메모리 쪽이면 재설치 후에도 그대로 재발하고, 원인 A도 같은 드라이버를 다시 깔면 되돌아옵니다. 7번 항목으로 갈래를 확인한 뒤 결정하는 편이 시간을 아낍니다.
함께 보면 좋은 글
같은 판별 방식으로 정리한 블루스크린 글입니다.
IRQL_NOT_LESS_OR_EQUAL 블루스크린 원인 4가지 (0x0000000A) 같은 드라이버 예외 계열이라 판별 순서가 이어집니다 · 눌러서 확인하기 → KERNEL_DATA_INPAGE_ERROR 블루스크린 원인 4가지 (0x0000007A) 정지 코드 이름이 매번 바뀐다면 이 글의 판별표도 함께 보세요 · 눌러서 확인하기 → DPC_WATCHDOG_VIOLATION 블루스크린 (0x00000133) 드라이버를 바꿔도 재발한다면 이 코드도 함께 확인해볼 값어치가 있습니다 · 눌러서 확인하기 →참고 문서 · Bug Check 0x3B: SYSTEM_SERVICE_EXCEPTION (Microsoft Learn)






