阅读:1422回复:0
驱动和应用通讯CloseHandle关闭不了什么原因?
我在应用中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] |
|