본문 바로가기
Development/Visual Studio

Registry 접근 Access is denied

by qWooWp 2022. 4. 14.
반응형

아래 예제 코드에서 2가지 부분에서 Access is denied 에러가 발생한다. 

 

    LONG openRes = RegCreateKeyEx(HKEY_LOCAL_MACHINE, g_drvkey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL);
    
    // error == 5 : access denied
    if (openRes != ERROR_SUCCESS) {
        return -1;
    }

   
    LONG setRes = RegSetValueEx(hKey, g_KN_Paper, 0, REG_BINARY, (CONST BYTE*)save_info, sizeof(mimo_settings_info_t));
    // error == 5 : access denied
    if (setRes != ERROR_SUCCESS) {
        return setRes;
    }
    
    if (RegCloseKey(hKey) != ERROR_SUCCESS)
        return -3;

첫번 째는 RegCreateKeyEx 에서 발생 하는 것이다.

이것은 Application 이 UAC 에 의해서 관리자로 실행이 되지 않았기 때문에 발생을 한다. 

 

이를 위해서 아래그림과 같이 프로그램 속성에서 링커 속성 에 있는 UAC 레벨을 조절하여 실행하여 해결 할 수 있다.

 두번째는 RegSetValueEx 에서 발생을 하는 경우이다. 

이는 RegCreateKeyEx 에서 잘못된 권을 주엇을 때 발생을 한다. 일부 예제 소스에서 키를 생성할 때 KEY_CREATE_SUB_KEY  옵션을

이용했기 때문에 발생을 한다. 항상 KEY_ALL_ACCESS 로 접근해야 해결할 수 있따. 

반응형

댓글