阅读:1364回复:5
一个比较复杂的应用程序和驱动程序通讯的问题!
一个比较复杂的应用程序和驱动程序通讯的问题!
需要完成的工作大致如下: 1。驱动程序发送数据给应用程序(比如:一个字符串),等待应用程序的命令 2。应用程序接收到这个字符串,进行处理,然后返回一个命令! 3。驱动程序接收到应用程序的命令,完成1步没有完成的操坐! 偶的想法: 1。先在应用程序里面 createvent, 将event的句柄用deviceiocontrol传给驱动程序,再waitforsingleobject等待驱动的返回。 2。驱动获得数据,然後就需要将数据交给应用程序!就kesetevent() 唤醒应用程序的event. 3。应用程序从waitforsingleobject中唤醒,用deviceiocontrol向驱动要数据,然后对数据进行处理,再用deviceiocontrol对驱动下命令! 4。驱动接收到命令,进行2步剩下的工作! 问题: 这个驱动是对irp的数据进行操作,2步kesetevent后,irp没有完成,而3步两个deviceiocontrol又使得驱动处理新的irp,那么老的irp 放在哪里?到第4步的时候怎么把老的irp取出来? 还有就是这个方法可不可行?有没有其他的方法? 本人乃菜鸟一只,问题弱弱请不要取笑。。。。。。。。 last:thanks :P :P :P |
|
最新喜欢:![]()
|
沙发#
发布于:2002-12-09 23:31
需要完成的工作大致如下:
1。驱动程序发送数据给应用程序(比如:一个字符串),等待应用程序的命令 2。应用程序接收到这个字符串,进行处理,然后返回一个命令! 3。驱动程序接收到应用程序的命令,完成1步没有完成的操坐! 偶的想法: 1。先在应用程序里面 createvent, 将event的句柄用deviceiocontrol传给驱动程序,再waitforsingleobject等待驱动的返回。 2。驱动获得数据,然後就需要将数据交给应用程序!就kesetevent() 唤醒应用程序的event. 3。应用程序从waitforsingleobject中唤醒,用deviceiocontrol向驱动要数据,然后对数据进行处理,再用deviceiocontrol对驱动下命令! 4。驱动接收到命令,进行2步剩下的工作! 问题: 这个驱动是对irp的数据进行操作,2步kesetevent后,irp没有完成,而3步两个deviceiocontrol又使得驱动处理新的irp,那么老的irp 放在哪里?到第4步的时候怎么把老的irp取出来? 还有就是这个方法可不可行?有没有其他的方法? 本人乃菜鸟一只,问题弱弱请不要取笑。。。。。。。。 ---------------------------------------------------------------------------------------------------------------------- 需要完成的工作是否为: 1。(驱动程序发送数据给应用程序(比如:一个字符串)),应用程序等待驱动程的(命令)消息 2。应用程序接收到这个消息 应用程序读字符串,进行处理,然后返回一个命令! 3。驱动程序接收到应用程序的命令,完成(1步)没有完成的操坐! |
|
板凳#
发布于:2002-12-10 08:19
去专题文章李去看,这个问题介绍的很清楚了,无非是共享内存,event,deviceio等
|
|
地板#
发布于:2002-12-10 10:01
个人觉得问题没有这么简单,主要是偶不知道,如何将一个irp存起来,去处理另外的irp,完成了另外irp后再取出老的irp,继续进行处理!
|
|
|
地下室#
发布于:2002-12-10 21:23
霍霍,第二步的数据是怎么得到的
中断? :D |
|
|
5楼#
发布于:2002-12-11 09:32
霍霍,第二步的数据是怎么得到的 不是中断,是截取到的irp里面的 |
|
|