阅读:3137回复:18
如何得到完整的文件路径?
小弟刚接触DDK不久,在学习SFILTER例子时有一个问题
myIrpSp = IoGetCurrentIrpStackLocation( Irp ); savedFileObject = myIrpSp->FileObject; ..... localStatus = ObQueryNameString( savedFileObject, nameInfo, BUFFER_SIZE, &size ); 得到的文件nameInfo都是\device\harddiskVolumex\....\filename.x 而savedFileObject->FileName中存放的又是没有文件路径。 我如何得到带有盘符的文件完整路径? |
|
最新喜欢:AquaVi... |
沙发#
发布于:2004-02-25 13:23
IoVolumeDeviceToDosName or RtlVolumeDeviceToDosName
|
|
板凳#
发布于:2004-02-25 17:27
先谢过tooflat
我也用过这个RtlVolumeDeviceToDosName,但老是出现蓝屏,不知道还有没有什么限制,能不能再指点一下小弟! |
|
地板#
发布于:2004-02-26 09:13
你是什么操作系统
|
|
地下室#
发布于:2004-02-26 10:26
2k
问题找到了,第一个参数我设置错误了,非常感谢 接分! :D |
|
5楼#
发布于:2004-04-06 11:31
mark
|
|
|
6楼#
发布于:2004-04-07 09:52
2k 请问blueskystone, 我也遇到这样的问题,你是如何解决的啊? 谢谢 |
|
7楼#
发布于:2004-04-08 15:48
RtlVolumeDeviceToDosName和iovolumedevicetodosname的第一个参数是什么?
我填irpSp->FileObject作为第一个参数对吗?我的目的是获得问健全路径名,但是出错了。 请教! |
|
8楼#
发布于:2004-04-12 14:09
请教blueskystone是如何获得的,第一个参数应如何设置。
谢谢! |
|
9楼#
发布于:2004-04-14 13:30
能否问题解决后将解决的方法发上来
|
|
|
10楼#
发布于:2004-05-12 00:01
RtlVolumeDeviceToDosName和iovolumedevicetodosname的第一个参数是什么? DDK中如是说: Pointer to a device object that represents a file system volume |
|
|
11楼#
发布于:2004-05-28 10:03
能不能给个简单的例子啊?
|
|
|
12楼#
发布于:2004-09-17 23:05
RtlVolumeDeviceToDosName的第一个参数:
myIrpSp->FileObject->DeviceObject |
|
13楼#
发布于:2004-09-19 12:00
RtlVolumeDeviceToDosName这个函数在我Win2000DDK文档中怎么找不到阿,该函数的定义(原形)是什么??
|
|
|
14楼#
发布于:2004-09-19 14:06
在ntddk.h中找到了它的原形
NTSYSAPI NTSTATUS NTAPI RtlVolumeDeviceToDosName( IN PVOID VolumeDeviceObject, OUT PUNICODE_STRING DosName ); |
|
|
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] |
|
16楼#
发布于:2004-09-21 11:26
zhichi ni
|
|
17楼#
发布于:2005-01-31 14:59
顶!!!
|
|
|
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? 谢谢! |
|
|