이 글을 3줄로 요약하면
· 코드 28은 장치가 고장났다는 뜻이 아니라 이 장치에 연결할 드라이버 패키지가 아직 없다는 상태 표시입니다.
· 그래서 "드라이버 업데이트"만 반복하면 계속 최신이라는 답만 돌아옵니다. 어디서 패키지를 가져오느냐가 쟁점입니다.
· 원인은 네 갈래입니다. 판별표에서 자기 상황을 찾아 해당 섹션만 처리하면 됩니다.
목차
3. 원인 A · 이 장치에 맞는 드라이버 패키지가 없다
4. 원인 B · 업데이트 과정에서 쓰던 드라이버가 떨어져 나갔다
5. 원인 C · 드라이버가 선택적 업데이트에만 올라와 있다
코드 28은 정확히 무슨 뜻인가
"설치가 실패했다"가 아니라 "붙일 드라이버가 아직 없다"입니다. 이 차이가 해결 순서를 바꿉니다.
장치관리자에서 장치를 더블클릭하면 나오는 속성 창의 "장치 상태"란에 이렇게 표시됩니다. "이 장치에 대한 드라이버가 설치되어 있지 않습니다. (코드 28)" 장치 이름이 아예 안 잡혀 "기타 장치" 분류 아래에 알 수 없는 이름으로 들어가 있는 경우도 많습니다.
마이크로소프트 드라이버 문서에서 이 코드의 내부 이름은 CM_PROB_FAILED_INSTALL입니다. 윈도우가 이 장치의 하드웨어 ID에 대응하는 드라이버 패키지(INF)를 찾지 못해, 장치는 인식했지만 아직 아무 드라이버도 연결하지 못한 상태라는 뜻입니다.
정리하면 코드 28은 하드웨어 고장 신호가 아닙니다. 전원도 들어오고 연결도 됐는데, 윈도우가 "이 물건을 어떻게 다뤄야 하는지 적힌 설명서"를 아직 못 구한 상태입니다. 그래서 이 오류에서 할 일은 딱 하나로 모입니다. 맞는 드라이버 패키지를 어디서 가져와 어떻게 등록할 것인가.
"최신 드라이버가 이미 설치되어 있습니다"는 해결됐다는 뜻이 아닙니다
장치관리자의 드라이버 업데이트 버튼은 Windows Update 카탈로그에 등록된 드라이버 안에서만 찾습니다. 카탈로그에 그 장치용 패키지가 없으면 아무것도 못 찾은 상태에서도 "최신"이라고 답합니다. 코드 28이 그대로 남아 있다면 그 문구는 무시하고 다음 단계로 넘어가야 합니다.
USB 기기, 사운드 카드, 네트워크 어댑터, 외장 하드, 프린터처럼 새로 연결한 하드웨어에서 자주 나오고, 윈도우를 새로 설치했거나 큰 버전으로 올린 직후 칩셋 관련 장치 여러 개가 한꺼번에 코드 28로 뜨기도 합니다.
증상으로 원인 좁히기
처음 연결한 장치인지, 잘 쓰던 장치인지가 갈래를 정합니다.
| 증상 | 유력한 원인 | 먼저 볼 항목 |
|---|---|---|
| 처음 연결한 장치가 "기타 장치"에 이름 없이 잡힌다 | 드라이버 패키지 자체가 시스템에 없음 | 원인 A → 제조사 패키지 수동 설치 |
| 잘 쓰던 장치가 윈도우 업데이트 이후부터 코드 28 | 기존 드라이버가 갱신 과정에서 이탈 | 원인 B → 롤백·재인식 |
| 드라이버 업데이트를 눌러도 "최신"이라고만 나온다 | Windows Update 카탈로그에 없는 장치 | 원인 A → 그다음 원인 C |
| 윈도우를 새로 깔거나 큰 버전으로 올린 직후 생겼다 | 드라이버가 선택적 업데이트에 대기 중 | 원인 C → 선택적 업데이트 확인 |
| 드라이버를 지웠다 다시 깔아도 매번 같은 지점에서 실패 | 드라이버 저장소에 깨진 패키지 잔류 | 원인 D → 저장소 정리 |
| 장치 여러 개가 동시에 코드 28로 떠 있다 | 메인보드 칩셋 드라이버 미설치 | 원인 A → 칩셋 패키지 먼저 |
원인 A이 장치에 맞는 드라이버 패키지가 없다
처음 연결한 장치, 특수 장치, 오래된 장치라면 여기서 끝나는 경우가 가장 많습니다.
윈도우는 자체 드라이버 데이터베이스에 없는 하드웨어를 만나면 장치만 인식해 두고 드라이버 연결을 보류합니다. 이때 필요한 건 업데이트 버튼이 아니라 제조사가 배포하는 드라이버 패키지입니다. 그 패키지를 정확히 찾으려면 장치 이름이 아니라 하드웨어 ID를 봐야 합니다.
1하드웨어 ID를 먼저 적어 둔다
장치 우클릭 → 속성 → "자세히" 탭 → 속성 드롭다운에서 "하드웨어 ID"를 고릅니다. PCI 장치면 PCI\VEN_8086&DEV_A0F0, USB 장치면 USB\VID_046D&PID_C52B 같은 문자열이 나옵니다. 앞의 VEN·VID가 제조사, DEV·PID가 모델입니다.
2제조사 공식 지원 페이지에서 패키지를 받는다
노트북이면 노트북 제조사, 조립 PC면 메인보드 제조사의 지원 페이지에서 정확한 모델명 + 사용 중인 윈도우 버전으로 검색합니다. 장치 여러 개가 한꺼번에 코드 28이라면 개별 장치보다 칩셋 드라이버를 먼저 설치하는 편이 빠릅니다.
3설치 파일이 없고 압축만 있으면 폴더를 직접 지정한다
받은 파일에 setup.exe 없이 INF·SYS 파일만 들어 있으면, 장치 우클릭 → "드라이버 업데이트" → "내 컴퓨터에서 드라이버 찾아보기"를 골라 압축을 푼 폴더를 지정합니다. "하위 폴더 포함"을 체크해야 안쪽에 있는 INF까지 검색합니다.
드라이버는 제조사 공식 도메인에서만 받습니다
검색 상단에 뜨는 "드라이버 자동 검색" 광고 사이트나 통합 드라이버 팩은 서명이 다르거나 엉뚱한 모델용 INF가 섞여 있는 경우가 있습니다. 잘못 설치하면 코드 28이 코드 52(서명 확인 실패)나 코드 10으로 바뀌기만 합니다.
이 방법이 안 통하는 경우
제조사 페이지에 그 윈도우 버전용 드라이버가 아예 없거나, 받은 패키지를 지정해도 "이 장치에 가장 적합한 드라이버가 이미 설치되어 있습니다"로 끝난다면 패키지 문제가 아닙니다. 잘 쓰던 장치였다면 원인 B, 최근 윈도우를 크게 올렸다면 원인 C로 갑니다.
원인 B업데이트 과정에서 쓰던 드라이버가 떨어져 나갔다
어제까지 멀쩡하던 장치가 오늘 코드 28이라면 이 갈래입니다.
윈도우 업데이트나 드라이버 자동 갱신 도중 기존 패키지는 제거됐는데 새 패키지 등록이 끝나지 않으면 장치가 드라이버 없는 상태로 남습니다. 이 경우 새 드라이버를 구하러 다닐 필요 없이, 되돌리거나 다시 인식시키는 것만으로 끝나는 일이 많습니다.
1드라이버 탭에서 되돌릴 것이 남아 있는지 본다
장치 우클릭 → 속성 → "드라이버" 탭에서 "이전 드라이버" 버튼을 확인합니다. 버튼이 눌리는 상태면 이전 패키지가 남아 있다는 뜻이고, 눌러서 되돌리면 그대로 해결되는 경우가 있습니다.
버튼이 회색이면 그것도 정보입니다
"이전 드라이버" 버튼이 비활성이면 되돌릴 이전 패키지가 시스템에 남아 있지 않다는 뜻입니다. 이 경우 롤백은 선택지에서 빠지고, 아래 재인식 단계나 원인 A의 수동 설치로 바로 넘어가면 됩니다.
2장치를 제거하고 다시 인식시킨다
장치 우클릭 → "디바이스 제거" → 재부팅합니다. 부팅하면서 윈도우가 하드웨어를 처음 본 것처럼 다시 훑고 드라이버 연결을 재시도합니다. 재부팅 없이 즉시 시도하려면 장치관리자 상단 "동작" → "하드웨어 변경 사항 검색"을 누릅니다.
3USB 장치면 포트와 케이블을 바꿔 본다
외장 하드나 USB 기기는 포트마다 컨트롤러가 다릅니다. 전면 확장 포트 대신 메인보드 후면 포트로, USB 허브를 끼고 있다면 허브를 빼고 직결로 바꿔 다시 연결해 봅니다. 케이블 하나만 바꿔도 인식이 되는 경우가 있습니다.
이 방법이 안 통하는 경우
제거 후 재부팅해도 같은 자리에 코드 28로 다시 잡히면 윈도우가 붙일 패키지를 못 찾고 있는 것이므로 재인식으로는 해결되지 않습니다. 최근 윈도우를 크게 올렸다면 원인 C, 재설치를 여러 번 반복한 이력이 있다면 원인 D로 갑니다.
원인 C드라이버가 선택적 업데이트에만 올라와 있다
일반 업데이트 목록에는 안 뜨고 별도 메뉴에만 대기하는 드라이버가 있습니다.
윈도우는 필수가 아닌 드라이버를 자동으로 설치하지 않고 "선택적 업데이트"에 따로 모아 둡니다. 그래서 설정 화면에는 "최신 상태입니다"라고 떠 있는데, 한 단계 안쪽에는 그 장치용 드라이버가 설치를 기다리고 있는 상황이 생깁니다. 윈도우를 새로 설치했거나 큰 버전으로 올린 직후에 특히 흔합니다.
1선택적 업데이트 목록을 연다
Win + I → 좌측 맨 아래 "Windows 업데이트" → "고급 옵션" → 추가 옵션 영역의 "선택적 업데이트"를 클릭합니다. 그 안의 "드라이버 업데이트" 항목을 펼치면 대기 중인 드라이버가 나옵니다.
2해당 장치 항목만 체크해 설치한다
코드 28이 뜬 장치와 이름이 맞는 항목을 체크하고 "다운로드 및 설치"를 누릅니다. 관계없는 항목까지 한꺼번에 설치하면 나중에 어느 드라이버가 원인인지 가리기 어려워지니, 필요한 것만 고릅니다.
"드라이버 업데이트" 항목 자체가 안 보일 수도 있습니다
선택적 업데이트 화면에 품질 업데이트만 있고 드라이버 항목이 없으면 그 장치용 드라이버가 Windows Update 카탈로그에 아예 없다는 뜻입니다. 이때는 더 기다릴 게 아니라 원인 A의 제조사 패키지 설치로 넘어가야 합니다.
이 방법이 안 통하는 경우
선택적 업데이트로 드라이버를 설치했는데도 코드 28이 그대로거나, 설치가 "실패"로 끝나 업데이트 기록에만 남는다면 저장소 쪽 문제일 수 있습니다. 원인 D로 갑니다.
원인 D드라이버 저장소에 깨진 패키지가 남아 있다
재설치를 여러 번 반복했는데 매번 같은 지점에서 막힐 때만 해당됩니다.
윈도우는 설치했던 드라이버 패키지를 드라이버 저장소(DriverStore)에 oem##.inf 이름으로 보관합니다. 이 중 하나가 손상되거나 잘못된 버전이 우선순위를 차지하면, 새 패키지를 설치해도 윈도우가 계속 그 낡은 것을 고르려다 실패합니다. 이 저장소를 다루는 공식 도구가 pnputil입니다.
1설치된 드라이버 패키지 목록을 뽑는다
게시된 이름(oem12.inf 등), 원래 이름, 공급자, 클래스, 날짜, 버전이 함께 나옵니다. 문제 장치와 같은 클래스이면서 공급자와 버전이 낯선 항목을 찾습니다. 화면이 길면 pnputil /enum-drivers > %userprofile%\Desktop\drv.txt로 파일에 뽑아 보면 편합니다.
2문제 패키지만 골라 제거한다
oem12.inf 부분은 1번에서 실제로 확인한 이름으로 바꿔 입력합니다. /uninstall을 붙이면 그 패키지를 쓰고 있는 장치에서도 함께 떼어냅니다. 제거가 끝나면 재부팅한 뒤 원인 A의 제조사 패키지를 다시 설치합니다.
이름을 확인하지 않고 지우지 않습니다
oem 번호는 PC마다 다르게 매겨집니다. 다른 글에 적힌 번호를 그대로 입력하면 엉뚱한 장치의 드라이버가 지워집니다. 실행 전에 복원 지점을 하나 만들어 두는 것이 안전합니다(Win + R → rstrui 로 되돌릴 수 있습니다).
이 방법이 안 통하는 경우
삭제 명령이 "드라이버 패키지가 사용 중입니다"로 거부되면 그 패키지를 아직 다른 장치가 쓰고 있는 것이므로 건드리지 않는 편이 낫습니다. 여기까지 왔는데도 그대로라면 다음 섹션에서 장치 정체와 실패 지점부터 다시 확인합니다.
어떤 장치가 왜 실패했는지 확인하는 법
이름 모를 장치를 짐작으로 찾지 않고, 기록에 남은 값으로 특정합니다.
코드 28에서 가장 많이 낭비되는 시간은 "이게 대체 무슨 장치인지 모르겠다"는 구간입니다. "기타 장치 → 알 수 없는 장치"라고만 떠 있으면 검색할 단어조차 없습니다. 이때 쓸 수 있는 값이 두 개 있습니다.
1하드웨어 ID로 장치 정체를 특정한다
속성 → 자세히 탭 → 하드웨어 ID에서 VEN(제조사) 네 자리와 DEV(모델) 네 자리를 그대로 옮겨 검색하면, 장치 이름을 몰라도 어느 회사의 어떤 칩인지 나옵니다. USB 장치는 VID·PID가 같은 역할을 합니다. 이 값이 있으면 제조사 페이지에서 받을 파일이 정해집니다.
2시스템 로그에서 설치 실패 기록을 찾는다
Win + R → eventvwr.msc → Windows 로그 → 시스템에서 오류만 필터링합니다. 원본이 Kernel-PnP 또는 DriverFrameworks인 항목을 보면, 어느 장치 인스턴스에서 드라이버 설치가 중단됐는지가 남아 있습니다. 시각까지 확인되면 "언제부터 이렇게 됐는지"도 같이 잡힙니다.
설치 과정 자체를 더 자세히 보려면 C:\Windows\INF\setupapi.dev.log 파일을 메모장으로 열어 맨 아래쪽부터 읽습니다. 마지막 설치 시도의 하드웨어 ID와 어느 단계에서 중단됐는지가 시간 순으로 기록돼 있습니다.
자주 묻는 질문
코드 28에서 반복적으로 나오는 질문을 모았습니다.
Q.드라이버 업데이트를 눌러도 "최신"이라고만 나오는데 왜 그런가요?
A.그 버튼은 Windows Update 카탈로그에 등록된 드라이버 안에서만 검색합니다. 카탈로그에 없는 신제품이나 특수 장치라면 아무것도 못 찾은 상태에서도 "최신"이라고 답합니다. 코드 28이 남아 있다면 원인 A의 제조사 패키지 설치로 가야 합니다.
Q.외장 하드가 코드 28인데 재부팅해도 계속 그대로입니다.
A.먼저 포트와 케이블을 바꿔 봅니다(원인 B 3번). 포트를 바꿔도 같은 자리에 코드 28로 잡히면 케이스 안의 USB-SATA 컨트롤러 드라이버가 필요한 제품일 수 있으므로, 하드웨어 ID를 확인해 제품 제조사 지원 페이지에서 컨트롤러 드라이버를 받습니다.
Q.pnputil로 잘못 지웠습니다. 되돌릴 수 있나요?
A.대부분은 해당 장치를 다시 연결하거나 장치관리자에서 "하드웨어 변경 사항 검색"을 눌러 재설치하면 복구됩니다. 그래도 안 되면 제조사 패키지를 다시 설치하고, 그마저 어려우면 Win + R → rstrui 로 실행 전 복원 지점으로 되돌립니다.
Q.단종된 프린터라 제조사 페이지에 드라이버가 없습니다.
A.제조사가 최신 윈도우용 배포를 중단한 모델이면 같은 계열의 범용 드라이버나 같은 엔진을 쓰는 상위 모델용 패키지를 시도합니다. 네트워크 프린터라면 윈도우 내장 IPP 드라이버로 잡히는 경우도 있으니, 설정 → Bluetooth 및 장치 → 프린터 및 스캐너에서 수동 추가를 먼저 시도해 봅니다.
Q.코드 28인 장치를 그냥 두면 문제가 되나요?
A.그 장치를 안 쓴다면 당장 큰 지장은 없습니다. 다만 칩셋 관련 장치가 코드 28로 남아 있으면 절전 복귀 실패나 USB 인식 불안정으로 이어질 수 있으므로, 여러 개가 동시에 떠 있는 경우에는 칩셋 드라이버부터 정리하는 편이 좋습니다.
함께 보면 좋은 글
같은 드라이버 계열에서 자주 이어지는 오류들입니다.
왕초보도 따라하는 장치관리자 코드 43 오류 해결법 드라이버는 있는데 윈도우가 장치를 중지시킨 경우의 처리 순서 · 눌러서 확인하기 → 장치관리자 코드 39 오류, 원인 3가지와 각각의 해결법 드라이버 파일이 손상돼 로드 자체가 안 될 때 확인할 항목 · 눌러서 확인하기 → "USB 장치를 인식하지 못했습니다" 오류, 저는 이 순서로 해결했습니다 (드라이버 문제 완전정리) 장치 이름조차 안 잡히는 USB 인식 문제를 포트·전원 쪽부터 가르는 방법 · 눌러서 확인하기 →참고 문서 · Microsoft Learn — Device Manager Error Messages · CM_PROB_FAILED_INSTALL (Code 28) · PnPUtil Command Syntax





