Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

Windows 10/11에서 ERROR_ACCESS_DENIED 오류 해결하는 방법 총정리

SetupDiSetDeviceProperty는 장치 인스턴스(device instance) 속성을 정의하는 함수입니다. 장치 인스턴스란 시스템 내에서 특정 장치를 고유하게 식별할 수 있도록 도와주는 고유한 장치 식별 문자열을 의미합니다. SetupDiSetDeviceProperty 함수는 컴퓨터에 연결된 장치들의 표시 이름과 각종 파라미터를 설정하기 때문에 매우 중요한 역할을 합니다.

SetupDiSetDeviceProperty는 Windows 운영체제가 지원하는 통합 장치 속성 모델(unified device property model)의 일부입니다. 이 장치 속성 모델은 장치가 어떻게 표현되는지 정의하고, 장치의 기능을 설명하며, Windows 운영체제 내에서 해당 장치의 구성을 설정합니다. 이 과정은 사운드, 디스플레이, 네트워크 등 컴퓨터에 연결된 모든 하드웨어에 적용됩니다.

SetupDiSetDeviceProperty 함수 구문

WINSETUPAPI BOOL SetupDiSetDeviceInterfacePropertyW(

HDEVINFO DeviceInfoSet,

PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,

const DEVPROPKEY *PropertyKey,

DEVPROPTYPE PropertyType,

const PBYTE PropertyBuffer,

DWORD PropertyBufferSize,

DWORD Flags

함수가 성공적으로 실행되면 TRUE를 반환하며, 처리 과정 중 오류가 발생하면 FALSE와 함께 특정 반환 코드를 반환합니다.

Windows 10/11 사용자들이 자주 마주치는 반환 코드 중 하나가 바로 ERROR_ACCESS_DENIED 오류입니다. 이 오류가 발생하면 SetupDiSetDeviceProperty 프로세스가 실패하고 더 이상 진행되지 않습니다. 따라서 다시 시도하기 전에 반드시 오류의 근본 원인을 먼저 해결해야 합니다.

ERROR_ACCESS_DENIED 오류의 원인

ERROR_ACCESS_DENIED 반환 코드는 "호출자에게 관리자 권한이 없다"는 이유로 발생합니다. SetupDiSetDeviceProperty가 ERROR_ACCESS_DENIED를 반환했다면, 수정하려는 장치에 대한 전체 쓰기 권한이 없다는 의미입니다. 관리자 권한이 없는 일반 계정을 사용하고 있거나, 제한된 권한만 가진 관리자 계정을 사용 중일 가능성이 높습니다.

이 오류를 해결하려면 계정 권한을 확인하고, 수정하려는 장치에 특별한 권한이 필요한지 살펴봐야 합니다.

또 다른 원인은 호환성 문제입니다. 수정하려는 프로그램이 이전 버전의 Windows 운영체제용으로 설계되었다면 Windows 10/11과 호환되지 않아 오류가 발생할 수 있습니다. 해당 프로그램이 오래되었거나 손상된 경우에도 동일한 오류가 나타날 수 있습니다.

ERROR_ACCESS_DENIED 오류 해결 방법

Windows 10/11의 ERROR_ACCESS_DENIED 오류는 복잡해 보이지만 실제 해결 방법은 간단합니다. 아래 방법을 시도하기 전에 먼저 Outbyte PC Repair 같은 도구를 사용해 불필요한 파일을 정리하고, 바이러스 및 악성코드 검사를 진행하는 것이 좋습니다. 컴퓨터를 정리하고 최적화한 후 재부팅한 다음, 아래 해결 방법들을 순서대로 적용해 보세요.

방법 1: 손상된 시스템 파일 복구

SetupDiSetDeviceProperty가 ERROR_ACCESS_DENIED를 반환하는 원인 중 하나는 수정하려는 프로그램과 관련된 일부 시스템 파일이 손상되었기 때문일 수 있습니다. Windows에 기본 내장된 시스템 파일 검사기(SFC) 도구를 사용하면 시스템 파일 무결성을 확인할 수 있습니다.

SFC 검사를 실행하는 방법:

  1. Windows 키 + X를 눌러 파워 유저 메뉴를 열고, 목록에서 명령 프롬프트(관리자) 또는 Windows PowerShell(관리자)을 선택합니다.
  2. 명령 프롬프트 창에 sfc /scannow를 입력하고 Enter 키를 누릅니다.
  3. 검사가 완료될 때까지 기다립니다. SFC는 손상된 시스템 파일을 자동으로 Windows 복구 이미지의 정상 파일로 교체하려고 시도합니다.

변경 사항을 적용하기 위해 컴퓨터를 재시작한 후, ERROR_ACCESS_DENIED 오류가 여전히 발생하는지 확인합니다.

방법 2: 호환성 모드로 실행

Windows 7, Windows 8, Windows 8.1처럼 이전 버전의 Windows용으로 설계된 프로그램을 실행하면 호환성 문제가 발생할 수 있습니다. 하지만 이런 오래된 프로그램이 더 이상 쓸모없다는 뜻은 아닙니다. 호환성 모드로 실행하면 정상적으로 작동하게 만들 수 있습니다.

프로그램을 호환성 모드로 실행하는 방법:

  1. 바탕화면에서 프로그램 바로가기를 마우스 오른쪽 버튼으로 클릭한 후, 메뉴에서 속성을 선택합니다.
  2. 호환성 탭을 클릭합니다.
  3. 호환성 모드 항목에서 사용하려는 Windows 버전을 선택하고 확인을 누릅니다.
  4. 이 프로그램을 관리자 권한으로 실행 옵션도 함께 체크합니다.

프로그램이 호환성 모드로 실행되도록 설정한 후, SetupDiSetDeviceProperty 함수를 다시 실행해 ERROR_ACCESS_DENIED 오류가 여전히 발생하는지 확인합니다. 오류가 계속된다면 다음 단계로 넘어갑니다.

방법 3: 프로그램 업데이트

때로는 프로그램을 업데이트하지 않았기 때문에 오류가 발생하기도 합니다. 설정 > 시스템 및 보안에서 Windows Update를 확인하여 대기 중인 소프트웨어나 시스템 업데이트가 있는지 살펴보세요. Windows Update에서 사용 가능한 모든 업데이트를 설치합니다.

업데이트 항목이 없다면 소프트웨어 개발사 웹사이트를 방문해 새로운 패치나 업데이트가 출시되었는지 확인하세요. 업데이트 파일을 직접 다운로드해 설치한 후, 시스템을 재부팅하고 ERROR_ACCESS_DENIED 오류가 해결되었는지 확인합니다.

방법 4: 최근 시스템 변경 사항 되돌리기

ERROR_ACCESS_DENIED 오류가 나타나기 전에 무언가를 설치하거나 삭제했다면, 그 작업이 시스템에 영향을 주어 오류를 유발했을 수 있습니다. 어떤 작업을 했는지 떠올려 보고 가능하다면 되돌리세요.

최근에 업데이트를 설치했다면, 아래 단계에 따라 모든 것이 정상적으로 작동하던 시점으로 시스템을 되돌릴 수 있습니다:

  1. 시작 버튼을 클릭한 후 설정으로 이동합니다.
  2. 업데이트 및 보안을 클릭한 후 Windows Update > 업데이트 기록으로 들어갑니다.
  3. 설치된 업데이트 기록 보기 링크를 클릭합니다.
  4. 최근 설치된 업데이트 목록이 표시됩니다. 가장 최근 항목을 선택하고 업데이트 제거 버튼을 클릭합니다.
  5. 변경 사항을 적용하려면 컴퓨터를 재시작한 후, ERROR_ACCESS_DENIED 오류가 여전히 나타나는지 확인합니다.

방법 5: 문제의 프로그램 제거 후 재설치

위 방법들을 모두 시도했는데도 Windows 10/11에서 ERROR_ACCESS_DENIED 오류가 계속 발생한다면, 마지막 수단으로 프로그램을 제거하는 것입니다.

Windows 10/11에서 프로그램을 제거하는 방법:

  1. 시작 > 설정 > 시스템으로 이동한 후, 왼쪽 메뉴에서 앱 및 기능을 클릭합니다.
  2. 제거하려는 프로그램을 선택합니다.
  3. 제거 버튼을 클릭합니다.
  4. 컴퓨터를 재시작합니다.

재설치하려면 개발사 웹사이트나 Microsoft Store에서 설치 파일을 다운로드하세요. 다운로드한 파일을 실행하고 안내에 따라 프로그램을 설치하면 됩니다.

마무리

SetupDiSetDeviceProperty는 프로그램과 장치가 어떻게 작동해야 하는지 정의하는 중요한 함수입니다. Windows 10/11에서 ERROR_ACCESS_DENIED 오류를 만났다면, 위의 문제 해결 가이드를 순서대로 따라 하면 대부분 해결할 수 있습니다.