chili
驱动牛犊
驱动牛犊
  • 注册日期2004-03-31
  • 最后登录2011-03-29
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1422回复:0

驱动和应用通讯CloseHandle关闭不了什么原因?

楼主#
更多 发布于:2004-07-20 15:19
我在应用中CreateEvent创建一个名为'PACKET_NOTIFY_EVENT'的事件,然后通过DeviceIoControl把事件句柄m_hNotifyEvent传给驱动,驱动中用IoCreateSynchronizationEvent(&UnicodeName, &ShareEvent->DriverEventHandle)打开这个同名事件(正常)。
每有数据包到来时我就通过设置信号来通知应用读取数据(应用创建线程并在一个循环中等待信号(waitForSingleObject))(正常).

我在停止监听处理时:
1.应用通过DeviceIoControl发送CTL_CODE码通知驱动销毁驱动中打开的共享事件句柄、结束驱动中的某个线程。
2.在应用中用CloseHandle关闭驱动和应用的同名共享事件.
3.关闭应用中的线程。
4.关闭设备句柄CloseHandle,关闭应用程序

现在出现的问题是:
我在应用中CloseHandle的时候关闭不了,应用僵在那里了。

请问可能什么原因造成的?
另外问问我在驱动和应用之间公用一个同步事件,是不是只要一个地方关闭还是驱动和应用都需要关闭(是否要注意先后顺序)?

[编辑 -  7/22/04 by  chili]
游客

返回顶部