본문 바로가기

프로그래밍/Windows Device Driver

[WDK] nullFilter 드라이버

반응형


앞으로 wdk 샘플 예제를 보면서 공부해볼 생각이다.

오늘은 wdk 샘플 예제 중 filesys 의 nullfilter 샘플이다.

우선 설명 부터 보자. 설명은 wdk 도움말을 참조했음~~

 The minifilter is a sample minifilter that shows how to register a minifilter with the filter manager. 

뭐 영어 울렁증으로 인해 .. 걍 구글 번역으로 ㄱㄱ

null 필터는 미니필터 샘플로 필터 매니저에 미니필터를 등록해주는걸 보여준다?...

그냥 등록하는 거랜다..

그럼 등록하는 코드 한번 보자.



헤더는 3개를 등록되어있다.

fltkernel.h, dontuse.h, suppress.h 

그리고 필터 드라이버 이름은 유니코드 문자열의 "NullFilter" 라고 한다.

그리고 사용하는 구조체는

PFLT_FILTER의 filterHandle 하나만 사용하고 있다.

filterHandle 말 그대로 필터 핸들을 가지고 있는거 같다.. 착하게 주석으로도 설명 해준다.

그리고 다음

필터를 등록하는데 구조체인데 옆에 주석 달린거만 봐도 쉽게 알 수 있을 듯하다.


 3개의 루틴을 등록해준다.

DriverEntry, NullUnload, NullQueryTeardown

DriverEntry 드라이버의 시작 위치이다. 이곳에서 드라이버에서 사용될 모든 값들을 초기화 해줘야 된다.

NullUnload 드라이버의 끝나는 위치이다. 이곳에서 드라이버에 사용된 모든 값들을 해제 해줘야 된다.

NullQueryTeardown 는 수동으로 분리되는 요청에 호출된다고 하는데 잘 모르겠다 ㅡ.ㅡ...

수동분리가 뭘 뜻하는건지 이따 DbgPrint 찍어보면서 알아 보면 될 것 같다.


Entry  부분이다.

너무 심플하다...

FltRegisterFilter, FltStartFiltering, FltUnregisterFilter 3개의 함수로 구성 되어있다.

FltRegisterFilter 필터 등록

FltStartFiltering 필터 시작

FltUnregisterFilter 필터 해제 끝이다..


 Unload 부분이다.

 필터 해제가 끝이다.

 NullQueryTeardown  부분인데

 PAGED_CODE가 끝이다.

 어떤 동작을 하는 부분인지 알기 위해 추가적으로 DbgPrint만 찍어 보았다.


그럼 빌드 후 설치 해보자~

inf파일 마우스 우클릭을 이용하여 설치 후 cmd를 관리자 권한으로 실행 한 후 load 시키면 된다.

초 간단하다. fltmc load nullfilter하면 저렇게 짜잔 등록이 된다.

하지만 드라이버 이름답게 아무것도 안한다.

그래서 그냥 내리면 된다  - . ㅡ;;;

Nullfilter는 여기까지~


반응형

'프로그래밍 > Windows Device Driver' 카테고리의 다른 글

chkinf 사용하기  (0) 2014.01.07
[WDK] passThrough 드라이버  (4) 2013.12.28
메모리 누수 툴(Poolmon.exe)  (0) 2013.12.15
wdk build OACR Error  (0) 2013.12.11
error c2220 : warniing treated as error  (0) 2013.11.28