Keyboard Filter Driver 스타토~~~~

처음에는 마우스와 키보드의 필터드라이브를 같이 구현하려고 했는데…

예전에 파일시스템 필터드라이브 만들때는 L”\\DosDevices\\D:\\” 이런 디바이스 링크이름을

알아서 링크와 관련되 디바이스 포인터를 얻어 올 수 가 있었는데…

키보드랑 마우스 링크이름을 몰라서 필터 드라이브를 붙일 디바이스 포인터를 얻어 올 수 없다 유유

방법이 있긴 있을텐데.. 워낙 자료가 부족하다보니…

그래서 우선 키보드 필터드라이버 하나만 구현하고자 시작했다…

초반에 드라이버 제작 환경 구축하느라 예전에 했던 환경설정 작업 뻘짓하고…

오늘은 우선 Win32와 통신 할 디바이스 본체 구현 해 놓았고

DDK 예제 보니까 드라이버 올릴때 자동으로 Attach 시키는 부분이 설정 되어 있길래

DriverObject->DriverExtension->AddDevice = GetPointerOfKbdDevice;

나는 그 부분에서 PDO만 전역에 저장 해 놓고… Win32에서 Attach 시키라고 할때

Attach 함수로 붙일 수 있게 준비 해 놓았음.

또, GUI Dispatch 부분 골격만 잡아 놓고, KbdHookDispatch도 골격만 만들어 놓고…

할 일 들이… 음… Attach 구현, 그리고 Hook Dispatch 부분에서 IRP에서

키보드 입력 정보 얻어와서 뿌리거나 따로 처리하는 것 구현해야 함…

파일시스템 필터 드라이브 할때는 IRP_MJ_WRITE, IRP_MJ_READ할때 처리 했는데…

요번에는 좀 다르네.. IRP_MJ_INTERNAL_DEVICE_CONTROL 요걸로 처리해야 하는군.. 흠


댓글 남기기