저도 얼마 전에 갑자기 와이파이가 안 잡혀서 장치 관리자를 열어봤더니, 네트워크 어댑터에 노란 느낌표가 붙어 있고 속성에 "이 장치가 제대로 작동하지 않습니다 (코드 31)"라고 떠 있었습니다. 드라이버를 지웠다 다시 깔아도 그대로라 한참 헤맸는데, 결국 레지스트리 한 줄로 해결됐습니다. 이 글은 제가 직접 겪고 해결한 순서 그대로 정리한 것입니다.

🖥️ 제가 겪은 상황과 이 글의 목표

제 경우는 네트워크 어댑터에서 코드 31이 났지만, 이 오류는 그래픽 카드·사운드·USB 장치 등 어떤 장치에서도 똑같이 발생합니다. 공통점은 장치 관리자에 노란 느낌표가 뜨고, 그 장치 기능(인터넷·소리·화면 등)이 먹통이 된다는 것입니다. 저는 처음에 랜선을 바꾸고 공유기를 재부팅하느라 시간을 버렸는데, 하드웨어가 아니라 드라이버 쪽 문제였습니다.

코드 31의 핵심 의미는 "윈도우가 이 장치에 필요한 드라이버를 불러오지 못했다"는 것입니다. 장치 자체가 고장 난 게 아니라, 드라이버를 못 읽는 상태라는 뜻이죠. 그래서 이 글은 하드웨어 교체가 아니라 드라이버를 정상적으로 다시 올려주는 순서로 접근합니다. 순서대로 따라 하면 대부분 소프트웨어 조치만으로 해결됩니다.


⚠️ 증상과 오류 메시지 확인

먼저 정확히 코드 31이 맞는지 확인합니다. 시작 우클릭 → 장치 관리자를 열고, 느낌표가 붙은 장치를 더블클릭한 뒤 "일반" 탭의 장치 상태를 보세요. 아래 문구가 뜨면 코드 31입니다.

이 장치가 제대로 작동하지 않습니다.
Windows에서 이 장치에 필요한 드라이버를 로드할 수 없기 때문입니다. (코드 31)

이때 어떤 장치인지(네트워크 어댑터인지, 디스플레이 어댑터인지 등)와 정확한 모델명을 메모해 두세요. 나중에 제조사 드라이버를 받을 때 필요합니다. 참고로 인터넷이 안 되는 상황이라면, 스마트폰 USB 테더링이나 다른 PC를 이용해 드라이버를 미리 받아두면 작업이 수월합니다.


🔍 코드 31은 왜 생길까

드라이버를 못 불러오는 데는 몇 가지 정해진 원인이 있습니다. 제 사례를 포함해 현장에서 흔한 순서로 정리하면 이렇습니다.

  • 드라이버 손상·호환 문제 — 윈도우 업데이트 후 특히 자주 발생
  • 레지스트리 필터값 손상 — UpperFilters·LowerFilters 항목 문제(대표 원인)
  • 잘못된 버전의 드라이버가 설치됨(구형·미검증)
  • 보안 프로그램·이전 백신 잔재가 필터 드라이버를 남긴 경우

특히 레지스트리의 UpperFilters/LowerFilters 손상은 드라이버를 아무리 재설치해도 해결되지 않아 많은 분이 포기하는 지점입니다. 저도 이걸 지우고 나서야 해결됐어요. 그래서 아래 해결법은 쉬운 재설치 → 제조사 드라이버 → 레지스트리 필터 삭제 순서로 배치했습니다.


🛠️ 해결 1 · 재부팅과 드라이버 재설치

가장 간단한 것부터 시작합니다. 일시적 로드 실패면 재부팅만으로 풀리기도 합니다. 그래도 안 되면 드라이버를 완전히 제거하고 다시 잡게 합니다.

  • 장치 관리자에서 해당 장치 우클릭 → 디바이스 제거
  • "이 장치의 드라이버 소프트웨어를 삭제합니다" 체크박스가 있으면 체크
  • 상단 메뉴 동작 → 하드웨어 변경 사항 검색 또는 재부팅

재부팅하면 윈도우가 장치를 새로 인식하며 기본 드라이버를 자동 설치합니다. 명령으로 하드웨어 재검색을 하고 싶다면 관리자 명령 프롬프트에서 아래를 실행해도 됩니다. 이 단계에서 노란 느낌표가 사라지면 성공입니다.

pnputil /scan-devices

🛠️ 해결 2 · 제조사 최신 드라이버 설치

윈도우 기본 드라이버로 안 되면, 장치 제조사의 정식 드라이버를 받아 설치하는 게 확실합니다. 앞에서 메모한 모델명으로 공식 사이트에서 최신 버전을 받으세요. 인텔 계열 랜카드·그래픽이라면 아래 공식 도구가 모델을 자동 인식해 편합니다.

⬇️ 인텔 드라이버 & 지원 도우미 (Intel 공식) intel.com · 무료 · 설치 후 자동 스캔 → 내 장치의 최신 드라이버 안내 (인텔 랜/그래픽용)

그 외 제조사는 각 공식 지원 페이지에서 모델명으로 검색해 받습니다(예: 리얼텍·엔비디아·AMD, 노트북이면 제조사 지원 페이지). 받은 드라이버를 설치할 때는 기존 드라이버 삭제 후 재설치 옵션이 있으면 그걸 선택하는 게 깔끔합니다. 비공식 미러나 광고 사이트 말고 반드시 공식 출처에서만 받으세요.


🛠️ 해결 3 · 레지스트리 필터값 삭제

여기가 코드 31의 진짜 특효약입니다. 저도 이걸로 해결했어요. 손상된 UpperFilters·LowerFilters 값이 드라이버 로드를 막고 있는 경우, 이 값을 지우면 됩니다. ⚠️ 레지스트리는 실수하면 위험하니, 시작 전 내보내기로 백업부터 하세요.

  • 먼저 장치 관리자에서 해당 장치 속성 → 자세히 → 클래스 GUID 값을 확인·복사
  • 실행 창(윈도우키+R)에 regedit 입력
  • 아래 경로에서 그 GUID 폴더를 찾아 들어감
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{장치-클래스-GUID}

그 폴더 안 오른쪽에 UpperFilters 또는 LowerFilters 항목이 보이면 우클릭 → 삭제합니다(둘 다 있으면 둘 다). 시스템 관련 다른 값은 건드리지 말고 이 두 이름만 지우세요. 삭제 후 재부팅하면 드라이버가 정상적으로 로드되며 코드 31이 사라집니다. 참고로 네트워크 어댑터의 클래스 GUID는 {4d36e972-...} 형태입니다.


🧩 그래도 안 될 때 · 시스템 복구·롤백

위 3단계로도 안 되면, 최근 변경이 원인일 가능성이 큽니다. 특정 업데이트나 드라이버 설치 직후부터 문제가 생겼다면 그 이전으로 되돌리는 게 빠릅니다.

  • 드라이버 롤백: 장치 속성 → 드라이버 탭 → "드라이버 롤백"(활성화돼 있을 때)
  • 시스템 복원: 실행 창에 rstrui → 문제 없던 시점으로 복원
  • 시스템 파일 점검: 관리자 터미널에서 아래 실행
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

그래도 여러 장치에서 동시에 코드 31이 난다면 윈도우 자체 손상일 수 있으니 제자리 복구 설치를 고려하세요. 반대로 딱 한 장치만 계속 문제라면 실제 하드웨어 불량일 수도 있어, 다른 포트·다른 PC에 물려 교차 확인해 보는 것이 좋습니다.


❓ 자주 묻는 질문

Q1. 레지스트리에 UpperFilters 항목이 아예 없어요.

그러면 필터 손상이 원인이 아닙니다. 없는 값을 새로 만들지 말고, 해결 2(제조사 드라이버)나 해결 7(복원·롤백)로 넘어가세요.

Q2. GUID가 여러 개라 어떤 폴더인지 모르겠어요.

장치 속성 → 자세히 → 속성 목록에서 "클래스 GUID"를 선택하면 정확한 값이 나옵니다. 그 값과 같은 이름의 폴더로 들어가면 됩니다.

Q3. 드라이버를 지웠는데 재부팅해도 자동 설치가 안 돼요.

인터넷이 끊긴 상태라 자동 설치가 안 되는 경우가 많습니다. 다른 기기로 제조사 드라이버를 미리 받아 USB로 옮겨 수동 설치하세요.

Q4. 레지스트리 수정이 무서운데 꼭 해야 하나요?

UpperFilters/LowerFilters 두 이름만 삭제하는 건 비교적 안전한 작업입니다. 그래도 불안하면 시작 전 "내보내기"로 백업하면 언제든 되돌릴 수 있습니다.


✅ 마무리 · 해결 순서 요약

코드 31은 "윈도우가 드라이버를 로드하지 못하는" 상태입니다. 장치는 멀쩡한 경우가 대부분이니 아래 순서로 드라이버부터 손보세요.

재부팅 → 디바이스 제거 후 재설치

제조사 공식 최신 드라이버 설치

레지스트리 UpperFilters·LowerFilters 삭제(특효약)

드라이버 롤백·시스템 복원으로 이전 시점 복귀

⑤ 여러 장치 동시 발생 시 SFC·DISM / 제자리 복구

저는 ①·②로 안 됐다가 ③의 레지스트리 필터값 삭제로 단번에 해결됐습니다. 재설치만 반복하지 말고, 안 풀리면 꼭 레지스트리 필터값까지 확인해 보시길 권합니다.

#코드31 #장치관리자 #드라이버오류 #UpperFilters #네트워크어댑터 #윈도우드라이버 #드라이버재설치 #레지스트리