阅读:1179回复:5
应用程序给驱动发消息后想到的,很晕人.标题不好表达.达人进来.
应用程序对驱动(文件过滤驱动)发送IO_SETVALUE消息。
ULONG g_lPass = 0; 这个消息会改变驱动的全局变量g_lPass的值为1 请看下面的描述: 这个时候驱动正在处理系统的IRP_MJ_CREATE。具体处于 case IRP_MJ_CREATE: LogOut("....."); --->具体就运行在这个函数内, if(g_lPass == 1) ---->运行到这里时IO_SETVALUE对g_lPass的修改有效吗? { ........... } 还是等到IRP_MJ_CREATE挂接例程返回后才会有效? 晕了。晕了。天和地都要分不清了 |
|
沙发#
发布于:2007-01-17 12:09
不知所云
|
|
|
板凳#
发布于:2007-01-17 12:11
应该用效,看一下Filemon的例下,它就可以改变filteron的值来控制是否过滤
|
|
|
地板#
发布于:2007-01-17 23:24
在文件操作层,IRP可以看作最小的操作单位,IRP_MJ_CREATE和IO_SETVALUE操作正常情况不会被中断。
|
|
地下室#
发布于:2007-01-18 09:13
谢谢大家的解说,
那么在处理IRP_MJ_CREATE的消息时,自己的IO消息能得到处理么? |
|
5楼#
发布于:2007-01-22 10:26
能得到处理,只要不是同一个DEVICE_OBJECT
|
|