2012-09-30 1 views
0

FSCTL_LOCK_VOLUME과 함께 DeviceIoControl을 사용하여 직접 디스크 읽기/쓰기 작업 전에 USB 펜 드라이브를 잠글 수 있습니다. 이 프로그램은 때때로 작동합니다. 자물쇠 호출 자체에 문제가 있습니다. Visual Studio 2008에서 명령을 단계별로 수행하면 결과가 정확하고 잠금이 성공합니다. 매번! 코드를 실행할 때 (디버그 또는하지 않음) 잘못된 핸들을 사용하여 산발적으로 호출이 실패합니다. 유일하게 눈에 띄는 차이점은 거기에 스테핑하는 것이 0.5 초의 일시 중지입니다. - 만족 스럽지만 실행/디버깅이 즉시 실패합니다.FSCTL_LOCK_VOLUME과 함께 DeviceIoControl을 사용하여 볼륨을 잠급니다. 디버거 문제

어디로 떨어지고 있는지 힌트를주세요.

나는 이것이 진정한 기술자를위한 하나라고 생각합니다!

+0

CreateFile이 유효한 핸들을 반환했지만 핸들에 FSCTL_LOCK_VOLUME 작업이 올바르게 작동하도록 올바른 사양이 없을 수 있습니다. 예를 들어'FILE_SHARE_READ'와'FILE_SHARE_WRITE'가 지정되어야합니다. DeviceIoControl에 대한 나의 경험은 오류 메시지가 정확하지만 기본이 자세하다는 것입니다. 잘못된 핸들은 핸들이 해당 작업에 유효하지 않다는 것을 의미합니다. –

답변

0

소리가 타이밍 버그와 유사합니다. 핸들에 액세스 할 수있는 다른 스레드가 있습니까? 그렇다면 DeviceIoControl을 호출하기 전에 그 중 하나가 종료 될 수 있습니다.

관련 문제