blue123
驱动中牛
驱动中牛
  • 注册日期2002-11-09
  • 最后登录2009-09-14
  • 粉丝0
  • 关注0
  • 积分91分
  • 威望11点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:1392回复:2

设备管理器使用?

楼主#
更多 发布于:2003-12-24 12:06
   我的应用程序在使用我的驱动程序时,按正常操作,一切正确,但是要是应用程序崩溃或异常关闭后,再次打开我的驱动程序时就打不开了,为什么??
   我觉得是设备管理器没有把我的设备释放?本来如果一个设备没有被任何应用程序使用时,设备管理器就会自动把该设备释放.我在用本机的串口时,应用程序崩溃后,设备管理器会自动释放串口,再次打开都正常,我的驱动和串口驱动差不多,为什么我的就不可以?

    请问各位高手,如何在应用程序崩溃后,让设备管理器自动释放我的设备???
努力!
leo_cyl
驱动牛犊
驱动牛犊
  • 注册日期2001-08-20
  • 最后登录2009-11-02
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望13点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-25 11:30
“再次打开我的驱动程序时就打不开了”
是什么错误代码?
另外你能肯定你的驱动程序函数“OPEN”被CALL到了吗?

“设备管理器没有把我的设备释放?”
应该不会,因为一般设备释放是由你的驱动程序完成的(如果WINCE提供MDD,而你只负责PDD的话,那就由MDD负责)。所以你能肯定你的驱动程序可以被多次同时OPEN吗?(可以重入吗?)
blue123
驱动中牛
驱动中牛
  • 注册日期2002-11-09
  • 最后登录2009-09-14
  • 粉丝0
  • 关注0
  • 积分91分
  • 威望11点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-25 16:53
我的驱动程序是可以释放,但要应用层调用CloseHandle()才可以执行我驱动程序里的正常关闭功能,但是应用程序崩溃了.所以就没有释放我的设备?

我怎样才可以让应用程序崩溃后我的设备也被释放呢?

我在设备管理器进程里看到:

  打开我的设备  线程 加1,正常关闭:线程 减1
                        非正常关闭, 线程不变.
  而打开本机的 COM1 时, 线程 加1,正常关闭:线程 减1
                        非正常关闭, 线程也减1

所以应该就是设备管理器没有释放我的设备了..
努力!
游客

返回顶部