littlefish2000
驱动牛犊
驱动牛犊
  • 注册日期2005-02-16
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1089回复:3

键盘驱动程序求教

楼主#
更多 发布于:2005-02-25 22:39
这键盘代一个糍卡扫描器,目的是在扫梏倏ㄊ?把糍卡数据存入驱动的BUFFER,不输出到键盘缓冲区,应用程序通过,DeviceIOControl读到糍卡信息.
1.filter driver不能截取IOCTL,是否要建立一个新Device截取ioctls,最好有例子.
2.VOID
KbFilter_ServiceCallback(
IN PDEVICE_OBJECT DeviceObject,
IN PKEYBOARD_INPUT_DATA InputDataStart,
IN PKEYBOARD_INPUT_DATA InputDataEnd,
IN OUT PULONG InputDataConsumed
);是filter driver截取键盘data的函数,我想去keyboard input data的一段数据如何做.

最新喜欢:

threebagsthreeb...
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-02-28 09:26
filter driver能截取IOCTL,filter driver是没有名称的设备,所以发送到下面的IRP都要过filter driver
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
littlefish2000
驱动牛犊
驱动牛犊
  • 注册日期2005-02-16
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-02-28 20:56
 你有例子吗?如果有source code, Thanks a lot
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-01 11:25
注意两点:
AddDevice中如下调用IoCreateDevice
// Create the un-named filter device
status =
IoCreateDevice( pDrvObj,
sizeof(DEVICE_EXTENSION),
NULL, // no name
FILE_DEVICE_UNKNOWN,
0, TRUE,
&pFilterDevObj );
截获IOCTL如下
if (pIrpStack->Parameters.DeviceIoControl.IoControlCode
== IOCTL_... //要截获的IOCTL控制码
) {
具体的处理
} else
//其它的IOCTL向下传递
return DispatchPassThru( pDevObj, pIrp );
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部