xxblinux
驱动牛犊
驱动牛犊
  • 注册日期2007-12-05
  • 最后登录2012-02-18
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望111点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3019回复:2

code_seg("INIT")初始化后UNLoad蓝屏

楼主#
更多 发布于:2009-01-29 22:58
在code_seg("INIT")区域函数中
    UNICODE_STRING symLinkName;
    RtlInitUnicodeString(&symLinkName,L"\\??\\HelloDDK5");//会因code_seg("INIT")出现蓝屏。。但是,有时有,有时没有
    pDevExt->ustrSymLinkName = symLinkName;//保存在设备扩展区中
    status = IoCreateSymbolicLink( &symLinkName,&devName );
UnLoad时
    PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)pNextObj->DeviceExtension;
        //删除符号链接              
        UNICODE_STRING pLinkName = pDevExt->ustrSymLinkName;
        IoDeleteSymbolicLink(&pLinkName);//这句不可访问。。。有时出现蓝屏
        pNextObj = pNextObj->NextDevice;
        IoDeleteDevice( pDevExt->pDevice );


这驱动是根据编译出大小有关出现蓝屏。。6kb时会出现
大家好才是真的好
guard366
驱动牛犊
驱动牛犊
  • 注册日期2009-04-30
  • 最后登录2010-10-21
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望351点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-05-01 11:30
check pLinkName 是否还在
成熟的产品!
thf2009
驱动牛犊
驱动牛犊
  • 注册日期2009-04-25
  • 最后登录2009-07-19
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-05-08 23:43
回 1楼(guard366) 的帖子
code_seg("INIT")表示运行完后该代码会被卸载,那么其中的变量也就可能是无效的地址了,symLinkName是局部变量,该段代码运行完后它就无效了,把它赋给pDevExt->ustrSymLinkName自然会出错
游客

返回顶部