阅读:2025回复:11
发IRP读网络文件返回STATUS_ACCESS_DENIED
在Create历程里面发IRP读网络文件,经常发现返回 STATUS_ACCESS_DENIED 或者 STATUS_INVALID_HANDLE
这是什么原因,拿到了FileObject,然后发IRP读都不行,那该怎么办呢? |
|
|
沙发#
发布于:2007-08-12 23:30
到处都看了,就找不到原因,
|
|
|
板凳#
发布于:2007-08-13 12:36
引用第3楼killvxk于2007-08-13 11:19发表的 : 您真牛,咱从来没有敢这样想过 不过,换句话说,你的意思就是在网络文件Create之后拿到FileObject是肯定可以发IRP去读的吗? 谢谢 |
|
|
地板#
发布于:2007-08-13 16:27
引用第5楼xiabl于2007-08-13 15:42发表的 : 呵呵,最近好像看到个帖子说那个防重入的什么IoCreate... 函数有Bug 不用那个土方法那你用了什么方法呢 环境问题,是什么呢 |
|
|
地下室#
发布于:2007-08-13 16:31
楚狂人的方法 操作网络文件时没有考虑网络访问的令牌的问题,所以打不开
我现在的问题是已经拿到了FileObject却没法读 |
|
|
5楼#
发布于:2007-08-13 23:01
引用第8楼michaelgz于2007-08-13 22:24发表的 : 我只是跟踪Word,Word去打开一个网络上的文件,我的文件过滤在Create的IRP之后得到了这个FileObject,然后发出一个Read的IRP去读一下这个文件, ........ Irp = IoBuildAsynchronousFsdRequest(IRP_MJ_READ,...); Irp->Flags |= IRP_NOCACHE; ........ 在这里用PsGetCurrentProcessId得到的是Word的进程ID |
|
|
6楼#
发布于:2007-08-14 10:23
多谢michaelgz !
|
|
|