driver-online
  log-inmypagesitemap
top
   자유게시판
   로그북
    견우일지
    시스템팀 개발일지
    Beginning Driver
   유용한 팁&강좌
   CrashDump분석(beta)
   개발QnA
    WDM 입문
    USB
    NDIS
    File System
    Debugging 관련
    그 외
 
개발Q&A > USB
키보드입력을 이중화 시키려고 고민중이에요.
 ·작성일 2012.03.23:10.55 (금)  · 작성자 seyool  · 조 회 2,839


키보드입력을 이중화 시키려고 고민중이에요.
ps/2혹은 usb방식 키보드의 입력이 kbdclass드라이버에서 처리가 되는것을 알았습니다.
DeviceTree툴로 살펴보면 kbdclass드라이버의 Device Object는(이하 DO)
\\Device\KeyboardClass0~1까지
기본으로 존재하더라구요. 키보드를 하나 더 꽂으면 KeyboardClass2가 생깁니다.

키입력 이중화를 시키기 위해서 2가지 방법이 떠오릅니다.

첫째는 KeyboardClass2 DO에 Filter DO를 덧붙여 IRP_MJ_READ 요청을 처리하도록 하는 것입 니다.

둘째는 kbdclass드라이버의 IRP_MJ_READ 디스패치 루틴을 후킹하여 IRP_MJ_READ를 대신 처
리하도록 할까 합니다.
어떤 키보드에서 눌림이 발생했는가를 판단하기 위해서
http://msdn.microsoft.com/en-us/library/windows/hardware/ff542337(v=vs.85).aspx
의 msdn내용중 UnitId값이 키보드장치명의 N번째값을 의미한다고 해서 이값을 통해서,
2번째 꽂힌 키보드입력값을 별도로 처리하면 어쩔지 생각중입니다.

동작환경은 x86/x64 XP이상 Win7이하에서 모두 동작하여야 합니다.
또한 은행의 키보드보안모듈과 충돌이 없어야 하는대,, 위 접근 방식이 괜찮은 방식인지 궁 금합니다.


이중화 이유는,
수강실마다 컴퓨터 1대가 있고, 선생님만 컴퓨터를 사용합니다.
교육생이 들어올때마다 출석을 고유번호로 선생님 컴퓨터외의 키보드(키패드)를 통해서
입력을 합니다. 이때 선생님의 컴퓨터 사용에 제한(문서작업중,, 다른쪽 키입력을 입력했을 때 키입력이
문서App에 전달이 되면 안됩니다)을 받으면 안되기 때문입니다.

*답변을 받은 후 감사의 글을 남기는 것은 꼭 지켜야할 네티켓입니다.
 
  

이 전 : Re] Re] usb 연결시 usb읽기 기능만 되게 하고 싶습니다.

다 음 :

 
quick-menu
event
study
QnA
pds
family-site concert used used2 intro
address
address