首页
社区
课程
招聘
[求助]由FileHandle得到FileName
发表于: 2008-7-28 23:43 5259

[求助]由FileHandle得到FileName

2008-7-28 23:43
5259
我得到了一个文件的FileHandle,想要获取文件的路径名。用了下面的代码:   
ObReferenceObjectByHandle( FileHandle, 0, NULL, KernelMode, &pFileObj, NULL );
                  if(pFileObj==NULL)
    {
        DbgPrint("get fileobject error\n");
        return;
    }
    RtlUnicodeStringToAnsiString(&ObjectName,pFileObj->ObjectName,TRUE);
但是这个RtlUnicodeStringToAnsiString(&ObjectName,pFileObj->ObjectName,TRUE);的调用会导致一个bsod,不知道为什么,貌似是pFileObj->ObjectName不对,指向的不是路径.

然后我又用下面的代码试了一下,ok:

ObReferenceObjectByHandle( FileHandle, 0, NULL, KernelMode, &pFileObj, NULL );
obQueryNameString(FileObject,pFullFilePath,MAXFILEPATHLEN,&ret);
RtlUnicodeStringToAnsiString(&ObjectName,pFullPath,TRUE);

我就是想知道为什么第一种方法不行,哪位大侠给解释下!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
2
pFileObj->ObjectName
你这个内存地址不一定可写啊?最好是自己申请内存
2008-7-29 08:04
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哦,这个RtlUnicodeStringToAnsiString(&ObjectName,pFileObj->ObjectName,TRUE);
要写pFileObj->ObjectName吗?
2008-7-29 09:17
0
游客
登录 | 注册 方可回帖
返回
//