peterwander
驱动牛犊
驱动牛犊
  • 注册日期2001-08-04
  • 最后登录2003-03-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1698回复:2

请教大虾KEvent的具体用法

楼主#
更多 发布于:2001-08-30 22:25
本人在用KEvent类时遇到了一点麻烦,请各位高手帮在下一把。
我在继承的KDevice类中定义了一个KEvent 的成员变量;然后在通过DeviceIOControl的一个回调函数中初始化了这个成员变量。接着将它的指针传给一个独立的线程,在线程中通过传进来的指针引用其Wait函数.但是在线程中验证此指针有效性时总是无效的,或根本就等不到Wait事件的触发。后来也试过将此成员变量的句柄传给线程,在线程中通过词句柄重构一个KEvent实例,结果和上述相同。
我又通过相同的方法,在VC应用程序中创建了一个CEvent 实例,同样将其句柄传到驱动程序中,在驱动程序中用此句柄构造了一个KEvent实例,然后在应用程序中的WaitSingleObject每次就能触发。
(注:事件的触发是由外部中断响应函数每次设置(SET)的)。

gxzbme
驱动牛犊
驱动牛犊
  • 注册日期2001-08-09
  • 最后登录2006-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-31 00:41
打下:
可能你用错了。
请参考example\nt\kbfilter.例子。
这里有一个kevent事件、线程、等待的最适合你的例子。只要稍稍修改就完全可以使用了。(等待、产生线程、事件在exe中,set在sys中)

(给我加分吧,还没有人给过我分呢!)
peterwander
驱动牛犊
驱动牛犊
  • 注册日期2001-08-04
  • 最后登录2003-03-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-09-02 21:17
谢谢你的回复.
NT中的例子的用法我已经可以掌握了.但我要请教的是SET和WAIT都在WDM中好象不太好用,我是在线程中WAIT的,结果不是想象的那么简单.不知打下有何高见?
游客

返回顶部