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
[1627] Re:Re:[감사] 답변해 주셔서 감사드립니다.
박지훈.임프 [cbuilder] 3709 읽음    1999-08-12 00:00
: 감사드립니다. ㅠㅠ
: 꼭 알고 싶었습니다.
: 그리고 또 알고싶은것이 있습니다.
: 윈도우의 api중에서 디스크를 직접제어하는
: 함수를 알고 싶습니다.
: 예를 들면, 디스크의 섹터를 읽어오는 그런함수요...
: 윈도우에도 있을거라 생각되지만 찾지를 못하겠습니다.
: 가르쳐 주세요
: 그럼 안녕히 계세요.^^



임펠리테리입니다.

페이지가 자꾸 넘어가는 바람에 질문하신 것을 보지 못하고 넘어갔군요. 늦어서 죄송하구요.

디스크를 직접 읽어오는 함수를 알려달라고 하셨는데요. 간단히 대답하자면 안된다고
생각하시면 됩니다.
쉽게 윈도우즈라고 부르지만, 사실 현재의 윈도우즈 환경은 95/98과 NT로
나누어집니다. 이 두가지 OS 환경은 API 수준에서는 호환이 됩니다만, 사실
내부적으로는 완.전.히. 다릅니다. NT에서는 어떤 방법을 쓰든 일반적인 프로그래밍의
모드에서는 직접 디스크 입출력은 불가능합니다. 직접 입출력은 오직 드라이버에서만
(커널모드라고 합니다) 가능하고, 디스크 입출력 뿐 아니라 포트 입출력 등도 마찬가지
입니다. 또 95에서도, 썽킹을 사용하지 않으면 역시 드라이버를 통해야 가능합니다.
썽킹이란 단지 16비트 함수들, 즉 Win 3.1과의 호환성 유지 때문에 도입된 방법으로,
범용적으로 쓰일 수 있는 것은 아닙니다. 더욱이 곧 출시될 윈도우즈 2000은
완벽한 NT 운영체제이므로 더이상 썽킹등의 방법도 사용할 수 없습니다.
그러므로, 윈도우즈 2000에서는 돌아가지 않는 바보 아들을 만들지 않으려면..
권하고 싶지 않은 방법입니다. 썽킹은 이제 시대를 지나간 기술이기 때문입니다.

간단히 말하자면, 정석은 드라이버를 만드는 방법 뿐입니다. 또 앞으로 표준이 될
윈도우즈 2000이 될 NT 커널에서는, 드라이버 프로그래밍은 일반적인 프로그래밍과는
거의 하늘땅 차이라고 말할만큼 어렵습니다. 다양한 하드웨어 지식과 윈도우즈 NT의
내부를 속속들이 잘 알고있어야 가능하며, 그런 사람에게도 결코 쉽지 않습니다.

기를 꺾는 소리만 했나요? 제가 요즘 틈틈이 NT 드라이버 프로그래밍을 공부하고 있어서
얼마나 어려운지를 알고 있기에 몇자 적어봤습니다.
간단히 말하자면... 윈도우즈는 도스가 아닙니다. 많은 것이 숨겨져 있죠.
직접 입출력으로 가는 길은 멀고도 험합니다.

그럼 참고하시길..

+ -

관련 글 리스트
1515 [질문] 포맷을 할려면? 박세율 3574 1999/07/03
1526     Re:[질문] 포맷을 할려면? 박지훈.임프 3737 1999/07/09
1536         Re:[감사] 답변해 주셔서 감사드립니다. 박세율 3683 1999/07/10
1627             Re:Re:[감사] 답변해 주셔서 감사드립니다. 박지훈.임프 3709 1999/08/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.