windows文件过滤驱动中,
1、当应用程序调用函数后:open(pathname, (O_CREAT|O_WRONLY|O_TRUNC), mode);怎样获得(O_CREAT|O_WRONLY|O_TRUNC), mode?
我在msdn上面查了下,IRP_MJ_CREATE中都没有给出O_CREAT这样标志的参数,是不是该参数在内核传递中以另外的一种形式存在了。
2、mode也是一样,不知道怎么获取。
3、如何在分派函数IRP_MJ_CREATE中获得文件打开后的句柄?
------解决方案--------------------
文件系统驱动太复杂了。你说的这些参数不一定能够传到你的Filter驱动里面的。
------解决方案--------------------
这个没法获得,因为open是POSIX的函数,它的参数必须转换为相应的值才能传到内核的驱动中。
在IRP_MJ_CREATE中对应的是IrpSp->Parameters.Create.Options 。
------解决方案--------------------
理顺了就简单了 自己多看看wdk的帮助文件 多写几个demo调试下就发现了 参数都传递过去了
创建后 内核生成一个文件对象 就是 上层的句柄的意思 了 就是成功的话存在于IrpSp->FileObject
你说的参数 结合IrpSp->Parameters.Create.Options Irp->Flags 这两个去看就找到了。