keyboard callback limit

Is there a limit on how mach keystrokes I can send in KEYBOARD_INPUT_DATA
packets in the keyboard callback routine?

I’ve found that it won’t take more than 110 in one read (the
InputDataConsumed variable gets set to 110 after the call). And even if I
break it up into multiple small calls (1 make or break per call) it still
results in missing key stoke data.

Thanks.

-Jeff

Kbdclass’s circular ring buffer is 100 packets big. The source is in
the ddk, so you can see for yourself. You can override this. It will
come at the expense of NP pool usage though. It also affects every
single keyboard plugged into the machine, not just yours.

HKLM\system\currentcontrolset\services\kbdclass\parameters

“KeyboardDataQueueSize” : REG_DWORD

I would not go this route though. If kbdclass does not accept all your
data, set a timer and retry a short time later. The raw input thread
reads 10 packets at a time (this of course can change from release to
release), so kbdclass’s circular buffer will be drained piece meal. You
will need to keep your own circular ring buffer of packets to send and
manage that.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Jeff Lange
Sent: Wednesday, March 30, 2005 2:12 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] keyboard callback limit

Is there a limit on how mach keystrokes I can send in
KEYBOARD_INPUT_DATA
packets in the keyboard callback routine?

I’ve found that it won’t take more than 110 in one read (the
InputDataConsumed variable gets set to 110 after the call). And even
if I
break it up into multiple small calls (1 make or break per call) it
still
results in missing key stoke data.

Thanks.

-Jeff


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com