kenli79
驱动小牛
驱动小牛
  • 注册日期2002-06-12
  • 最后登录2003-07-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1831回复:8

2000下长短文件名的问题。

楼主#
更多 发布于:2003-01-10 10:12
2000下如何得到一个FileObject的长文件名?我看filemon是用的自己构造IRP向下传,得到的文件名似乎和用户的请求相关,可长可短。有没有用过ObQueryObjectString的,听说得到的文件名肯定是长文件名。那个高手指点一下,先谢了!

最新喜欢:

ljmmaryljmmar...
超级菜鸟!!!!!!!!!
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-13 14:19
使用IRP_MJ_QUERY_INFORMATION得到的一定是长文件名,这个错不了.



ObQueryObjectString没用过,不过据说用IRP_MJ_QUERY_INFORMATION比较好!


filespy,filemon全用这种方式.

kenli79
驱动小牛
驱动小牛
  • 注册日期2002-06-12
  • 最后登录2003-07-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-13 17:05
vcmfc, 我试了,不行。在DOS下如果用短文件名下dir,得到的就是短文件名。
情况如下:
c:\\mydoc~1> dir

在google上查了一下,说有些文件系统对于以短文件名打开的目录只在file_name_information下返回短文件名。

[编辑 -  1/13/03 by  kenli79]
超级菜鸟!!!!!!!!!
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-01-13 17:32
需要循环调用,从根目录下的目录开始开始
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-01-14 00:00
我试试..........................
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-01-14 00:18
奇怪,我在DOS窗口看到的长目录没有出现~1,你是如何产生这种环境的????


我是在2K完全启动起来进入DOS窗口的.
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-01-14 00:19
我这边有地方挺邪门,解密.doc,exe.txt都没有问题,一解密.zip,就完了,还有chm,真是可恶.
kenli79
驱动小牛
驱动小牛
  • 注册日期2002-06-12
  • 最后登录2003-07-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-01-14 09:17
不好意思,我没有仔细看filemon的源代码。他有些文件名是重fileobject里面直接得到的,这时候是短文件名。我在试试。
超级菜鸟!!!!!!!!!
kenli79
驱动小牛
驱动小牛
  • 注册日期2002-06-12
  • 最后登录2003-07-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-01-14 10:15
我是自己看到长文件名,猜出其可能的短文件名(前6个非空格字母加~1)
我试出来了,QUERY_INFORMATION得到的肯定是长文件名,但是重FILEOBJECT的NAME BUFFER中得到的是系统打开是传给的文件名,这个只有在CREATE时才有。
我上面提到的特殊情况是在某些文件系统(Netware)下产生的,在微软的FAT和NTFS下不是。
谢谢你了vcmfc。
超级菜鸟!!!!!!!!!
游客

返回顶部