블루스크린 오류(BSOD, Blue Screen of Death)는 Windows가 결함이 있는 RAM, 하드 디스크 이상 등 컴퓨터에 손상을 줄 수 있는 문제를 감지했을 때 발생하는 정지 오류(stop error)입니다. 즉, BSOD는 운영체제가 시스템을 보호하기 위해 취하는 조치라고 할 수 있습니다. 그중 하나가 바로 'REFERENCE BY POINTER'라 불리는 0x00000018 오류입니다.
0x00000018로도 알려진 REFERENCE BY POINTER는 객체의 상태에 따른 잘못된 참조 횟수(reference count)를 의미하는 오류입니다. 이 문제를 겪는 사용자는 블루스크린을 마주하게 되며, 대체로 하드웨어와 관련이 깊습니다. 이 오류 코드는 시스템 충돌을 일으켜 어떠한 작업도 수행할 수 없게 만듭니다.
0x00000018 오류의 가장 흔한 원인으로는 오래된 드라이버, 타이밍 불일치, 시스템에 침투한 일반적인 버그 등이 꼽힙니다. 이번 글에서는 빠르게 시스템을 정상화할 수 있는 효과적인 문제 해결 방법들을 소개합니다. 그 전에 먼저 이 버그 체크(bugcheck) 0x00000018이 무엇이고, 왜 발생하는지 살펴보겠습니다.
'버그 체크 코드: 0x00000018'에 대한 자세한 정보
Reference by pointer BSOD 오류(MSDN 버그 체크 reference by pointer 0x00000018이라고도 함)는 Windows 10에서 성가신 문제지만, 몇 가지 해결책이 존재합니다.
전문가 팁: 전용 PC 최적화 도구를 활용하면 시스템 문제나 성능 저하를 유발할 수 있는 잘못된 설정, 정크 파일, 유해 앱, 보안 위협을 손쉽게 제거할 수 있습니다.
이 오류가 발생하면 컴퓨터가 강제로 종료됩니다. 구형 Windows 버전은 물론 최신 시스템에서도 나타날 수 있는 문제입니다.
때때로 이 오류와 함께 원인이 된 파일 이름이 표시되기도 합니다. 실제로 다음과 같은 메시지를 받았다는 사용자 사례가 보고되었습니다.
Reference_by_pointer wdf01000.sys / ntoskrnl.exe / atikmdag.sys / tcpip.sys / ntkrnlpa.exe / win32k.sys
또 다른 형태의 메시지는 다음과 같습니다.
Unhandled Exception: exception_access_violation reading address 0x00000018
이런 메시지가 표시된다면, 원인이 되는 프로그램이나 드라이버를 특정하기 위해 어느 정도 조사가 필요합니다. 만약 메모리 오류 0x00000018이 표시된다면, 해당 BSOD는 RAM 문제와 관련이 있을 가능성이 높습니다.
일부 신고 사례에서는 장치 오버클러킹이 원인이었던 경우도 있으므로, 최근 실행한 프로세스도 함께 점검해 보는 것이 좋습니다.
BSOD Reference by Pointer 0x00000018의 원인
드라이버가 객체 포인터를 사용할 때, 드라이버는 커널 루틴을 호출하여 해당 객체의 참조 횟수를 1 증가시킵니다. 드라이버가 포인터 작업을 마치면 또 다른 커널 루틴을 호출해 참조 횟수를 1 감소시킵니다.
참조 횟수를 늘리는(referencing) 루틴 호출과 줄이는(dereferencing) 루틴 호출은 반드시 짝을 이루어야 합니다. 이 버그 체크는 객체의 참조 횟수가 일관성을 잃었을 때 발생하며, 일반적으로 드라이버가 객체의 참조 횟수를 반복적으로 감소시켜 불필요한 역참조 호출이 발생하는 것이 원인입니다. 또한 객체에 아직 열려 있는 핸들이 남아 있는 상태에서 참조 횟수가 0에 도달하거나, 핸들 여부와 관계없이 참조 횟수가 0 미만으로 떨어질 때도 이 오류가 발생할 수 있습니다.
요약하면, REFERENCE BY POINTER BSOD 오류의 주된 원인은 제대로 작성되지 않은 드라이버이며, 그 외에 다음 요인들도 영향을 줄 수 있습니다.
- 오래되었거나 손상된 드라이버 및 시스템 파일
- 하드 디스크 등 하드웨어 문제
- 결함이 있는 서드파티 소프트웨어
참고로, BSOD 발생 시 흔히 그렇듯 정상 부팅이 불가능하다면 아래 해결 방법 대부분을 안전 모드(Safe Mode)에서 진행해야 할 수 있습니다.
버그 체크 0x00000018 해결 방법
아래 방법들은 Windows 11/10에서 Reference by Pointer 블루스크린을 해결하는 데 도움이 될 것입니다.
1단계: 메모리 검사
Windows 오류 코드 0x00000018이 나타난다면, 이 오류는 손상된 메모리에서 비롯되는 경우가 많기 때문에 가장 먼저 시스템 RAM을 점검해야 합니다.
이를 위해 Windows에 내장된 Windows 메모리 진단 도구를 실행하세요. 이 도구는 컴퓨터가 느려지거나, 멈추거나, 응답하지 않거나, 블루스크린이 표시될 때 문제를 진단하는 데 매우 유용합니다. 설치된 프로그램의 문제가 메모리 오류 때문인지 확인할 수 있습니다.
작업표시줄 검색창에 Windows 메모리 진단을 입력하고 Enter 키를 누릅니다.
화면에 나타나는 대화 상자에서 지금 다시 시작하여 문제 확인을 선택한 뒤, 메모리 검사가 끝날 때까지 기다립니다.
컴퓨터가 재시작되면 진단 결과 메시지가 표시됩니다(Windows 10 기준 화면 우측 하단). 메모리 오류가 발견되지 않았다면 메모리 모듈은 정상이므로 다음 해결 방법을 시도하세요. 반면 오류가 감지되었다면 메모리 오류는 대개 PC의 메모리 칩 문제를 의미하므로 PC 제조사에 지원을 요청하는 것이 좋습니다.
2단계: 최신 그래픽 드라이버 설치
최고의 성능과 안정성을 확보하려면 Windows 10 PC에 최신 드라이버를 유지하는 것이 필수적입니다.
다만 드라이버 문제는 언제든 발생할 수 있으며, 경우에 따라 특정 드라이버를 제거해야 할 필요가 있습니다.
그래픽 카드 문제로 드라이버를 제거해야 한다면 DDU(Display Driver Uninstaller)를 활용해 보세요.
- Display Driver Uninstaller를 다운로드합니다.
- 다운로드한 프로그램을 실행합니다.
- DDU가 시작되면 화면의 안내에 따라 그래픽 카드 드라이버를 제거합니다.
AMD 및 NVIDIA 사용자들은 그래픽 카드 드라이버의 기본(minimal) 버전을 설치한 후 reference by pointer 오류가 해결되었다고 보고했습니다. AMD 그래픽 카드가 없더라도 이 방법은 적용할 수 있습니다.
드라이버를 완전히 제거한 후에는 최신 기본 버전의 그래픽 드라이버를 다운로드해야 합니다.
그래픽 카드 제조사 웹사이트에 접속하여 해당 그래픽 카드를 찾고, 불필요한 추가 소프트웨어가 포함되지 않은 기본 버전 드라이버를 내려받아 설치하세요.
최신 기본 버전 드라이버를 설치하면 오류가 근본적으로 해결될 것입니다. 그래픽 카드 드라이버를 항상 최신 상태로 유지하는 것도 잊지 마세요. 오래된 드라이버는 BSOD 오류와 충돌의 주요 원인이므로 최대한 빨리 업데이트하는 것이 중요합니다.
3단계: 백신 프로그램 비활성화 또는 제거
백신 소프트웨어는 필수적이지만, 때때로 Windows와 충돌하여 이 오류를 유발할 수 있습니다.
문제를 해결하려면 백신 프로그램을 일시적으로 비활성화한 후 오류가 사라지는지 확인하세요. 문제가 계속된다면 백신 프로그램을 제거해야 합니다.
단순히 백신을 삭제하는 것만으로는 부족할 수 있으므로, 전용 제거 도구(uninstaller)를 사용해 완전히 삭제하는 것이 좋습니다. 대부분의 백신 업체는 자사 제품용 전용 제거 도구를 제공하므로 해당 도구를 받아 사용하세요.
Outbyte PC Repair 같은 PC 복구 도구를 활용해 백신 설치 흔적 파일까지 모두 제거하세요. 일부 백신 프로그램은 다른 보안 프로그램의 잔여 파일이 시스템에 남아 있으면 정상적으로 작동하지 않습니다.
백신을 제거한 후 문제가 해결되었는지 확인하세요. 백신이 원인이었다면 다른 백신 솔루션으로 교체하는 것이 좋습니다.
권장 사항으로, Windows와 간섭하지 않는 강력한 백신 프로그램을 선택하세요. Windows 10/11에 적합한 최고의 백신 소프트웨어를 참고해 선택하면 됩니다.
4단계: 문제가 되는 소프트웨어 제거
컴퓨터를 재시작한 후 안정적인지 확인하세요. BSOD 오류가 더 이상 발생하지 않는다면, 설치된 프로그램 중 하나가 원인이었을 가능성이 높습니다.
이제 문제가 되는 프로그램을 찾아야 합니다. 애플리케이션과 서비스를 하나씩 활성화해 가며 원인이 되는 항목을 찾을 때까지 과정을 반복하세요.
문제의 프로그램을 찾았다면 제거한 후 오류가 해결되는지 확인하는 것이 가장 좋습니다. 클린 부팅 환경 설정 방법은 다음과 같습니다.
- Windows 키 + R을 눌러 실행 창을 연 뒤 msconfig를 입력합니다.
- Enter 키를 누르거나 확인을 클릭해 명령을 실행합니다.
- 시스템 구성 창이 열리면 선택적 시작을 선택하고 시작 항목 로드의 체크를 해제합니다.
- 서비스 탭에서 모든 Microsoft 서비스 숨기기를 선택합니다.
- 모두 사용 안 함 옵션을 클릭합니다.
- 시작 프로그램 탭으로 이동해 작업 관리자 열기를 선택합니다.
- 목록의 각 항목을 마우스 오른쪽 버튼으로 클릭한 뒤 사용 안 함을 선택합니다.
- 모든 시작 항목을 비활성화한 후 시스템 구성 창으로 돌아가 적용과 확인을 클릭합니다.
5단계: CHKDSK 유틸리티 실행
RAM에 오류가 없다면 다음 단계는 하드 드라이브의 오류 여부를 점검하는 것입니다. 명령 프롬프트나 파일 탐색기를 통해 chkdsk 유틸리티를 실행할 수 있습니다.
여기서는 파일 탐색기를 이용한 방법을 단계별로 안내합니다.
- 파일 탐색기를 실행하고 오류를 검사할 드라이브를 마우스 오른쪽 버튼으로 클릭합니다.
- 컨텍스트 메뉴에서 속성을 선택합니다.
- 속성 창에서 도구 탭으로 이동한 뒤, 오류 검사 항목의 검사 버튼을 클릭합니다.
- 유틸리티가 실행되면 선택한 드라이브의 파일 시스템 오류와 배드 섹터 같은 문제를 스캔하기 시작합니다.
- 문제가 발견되면 시스템을 재시작하여 복구 과정을 시작합니다.
0x00000018 오류를 해결하기 위해 CHKDSK는 부팅 직후 자동으로 실행되며, 하드 드라이브에서 감지한 모든 오류, 배드 섹터 및 기타 문제를 수정합니다.
6단계: SFC 및 DISM 검사 실행
앞서 언급했듯이 이런 유형의 오류는 대개 파일 손상이나 시스템 버그에서 비롯됩니다.
다행히 Windows에는 사용자의 개입 없이 오류를 검색하고 복구할 수 있는 내장 유틸리티가 여럿 포함되어 있습니다. 대표적인 것이 SFC(System File Checker, 시스템 파일 검사기)와 DISM(Deployment Image Servicing and Management)입니다.
대부분의 파일 손상 문제는 SFC와 DISM 유틸리티 실행만으로 해결되므로, 두 도구를 모두 실행해 보길 권장합니다. 이를 통해 문제가 빠르게 해결되기를 바랍니다.
7단계: 드라이버 검증 관리자(Driver Verifier Manager) 도구 사용
드라이버 검증 관리자 도구를 사용하면 0x00000018 오류를 일으키는 손상된 드라이버를 식별할 수도 있습니다.
이름 그대로 Driver Verifier는 어떤 드라이버에 문제가 있는지 파악하는 프로그램입니다. SFC나 CHKDSK처럼 문제를 직접 해결하지는 않지만, 오류의 원인이 되는 드라이버를 찾는 데 도움을 줍니다.
- 작업표시줄 검색창에 cmd를 입력하고 관리자 권한으로 실행을 선택해 관리자 권한의 명령 프롬프트를 엽니다.
- 명령 프롬프트 창에 다음 명령을 입력하고 Enter 키를 누릅니다: verifier
- 드라이버 검증 관리자에서 표준 설정 만들기를 선택하고 다음을 클릭합니다.
- 이 컴퓨터에 설치된 모든 드라이버를 자동으로 선택하는 옵션을 고른 뒤 마침을 클릭합니다.
- 유틸리티가 오류를 검사하도록 한 뒤 재시작합니다. 재부팅 시 설치된 모든 드라이버를 검사하며, 발견된 문제를 보고해 줍니다.
발견된 손상된 드라이버는 업데이트하세요. 드라이버 검증 도구 실행에는 시간이 다소 걸릴 수 있습니다. 문제 해결 과정이 끝나면 결함이 있거나 오래된 드라이버를 롤백, 업데이트 또는 재설치하는 것을 고려하세요.
IT 관리자라면 WinDbg 같은 디버거나 크래시 덤프 분석 소프트웨어를 활용해 고급 문제 해결을 수행할 수 있습니다.
8단계: 하드웨어 점검
reference by pointer를 포함한 많은 BSOD 오류는 하드웨어에서 비롯됩니다. 최근 새 하드웨어를 설치했다면 반드시 분리하거나 교체해 보세요.
새 하드웨어 외에도 결함이 있는 하드웨어는 BSOD 오류의 흔한 원인입니다.
이런 유형의 오류는 대개 결함이 있는 RAM이 근본 원인이므로, RAM 모듈을 하나씩 테스트하여 불량 모듈을 찾아내세요.
MemTest86+ 또는 유사한 도구를 사용하면 RAM을 철저히 검사할 수 있습니다.
RAM이 정상이라면 메인보드, 하드 드라이브 등 다른 주요 부품도 함께 점검하세요.
9단계: 과열 여부 확인
과열도 이 오류의 잠재적 원인 중 하나입니다. 오류가 발생한다면 PC의 온도를 확인해 보세요.
CPU 온도 모니터링 도구를 사용하면 됩니다. 이런 도구를 설치한 후 백그라운드에서 실행하며 컴퓨터 온도를 지속적으로 관찰하세요.
CPU나 GPU 온도가 권장 수준을 초과하여 충돌이 발생한다면, PC 내부 청소가 필요할 수 있습니다.
방법은 간단합니다. PC의 전원 플러그를 뽑고 케이스를 연 뒤, 압축 공기 스프레이로 부품의 먼지를 제거하면 됩니다.
단, 컴퓨터 케이스를 열면 보증이 무효화될 수 있다는 점을 유의하세요. 노트북 사용자 중에는 먼지 청소만으로 문제가 해결되었다는 사례도 여럿 보고되었으니 한 번 시도해 볼 만합니다.
마무리
블루스크린 오류는 하드웨어 고장에서 비롯되는 경우가 많으므로 결코 가볍게 여겨서는 안 됩니다. Reference by pointer BSOD 오류는 번거로운 문제지만, 위에서 소개한 해결 방법 중 하나로 해결하셨기를 바랍니다. BSOD 오류의 원인을 파악하면 시스템을 추가 손상으로부터 보호할 수 있습니다.