blueskystone
驱动牛犊
驱动牛犊
  • 注册日期2002-11-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3137回复:18

如何得到完整的文件路径?

楼主#
更多 发布于:2004-02-25 10:33
小弟刚接触DDK不久,在学习SFILTER例子时有一个问题
 myIrpSp = IoGetCurrentIrpStackLocation( Irp );
 savedFileObject = myIrpSp->FileObject;
.....
localStatus = ObQueryNameString(
    savedFileObject,
    nameInfo,
    BUFFER_SIZE,
    &size );
得到的文件nameInfo都是\device\harddiskVolumex\....\filename.x

而savedFileObject->FileName中存放的又是没有文件路径。

我如何得到带有盘符的文件完整路径?

最新喜欢:

AquaVitaeAquaVi...
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-25 13:23
IoVolumeDeviceToDosName or RtlVolumeDeviceToDosName
blueskystone
驱动牛犊
驱动牛犊
  • 注册日期2002-11-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-25 17:27
先谢过tooflat
我也用过这个RtlVolumeDeviceToDosName,但老是出现蓝屏,不知道还有没有什么限制,能不能再指点一下小弟!
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-26 09:13
你是什么操作系统
blueskystone
驱动牛犊
驱动牛犊
  • 注册日期2002-11-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-26 10:26
2k
问题找到了,第一个参数我设置错误了,非常感谢

接分! :D
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-04-06 11:31
mark
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
Newandold
驱动牛犊
驱动牛犊
  • 注册日期2003-01-10
  • 最后登录2004-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-04-07 09:52
2k
问题找到了,第一个参数我设置错误了,非常感谢

接分! :D



请问blueskystone, 我也遇到这样的问题,你是如何解决的啊? 谢谢
holk_leng
驱动牛犊
驱动牛犊
  • 注册日期2004-03-02
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-04-08 15:48
RtlVolumeDeviceToDosName和iovolumedevicetodosname的第一个参数是什么?
我填irpSp->FileObject作为第一个参数对吗?我的目的是获得问健全路径名,但是出错了。

请教!
ammehrb
驱动牛犊
驱动牛犊
  • 注册日期2003-07-02
  • 最后登录2005-05-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-04-12 14:09
请教blueskystone是如何获得的,第一个参数应如何设置。

      谢谢!
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-04-14 13:30
能否问题解决后将解决的方法发上来
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-05-12 00:01
RtlVolumeDeviceToDosName和iovolumedevicetodosname的第一个参数是什么?
我填irpSp->FileObject作为第一个参数对吗?我的目的是获得问健全路径名,但是出错了。

请教!

DDK中如是说:
Pointer to a device object that represents a file system volume
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
linfeng1216
驱动小牛
驱动小牛
  • 注册日期2004-03-10
  • 最后登录2008-12-31
  • 粉丝0
  • 关注0
  • 积分818分
  • 威望89点
  • 贡献值0点
  • 好评度74点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-05-28 10:03
能不能给个简单的例子啊?
这件事很难
reayi
驱动牛犊
驱动牛犊
  • 注册日期2002-11-06
  • 最后登录2010-03-30
  • 粉丝0
  • 关注0
  • 积分83分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-09-17 23:05
RtlVolumeDeviceToDosName的第一个参数:
myIrpSp->FileObject->DeviceObject
plpnuaa
驱动牛犊
驱动牛犊
  • 注册日期2004-09-03
  • 最后登录2004-11-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-09-19 12:00
RtlVolumeDeviceToDosName这个函数在我Win2000DDK文档中怎么找不到阿,该函数的定义(原形)是什么??
潘龙平
plpnuaa
驱动牛犊
驱动牛犊
  • 注册日期2004-09-03
  • 最后登录2004-11-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-09-19 14:06
在ntddk.h中找到了它的原形
NTSYSAPI
NTSTATUS
NTAPI
RtlVolumeDeviceToDosName(
    IN  PVOID           VolumeDeviceObject,
    OUT PUNICODE_STRING DosName
    );
潘龙平
blueskystone
驱动牛犊
驱动牛犊
  • 注册日期2002-11-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-09-20 14:55
不好意思,现在在做其他项目,好久没有来论坛了。
好不容易在硬盘角落里翻出原来的测试程序,截取了部分代码:

myIrpSp = IoGetCurrentIrpStackLocation( Irp );
savedFileObject = myIrpSp->FileObject;
..............
if (RtlVolumeDeviceToDosName ( savedFileObject->DeviceObject, &dosname ) )
{
     DbgPrint("the volume DOS name  is %ws n" , dosname.Buffer );
     ExFreePool( dosname.Buffer ) ;
};


[编辑 -  9/20/04 by  blueskystone]
ildee
驱动牛犊
驱动牛犊
  • 注册日期2003-01-16
  • 最后登录2005-01-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-09-21 11:26
zhichi ni
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2005-01-31 14:59
顶!!!
Ideas for life!
lgh41
驱动小牛
驱动小牛
  • 注册日期2004-12-14
  • 最后登录2006-09-24
  • 粉丝0
  • 关注0
  • 积分203分
  • 威望28点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2005-06-06 15:23

Hi,blueskystone!
想和你聊一下驱动开发技术
    朋友!您好!
    我们很多人在近几天都因盘符的取得产生蓝屏,在网上发文请教!我查到您的文章:“ 不好意思,现在在做其他项目,好久没有来论坛了。
好不容易在硬盘角落里翻出原来的测试程序,截取了部分代码:

myIrpSp = IoGetCurrentIrpStackLocation( Irp );
savedFileObject = myIrpSp->FileObject;
..............
if (RtlVolumeDeviceToDosName ( savedFileObject->DeviceObject, &dosname ) )
{
DbgPrint(\"the volume DOS name is %ws n\" , dosname.Buffer );
ExFreePool( dosname.Buffer ) ;
};


[编辑 - 9/20/04 by blueskystone]


您说您在win2k里实现的,我请教您2个问题:
1 您长时间观察了吗?是一直能对文件操作都能给出盘符的输出显示吗?
2 您在xp系统上试验了吗?我试验代码和您的一样,在系统引导时,可以输出显示一小会盘符,但好景不常;很快就蓝屏死机?
3 您安装sfilter驱动的sfilter.inf的starttype是0?
谢谢!
  
lgh41
游客

返回顶部