首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 驱动无法卸载 [已结帖,结帖人:skysolo]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • skysolo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-22 08:53:34 楼主
    偶写了一个驱动,在应用程序点加载后,然后点卸载,发现卸载不了。用DbgView看了下,UnOnload函数没有被调用,但是我把这个应用程序退出后驱动的UnOnload函数才被调用,这是怎么回事呢?是不是我的应用程序有什么问题?
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • orbit
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 11:26:011楼 得分:20
    StopServices调用之前,最好用QueryServiceStatus查看一下状态,如果是某个操作正在PENDING
    ,就要采取相应的措施。此时是可能返回错误的。


    另外,CreateServices时是否给足了权限?

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jacklzw88
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 12:09:182楼 得分:20
    看你驱动启动的模式,有的是要重起卸载的。
    但是你说的问题,可能还是你程序的问题。你是你自己写的UnOnload都没被调用。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • skysolo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 12:16:123楼 得分:0
    恩,是我自己写的卸载函数没有被调用,只有程序退出后才会被调用。难道是应用程序还有挂起的操作没完成?CreateServices权限有。
    很郁闷呢!!!。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • skysolo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 12:17:154楼 得分:0
    到底会是应用程序的什么操作没有完成啊?发送IOCTL?还是其它什么的,应用程序和驱动通信只有IOCTL啊,难道是这个错了?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cnzdgs
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 6

      2

      15

    发表于:2008-08-22 12:28:355楼 得分:20
    这个问题好象你以前问过了,检查一下应用程序是不是有句柄没有关闭。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • skysolo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 15:17:226楼 得分:0
    引用 4 楼 skysolo 的回复:
    到底会是应用程序的什么操作没有完成啊?发送IOCTL?还是其它什么的,应用程序和驱动通信只有IOCTL啊,难道是这个错了?

    这个是新问题啊,什么句柄?我有两个线程和驱动通信,但是在调用unload之前我都把他们TerminateThread了。想不出别的问题了~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cnzdgs
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 6

      2

      15

    发表于:2008-08-22 15:42:357楼 得分:40
    TerminateThread是强行结束线程,不会释放线程使用的资源,要自己把句柄都关闭。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • skysolo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 16:12:048楼 得分:0
    哦,那我试试。谢谢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • skysolo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 09:36:509楼 得分:0
    我已经解决了
    加载后就不卸载了,管它什么别的问题!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved