title: Windows HID device driver for USB Keyboard
body: <p>I've this problem to solve with an USB device:</p>
  
  <ul>
  <li>connected to POS PC (Windows POSReady 2009) there is a USB Keyboard and a USB Dallas I-Button reader</li>
  <li><p>USB Reader is connected to MoBo USB bus, and shows up as USB Composite device:</p>
  
  <p><strong>USB Composite Device</strong> USB\VID_134B&amp;PID_0206&amp;REV_0100</p>
  
  <p><strong>Compatible HID device</strong> HID\VID_134B&amp;PID_0206&amp;REV_0100&amp;MI_01</p>
  
  <p><strong>USB input device</strong>  (1st instance) USB\VID_134B&amp;PID_0206&amp;REV_0100&amp;MI_00</p>
  
  <p><strong>USB input device</strong>  (2st instance) USB\VID_134B&amp;PID_0206&amp;REV_0100&amp;MI_01</p>
  
  <p><strong>HID Keyboard</strong> HID\VID_134B&amp;PID_0206&amp;REV_0100&amp;MI_00</p></li>
  <li><p>when I read I-Button with reader, the code inside the button is added to keyboard buffer (as it was typed with physical keyboard) and active application (wich has keyboard focus) receive the code</p></li>
  <li>my application must interract with codes readed by the USB device, however I have to have focus costantly on a TextBox to receive the code</li>
  <li>this not always is possible, specially with unattended MessageBoxes, wich takes focus (and keyboard input) and can create malfunctions</li>
  <li>best of all should be having a reader on serial port, or TCP/IP, but this is the only one choice we have (we cannot change reader)</li>
  </ul>
  
  <p>So, my idea is to trap incoming "keypress" from reader keyboard, avoid append in system keyboard buffer, and pass them to my application via WM_USER, WM_COPYDATA, Socket or other method.</p>
  
  <p>So, the goal would be to write a driver, to apply ONLY to specific USB HID device (the I-Button reader, but NOT to the real PC keyboard) who block keypress and send to application in some way.</p>
  
  <p>I checked for the "keyboard filter" Microsoft way, but I can block only some combinations of keys, but this is not my goal.</p>
  
  <p>I think I should create a custom of personal "kbdhid.sys" and/or "kbdcalss.sys" driver and apply ONLY to my USB HID Reader.</p>
  
  <p>Could someone point me out the right direction?</p>
  
  <p>Thanks a lot</p>