阅读:2331回复:5
RtlVolumeDeviceToDosName使用有点小问题
不好意思麻烦大家
我用RtlVolumeDeviceToDosName取盘符的时候 为什么都是蓝屏...一直蓝屏,不停的蓝屏......崩溃了我.... 以下是我的代码,谢谢了 UNICODE_STRING dosname; IrpSp = IoGetCurrentIrpStackLocation( Irp ); if (RtlVolumeDeviceToDosName ( IrpSp->FileObject->DeviceObject, &dosname ) ) { DbgPrint("the volume DOS name is %ws \n" , dosname.Buffer ); ExFreePool( dosname.Buffer ) ; }; |
|
沙发#
发布于:2007-07-10 09:35
1. 请用IoVolumeDeviceToDosName 替代RtlVolumeDeviceToDosName;
2. 你在什么地方调用RtlVolumeDeviceToDosName的,会不会是IRQL违例? 3. 目的是什么?如果你仅仅是为了得到文件名的话请参照楚狂人的“Windows文件系统过滤驱动开发教程(第二版).pdf” |
|
|
板凳#
发布于:2007-07-10 13:11
谢谢版本的热心回贴
我在sfRead和sfCreate里都调用过,同样蓝屏 |
|
地板#
发布于:2007-07-11 09:36
函数本身没有问题,问题是处理流程有重入造成堆栈溢出了。
|
|
|
地下室#
发布于:2007-07-12 14:16
有什么好的解决办法吗?谢谢
|
|
5楼#
发布于:2007-07-16 15:20
我以前用这个函数的时候遇到这么一个问题,当这个函数返回成功的时候,dosname.Buffer仍然是个null,你看看是不是这个原因
|
|