阅读:1709回复:7
关于shadow device的问题请教一下tooflat
参考tooflat 大牛的代码
在sfilter中增加shadow device 成功解决IRP_MJ_CREATE重入问题 但在IRP_MJ_CLOSE中调用zwclose重了入 造成堆益出 UNEXPECTED_KERNEL_MODE_TRAP 请问如何避免zwclose重了入 |
|
沙发#
发布于:2007-07-27 17:22
File system filter drivers call IoCreateFileSpecifyDeviceObjectHint to send a create request only to a specified device object, the filters attached below it, and the file system. Filters attached above the specified device object in the driver stack do not receive the create request. The same is true for any cleanup or close requests on the file object that is created by IoCreateFileSpecifyDeviceObjectHint.
|
|
|
板凳#
发布于:2007-07-27 20:45
IoCreateFileSpecifyDeviceObjectHint这个不能在2k中使用
还有这个和瑞星2007有冲突 不得不用没的方法 |
|
地板#
发布于:2007-07-28 10:41
自己顶一下
|
|
地下室#
发布于:2007-07-29 00:20
引用第2楼hongpengtao于2007-07-27 20:45发表的 : The function should be available in W2K SP4 . 和瑞星2007有冲突? Complain to the company or put your driver under it. |
|
5楼#
发布于:2007-07-30 09:49
我想了解一下
IoCreateFileSpecifyDeviceObjectHint函数的工作原理不知道有否这样的文档 谢谢 |
|
6楼#
发布于:2007-07-30 13:02
自己反编译研究下,大致是根据最后2个参数设置个内部标志,然后再IOCALLDRIVER之前,判断是否设置了标志,没得话,就IOGETATTACHDEVICE将对象替换为顶层设备,不然就直接往目标设备发IRP,同时为该FILEOBJECT生成扩展,将相关信息放入文件扩展中,尔后其他处理都根据文件扩展来处理==。。。。。。。
没错,所以没办法自己实现这个函数,因为要求系统对FileObject也作了扩展。 |
|
|
7楼#
发布于:2007-09-21 14:44
楼上的方法可以一试
|
|