none
DeviceIoControl FSCTL_LOCK_VOLUME 수행시 FALSE를 리턴 GetLastError() = 5 가 나옵니다. RRS feed

  • 질문

  • 안녕하세요

    SDCARD 포맷 프로그램을 WINDOWS 10 환경에서 VS2015 로 만들고 있습니다.
    DeviceIoControl(..., FSCTL_LOCK_VOLUME .... ) 수행하면 FALSE 를 리턴받아 실패합니다.
    GetLastError()를 수행하면 5(ERROR_ACCESS_DENIED) 가 출력 됩니다.
    프로그램 실행시 관리자 권한으로 수행 하였습니다.

    질문 1. 
    ERROR_ACCESS_DENIED 가 출력 되는 이유를 알고 싶습니다.
    관리자 권한으로 수행 하고 있습니다.
    디스크에 접근및 Open 한 File 이 없습니다.

    질문 2.
    위의 DeviceIoControl(..., FSCTL_LOCK_VOLUME .... ) 의 에러를
    무시하고 DeviceIoControl(..FSCTL_DISMOUNT_VOLUME..) 만 했을 경우
    Format 루틴을 수행 시키면 포맷이 정상적으로 됩니다.
    (Disk 에 Write 가 된다는 의미)

    FSCTL_LOCK_VOLUME 
    FSCTL_DISMOUNT_VOLUME
    FSCTL_UNLOCK_VOLUME

    과정을 거치지 않고 
    FSCTL_DISMOUNT_VOLUME 만으로
    포맷 프로그램을 작성할 경우 어떤 문제가 발생 할 수 있을까요?

    감사합니다.


    • 편집됨 furmuwon 2016년 8월 10일 수요일 오후 1:08
    2016년 8월 10일 수요일 오후 12:01