阅读:1401回复:0
请教,关于驱动和应用层通信,系统不响应
各位老大,我想监测D:\test目录下所有文件的读写,我用filespy改了下,在irp_mj_write irp_mj_read中过滤写文件的路径,如果符合要求,则通知应用层,由应用层决定是否允许进行操作,我的做法如下:
我在应用层使用DeviceIoControl的overlap方式给驱动发消息,在驱动中响应并返回status_pending,在线程中等待完成条件我在irp_mj_write和irp_mj_read中判断文件路径,如果满足条件,则创建读写等待线程及等待事件等待应用层的响应,并设置DeviceIoControl的完成条件,返回status_pending。在应用层弹出对话框等待应用层响应,并把响应结果返回到驱动中,设置等待事件,让读写线程继续执行以完成操作。 现在的情况是在应用层弹出对话框后,双击我的电脑和双击D盘或D盘上的文件没有响应,如果双击C盘的文件则可以正常打开,桌面上的窗口之间也可以互相切换 请老大们指点一下,这可能是什么原因?先谢谢了 |
|