关于多个程序实例访问同一个设备的问题
一个usb设备,驱动中会开一个线程一直在检测调用库中发给驱动的事件,目前的现象是,先后起一个程序两个实例,第一个起来的实例能够正常访问usb设备,而第二个则hang住了,似乎是驱动中的WaitForSingleObject(hCommandExec, INFINITE),没有等到第二个实例程序发送的事件信号。很奇怪。下面是驱动中等待事件的一个代码片段,请参照:
DWORD WINAPI MessageLoopThreadProc(void *Data)
{
for(;;)
{
if (WaitForSingleObject(hCommandExec, INFINITE) == WAIT_OBJECT_0)
{
ResetEvent(hCommandExec);
...........
}
}
}
这个线程除非拔掉usb设备才会退出。
[解决办法]
《Windows核心编程》