WDK설치 후 제공되는 소스 코드를 활용해서 Build를 해보고,
특정 키를 눌렀을 때 필터 드라이버에서 캡쳐가 되는지 확인을 해겠습니다.
소스는 WDK 7600에서 제공되는 Kbfilter으로 설치를 합니다.
WDK 7600 다운로드가 더 이상 지원을 하지 않네요.
간단하게 드라이버 설치 방법만 소개하고, WDK 설치 후 자세하게 설명해보겠습니다.
코드 사이닝이 없는 경우 테스트 사이닝으로 하거나, 32비트 Windows 환경에서 드라이버를 설치하세요.
cmd prompt에서 sc.exe를 사용한 디바이스 드라이버 설치
1) kbfiltr.sys 파일을 c:\windows\system32\drivers에 복사
2) kbfiltr.sys설치: sc.exe create kbfiltr binPath= system32\drivers\kbfiltr.sys type= kernel
3) kbfiltr 삭제: sc.exe delete kbfiltr
devcon.exe를 사용해서 upper filter driver로 등록한다. "devcon.exe classfilter keyboard upper +kbfiltr"
devcon.exe는 구글에서 검색하면, 다운로드 받을 수 있습니다.
devcon.exe를 사용하지 않고, 직접 레지스트리에 입력하려면, Regedit를 열고,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e96b-e325-11ce-bfc1-08002be10318} 키에서 UpperFilters Value에 kbfiltr를 추가하면 됩니다.
가상 머신이나 테스트 머신에서 드라이버를 설치하고, 디버깅 설정을 해서 키보드 입력할 때 key code가 제대로 넘어오는지 확인을 합니다.
키보드 코드 값은 다음 사이트를 참조하세요.
docstore.mik.ua/orelly/webprog/DHTML_javascript/0596004672_jvdhtmlckbk-app-b.html
https://docstore.mik.ua/orelly/webprog/DHTML_javascript/0596004672_jvdhtmlckbk-app-b.html
Appendix B. Keyboard Key Code Values Key codes are numeric values that correspond to physical keys on the keyboard but do not necessarily correspond to a particular character. For example, the A key on the keyboard produces the same key code when pressed,
docstore.mik.ua
KbFilter_ServiceCallback 루틴에서
InputDataStart->MakeCode 키보드 코드 값
InputDataStart->Flags Up & Down 값을 참조하세요.
WDK가 설치되어 있지 않아서, 자세한 내용을 올리지 못했네요. 환경 구성 후 다시 업데이트 할 예정입니다.
'All about Programming' 카테고리의 다른 글
Windows Driver Kit Version 7.1.0 설치 및 다운로드 링크 (0) | 2021.01.01 |
---|---|
Symbolic Link 파일인지 확인하는 방법 (Windows API) (0) | 2020.12.31 |
Windows Driver로 ACPI Table에서 iBFT 정보를 찾는 방법 (0) | 2020.12.31 |
구글 검색 방법 / command(커맨드) / 검색 식 #1 (0) | 2020.12.05 |
Linux python hid usb find/open/write (0) | 2020.10.06 |