WDF 하루에 열페이지씩 공부하..할까? _1 Study+more

WDF와 WDM 이 뭔가여?
몰라 나도, 다만, WDF는 UMDF와 KMDF를 지원한다고 적혀져 있네, 이 말인즉슨.
WDF는 실제로는 UMDF와 KMDF로 쪼개진다는 말인듯 싶다. 그러니 드라이버를 작성할때는 WDM, UMDF, KMDF로 작성할수 있다 하겠다.
X나, WDF 설계의 주된 목적은 PNP와 전원관리 지원을 단순화 하고 이를 UMDF/KMDF 드라이버에 지원 가능하게 하는것이었다. 라는 핵심 문구가 한참 뒤에 나오는건 무슨 개념인가여?

WDF란 무엇인가?
하나도 모르겠다. 한장에 걸쳐서 간단히(저자나 역자는 간단하다고 적어놨겠지?) 서술되어 있지만, 몰라썅- _-
내가 이해한대로라면, 이자식들은 일종의 (기본 기능만 포함된)베이스 클래스야. 그래서 우리 드라이버(WDF 모델)에서 해당 클래스를 상속받아서 필요하면 확장도 하고 해서 쓰는거 같아.

프로그래밍 인터페이스
몰라. 프로퍼티, 메쏘드, 이벤트 몰라 다 족구하라 그래- _-
그중에서도 이벤트, 얘네는 이벤트를 처리하기 위해서 콜백을 구현해서 프레임웍에 등록한다고 하네.
자 콜백은 어케 구현하나여? 이따위 쓸데없(을리가...)는 질문을 하는 녀석들을 위해 간단히 언급되어 있어.
UMDF 드라이버는 COM기반의 콜백 오브젝트를 구현하고, blahblah. KMDF 드라이버는 콜백 함수를 구현한다.

I/O 모델
윈도우가 WDF 드라이버로 I/O 요청을 보내면, 그 중간에 껴있는(?) 프레임워크가 요청을 먼저 받아서 지가 처리 가능한거면 지가 처리해 버리고 아니라면 WDF가 등록한 콜백을 호출해서 WDF 드라이버에게 처리를 맏기는거 같아. (후아.. 이거 하나 이해됐다 - 0-);
프렘웍은 동작중인 모든 요청을 알고 있다고 한다. 따라서 I/O 요청 취소, 전원 변화, 장치 제거등이 발생하면 적절한 행동(등록된 콜백을 호출한다거나 그런다거나)을 할수 있다고 한다.

에러처리
에러처리 뭐 별거 있간, 다만, 드라이버라는 녀석은 좀 쪼잔한 새퀴라서 약간의 틈이라도 보이면 안된다. 따라서 모든 호출하는 함수의 리턴값을 체크 해야한다하는게 신상에 많이 좋을꺼다- _- (이런 뭐 병신 사이코 편집증 환자같은 드라이버라니)

보안
보안은 어디서나 무지 엄청 X나 중요한거임.
근데, 우린 일정때문에 보안에 신경 못쓰잖아.
우린 안될꺼야 아마.

인자 검증
니가 만약 잘못된 유저 버퍼를 드라이버에 넘겼을때 드라이버가 '병신'같이 처리했다면 BSOD 를 한없이 많이! 보게 될것이다. (그리고 지금껏 수많은 개발자들이 그래왔다. ㅋㅋㅋㅋㅋ)
그래서 위대하신 MS께서 WDF 드라이버를 작성할때 사용하는 WDF함수와 메쏘드에 필요한 최소 버퍼 길이를 명시하도록 해 두었다. (즉, 잘못된 메모리 참조를 예방하기 위함)
근데... 위대하신 MS가 그래놨으면 뭐해, 어차피 개발자가 병신이면 BSOD 인데ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

디버깅
WinDbg를 찬양하라!

PS. 대충 WDF가 뭔지 읽어 봤다.
(하지만 몰라 모르겠다고! 이게 무슨 외계어도 아니고! 내가 난독이라니! 난독이라니!! 아악!!!!)

덧글

  • zXEr 2009/09/15 13:35 # 답글

    와 WDF 시작하시는건가요..
  • 승네군 2009/09/15 14:55 # 삭제 답글

    .........시작이 반이라는 말이 있지여.
    즉, 다시 말하면, 책을 반이상 읽지 못했다면 시작도 못한거다?! 라는거지여.
    이걸 다시 말하자면, `시작이 뭔가여? 먹는건가여?` 지여-.-;
댓글 입력 영역