阅读:1704回复:6
关于ddk中的kbfiltr例子和应用程序通讯问题
我想把kbfiltr例子做成能用应用程序通信的,看例子说明说要使用IRP_MJ_DEVICE_CONTROL和应用程序通信的话,要创建另外一个设备。我想知道怎么创建啊?哪位高手能指点一下。谢谢。
|
|
最新喜欢:threeb... |
沙发#
发布于:2005-03-24 09:37
我想把kbfiltr例子做成能用应用程序通信的,看例子说明说要使用IRP_MJ_DEVICE_CONTROL和应用程序通信的话,要创建另外一个设备。我想知道怎么创建啊?哪位高手能指点一下。谢谢。 可以不用创建设备,找个在IRP_MJ_DEVICE_CONTROL中键盘驱动不用的子功能号加入自己的处理代码就可以了。 |
|
|
板凳#
发布于:2005-03-24 19:58
我试了ddk中得kbfiltr例子不行,怎么都进不了控制程序中。我下了ctrl2cap,解决了。
|
|
地板#
发布于:2005-03-25 08:50
我试了ddk中得kbfiltr例子不行,怎么都进不了控制程序中。我下了ctrl2cap,解决了。 这两个程序其实都可以,ctrl2cap功能弱一些,是在请求完成后查看修改,而kbfiltr在请求来到时处理,可以做更多工作,包括增加丢弃修改等等操作 |
|
|
地下室#
发布于:2005-04-19 13:50
我也想使用IRP_MJ_DEVICE_CONTROL和应用程序通信
如果在Dispatch中 IoSkipCurrentIrpStackLocation( Irp ); return IoCallDriver( devExt->TopOfStack, Irp ); 我的CreateFile总是返回拒绝访问. 如果在Dispatch中 IoCompleteRequest(Irp, IO_NO_INCREMENT ); return STATUS_SUCCESS; 我的CreateFile返回成功,可以DeviceIoControl. 但过滤功能又不起作用了 该如何弄??????? 一个驱动只能创建一个设备吗??? |
|
|
5楼#
发布于:2005-04-20 13:45
可以创建多个设备,我是新手,什么叫ctrl2cap,能不能解释一下如何实现的?
shenming365 不明白你的意思?createfile 跟dispatch中的代码有关系吗? |
|
6楼#
发布于:2005-06-08 15:16
在dispath中判断一下
如果deviceobject是你创建的controldevice那么 IoCompleteRequest(Irp, IO_NO_INCREMENT ); return STATUS_SUCCESS; 如果是其他情况就 IoSkipCurrentIrpStackLocation( Irp ); return IoCallDriver( devExt->TopOfStack, Irp ); 发表于: 2005/4/19 - 13:50 我也想使用IRP_MJ_DEVICE_CONTROL和应用程序通信 如果在Dispatch中 IoSkipCurrentIrpStackLocation( Irp ); return IoCallDriver( devExt->TopOfStack, Irp ); 我的CreateFile总是返回拒绝访问. 如果在Dispatch中 IoCompleteRequest(Irp, IO_NO_INCREMENT ); return STATUS_SUCCESS; 我的CreateFile返回成功,可以DeviceIoControl. 但过滤功能又不起作用了 该如何弄??????? 一个驱动只能创建一个设备吗??? |
|