C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[39418] Re:디스크의 전체 쓰기 금지가 가능한가요?
플그램시러시러 [wars93] 1148 읽음    2005-03-09 01:15
가능합니다.

다만 적지 않은 프로그램이 요구됩니다.

일단 드라이버 기술이 있어야 할 것 같네요.. 혹시 더 편한 방법이 있는지는 모르지만...

제가 주로 사용하는 방법은...

1) File system 필터 드라이버를 만들어서, file system에 내려오는 IRP(Io Request Packet)을 분석해서 돌려보내는 것입니다. Status 코드를 STATUS_VOLUME_WRITE_PROTECTED...  (맞나? 하여간 비슷합니다.)
이렇게 돌려보내주는 겁니다.

2) 직접 파일 시스템을 제작하는 겁니다. 이 경우에는 파일 시스템이 깔려있지 않은 컴퓨터에서는 데이터를 읽지도 못한는 상황이 발생합니다. 하지만... 재부팅없이 파일 시스템만 설치하면 데이터의 읽기는 가능해지므로.. 충분히 사용할 수 있게 됩니다. 프로그램을 만든다면.. 다운로드 페이지를 준비해야 하겠지요...

1, 2번 모두 로컬 컴퓨터에서 사용하는 경우에는 유용합니다. 다만.. USB 등에 사용하는 경우에는 쉽지 않은 노력이 수반되어야 할 것 같네요. USB는 잘 몰라서, write protect를 반환할 수 있도록 프로그래밍을 할 수 있는지는 모르겠습니다. 아마 불가능하지 않을까 하네요...

제가 제안해드릴 수 있는 최선은 file system을 따로 제작하는 방식입니다. FastFAT를 변형하거나... 아니면.. 필터드라이버를 까는 방법이 유일할 것 같습니다. 필터의 경우에는 다른 컴퓨터로 USB를 옮겨서 쓴다면.. 쓸 수가 있기 때문에... 그 외의 방법은 쉽게 떠오르지 않네요..

회사로서 개발하신다면 시장가능성을 따져보고, 고민해볼 수 있는 측면이겠지만... 개인으로 도전해보고자 한다는 정도라면 쉽지 않은 분야임에는 틀림없을 것 같습니다.

더 궁금하시면.. 메일로 연락남겨주세요... 샘플코드 등은 약간 드릴 수 있겠네요...
jay@gemini-soft.com

+ -

관련 글 리스트
39404 디스크의 전체 쓰기 금지가 가능한가요? 초보빌더 1318 2005/03/08
39418     Re:디스크의 전체 쓰기 금지가 가능한가요? 플그램시러시러 1148 2005/03/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.