123abc
驱动牛犊
驱动牛犊
  • 注册日期2005-09-08
  • 最后登录2007-12-11
  • 粉丝0
  • 关注0
  • 积分590分
  • 威望60点
  • 贡献值0点
  • 好评度59点
  • 原创分0分
  • 专家分0分
阅读:2331回复:5

RtlVolumeDeviceToDosName使用有点小问题

楼主#
更多 发布于:2007-07-09 18:46
不好意思麻烦大家
我用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 ) ;
  };

devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
沙发#
发布于:2007-07-10 09:35
1. 请用IoVolumeDeviceToDosName 替代RtlVolumeDeviceToDosName;
2. 你在什么地方调用RtlVolumeDeviceToDosName的,会不会是IRQL违例?
3. 目的是什么?如果你仅仅是为了得到文件名的话请参照楚狂人的“Windows文件系统过滤驱动开发教程(第二版).pdf”
人总在矛盾中徘徊。。。
123abc
驱动牛犊
驱动牛犊
  • 注册日期2005-09-08
  • 最后登录2007-12-11
  • 粉丝0
  • 关注0
  • 积分590分
  • 威望60点
  • 贡献值0点
  • 好评度59点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-07-10 13:11
谢谢版本的热心回贴
我在sfRead和sfCreate里都调用过,同样蓝屏
liuyan1
驱动老牛
驱动老牛
  • 注册日期2001-08-27
  • 最后登录2023-04-18
  • 粉丝0
  • 关注0
  • 积分1031分
  • 威望477点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2007-07-11 09:36
函数本身没有问题,问题是处理流程有重入造成堆栈溢出了。
楼上的客,楼下的客,听我老坎说明白,要苛屎有草纸,不要扯我的麦席子,要苛尿有夜壶,不要在床上划地图。
123abc
驱动牛犊
驱动牛犊
  • 注册日期2005-09-08
  • 最后登录2007-12-11
  • 粉丝0
  • 关注0
  • 积分590分
  • 威望60点
  • 贡献值0点
  • 好评度59点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-07-12 14:16
有什么好的解决办法吗?谢谢
xx_qiang
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2017-02-27
  • 粉丝2
  • 关注1
  • 积分31分
  • 威望249点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2007-07-16 15:20
我以前用这个函数的时候遇到这么一个问题,当这个函数返回成功的时候,dosname.Buffer仍然是个null,你看看是不是这个原因
游客

返回顶部