阅读:1408回复:1
大侠帮忙,用户态程序与驱动程序中EVENT的问题,急!!!
我将用户态的event转换为内核的event后,在驱动里调用KeSetEvent来触发事件,使event置位,但我在驱动中用KeResetEvent去掉该event的置位信号后,用户态的WaitSingleObject仍然能够再等到一次该事件,请问是怎么回事?
大概过程如下: 应用程序 驱动程序 WaitEvent...(1)-阻塞 。 。 。 。 KeSetEvent 。 。 得到事件,处理 。 。 。 。 KeResetEvent(or KeClearEvent) 。 。 WaitEvent...(2) 马上得到事件 。 WaitEvent...(3)-阻塞 。 。 疑惑的是为什么第二次WaitEvent能得到事件?怎么解决? |
|
沙发#
发布于:2002-04-09 09:34
我也试过,好象是驱动和应用层的事件虽然是共用同一
个事件,但是,两方面又各自拥有该事件的拷贝(不知该 怎么称呼),所以,你在驱动和应用各清一遍事件,仍然 还能收到事件。但是好象也只能持续几次而已。我感觉 由于操作系统原因驱动和应用层不可能保持严格的同步, 即使你用同步事件。 |
|
|