태그 보관물: 미니필터 드라이버

미니필터 드라이버에서 파일 풀패스명 얻기

미니필터 드라이버에서 I/O 연산시 파일 풀패스명을 얻는 함수를 작성하였습니다.
미니필터 드라이버에서는 파일명 및 파일 정보를 얻기 위해 필터 매니저에서 제공하는 FltGetFileNameInformation() 함수를 사용하여 얻을 수 있지만 이 함수가 실패하는 경우가 있습니다. 그것도 자주…(자세한 내용은 WDK 도움말을 참조하십시오)
 

위 함수는 Pre/Post Operation Callback 루틴에서 아래와 같이 사용하시면 됩니다.

※ 주의 : 코드는 실제 적용 코드에서 블로깅을 위해 수정된 것입니다. 사용하실때는 코드 검증및 테스트를 하시고 사용하시기 바랍니다.

미니필터 드라이버 기반 파일 모니터링 프로그램이 어느정도 완성되었습니다. 현재 테스트 중이고, 곧 업로드 하도록 하겠습니다.

[스크린샷]
사용자 삽입 이미지

드라이버 로딩 권한 설정

미니필터 드라이버가 XP에서는 로딩이 잘 되는데 비스타에서 테스트 해보니 FilterLoad() 함수가 0x80070522(ERROR_PRIVILEGE_NOT_HELD) 에러를 내며 로딩이 실패(물론 관리자 권한으로 실행해도) 하네요.
WDK 도움말을 잘 읽어보니..(역시 문서를 잘 읽어야 되는데.. 쩝) FilterLoad() 함수 호출자는 SeLoadDriverPrivilege (SE_LOAD_DRIVER_PRIVILEGE) 을 가져야 한다고 적혀있습니다.

그래서 프로그램이 필터드라이버 로딩전에 SeLoadDriverPrivilege 권한을 Enable 하도록 하는 함수를 만들었습니다.

이 함수를 FilterLoad() 함수전에 아래와 같이 SeLoadDriverPrivilege 를 인자로 해서 호출해 주면 됩니다.

※ 주의 : 코드는 실제 적용 코드에서 블로깅을 위해 수정된 것입니다. 사용하실때는 코드 검증및 테스트를 하시고 사용하시기 바랍니다.