fenghaifu
驱动牛犊
驱动牛犊
  • 注册日期2005-01-17
  • 最后登录2008-06-24
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1141回复:6

问个驱动程序的初级问题

楼主#
更多 发布于:2005-05-18 13:39
在sfilter中,写了以下代码:
UNICODE_STRING str;
RtlInitUnicodeString(&str, FileObj->FileName.Buffer);
...
RtlFreeUnicodeString(&str);

怎么一进windows就蓝屏?我把上面几句去掉就正常了。难道这样初始化和释放unicode string 有问题吗?
idaxsy
驱动大牛
驱动大牛
  • 注册日期2004-12-09
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分386分
  • 威望54点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-05-18 14:03
不能使用RtlFreeUnicodeString。
[b]万水千山总是情,回个帖子行不行?[/b]
fenghaifu
驱动牛犊
驱动牛犊
  • 注册日期2005-01-17
  • 最后登录2008-06-24
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-18 16:45
那应该怎么释放空间啊?
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-05-18 16:59
FileObj!!!!!
你要确保这个东西不是NULL,前面加个判断。
因为不是每次里面都有的
fenghaifu
驱动牛犊
驱动牛犊
  • 注册日期2005-01-17
  • 最后登录2008-06-24
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-18 17:04
应该不是FileObj的问题,我用DbgPrint输出FileObj->FileName.Buffer没有出现蓝屏。
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2005-05-18 17:21
RtlInitUnicodeString (&str, FileObj->FileName.Buffer);
并没有实际分配新的内存,实际上只是FileObj->FileName.Buffer
赋予str.Buffer
不是你分配的内存,自然
用不着调用 RtlFreeUnicodeString(&str)来释放了;

象RtlAnsiStringToUnicodeString涉及到分配新的内存,才需要
调用RtlFreeUnicodeString了


fenghaifu
驱动牛犊
驱动牛犊
  • 注册日期2005-01-17
  • 最后登录2008-06-24
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-05-18 17:34
哦。回去试试。谢谢。:)怎么给分?
游客

返回顶部