liwashington
驱动小牛
驱动小牛
  • 注册日期2004-04-30
  • 最后登录2010-10-21
  • 粉丝0
  • 关注0
  • 积分-11分
  • 威望98点
  • 贡献值1点
  • 好评度12点
  • 原创分0分
  • 专家分0分
阅读:1432回复:5

使用驱动后不能正常关机的问题?

楼主#
更多 发布于:2004-07-27 15:40
前两天写了个文件系统过滤的内核驱动,因为不需要所以没用IoCreateDevice这个函数来创建设备,使用安装本地API的方式进行用户程序和驱动的通信,且驱动采用由用户程序来启动的方式。但现在发现用户程序(是一个守护进程,一直在后台运行)在使用驱动后,不能正常关机,原因是系统在结束该用户程序时要花非常长的时间。本来怀疑是用户程序或驱动有问题,但是这两部分单独测试都没问题,且可正常工作和关机。

请教各位大侠这可能是什么问题呢,又怎样去解决?谢了!
我只想有个好老婆,每天有几顿好饭吃……
goooder
驱动牛犊
驱动牛犊
  • 注册日期2004-08-04
  • 最后登录2009-09-23
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-04 17:51
这是因为其中的某些IRP没有CancelRoutine.
Good good study, day day up. 欢迎访问我的主页http://www.coeffort.com
liwashington
驱动小牛
驱动小牛
  • 注册日期2004-04-30
  • 最后登录2010-10-21
  • 粉丝0
  • 关注0
  • 积分-11分
  • 威望98点
  • 贡献值1点
  • 好评度12点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-05 16:27
目前这个问题已经初步解决,应用程序使用一个单独的线程来调用本地API,这样就没问题了.这位仁兄既然知道一点原因能不能说得明白一些,或是有更好的解决方法?
我只想有个好老婆,每天有几顿好饭吃……
freecutelei
驱动牛犊
驱动牛犊
  • 注册日期2003-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-05 16:37
是不是你的程序某些资源共享的时候没设置锁
要不怎么单线程就好用了呢?
liwashington
驱动小牛
驱动小牛
  • 注册日期2004-04-30
  • 最后登录2010-10-21
  • 粉丝0
  • 关注0
  • 积分-11分
  • 威望98点
  • 贡献值1点
  • 好评度12点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-06 09:05
恰恰相反,这里说的是新开一个进程,该进程只负责调用本地API,然后就退出.我可以确定所有对本API函数的调用不存在资源竟争问题,所以应该不是锁的问题.
我只想有个好老婆,每天有几顿好饭吃……
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-06 09:29
恰恰相反,这里说的是新开一个进程,该进程只负责调用本地API,然后就退出.我可以确定所有对本API函数的调用不存在资源竟争问题,所以应该不是锁的问题.

你调用那些本地API都做了些什么工作?
知道这些或许可以更好的解决你的问题
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部