版块
论坛
喜欢
话题
应用
搜索
登录
注册
troylees的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=145630
请教:双事件对象通知的问题!!
我在应用程序中和驱动中各创建一个事件对象。然后在应用程序中创建新线程并阻塞等待驱动置位事件,驱动置位事件后,则转入阻塞等待。具体代码如下:应用程序中:unsigned ThreadId; DWORD BytesReturned;//获得设备句柄 hDevice=Creat...
全文
回复
(
8
)
2007-03-12 20:21
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
troylees
:
噢,明白了!!非常感谢你的提醒。现在驱动和应用的双事件通知问题应该算解决了。 不过,我还是搞不清楚在驱动创建的事件,应用程序怎么样才能使用。 感谢大家的关注。谢谢!!
(2007-03-15 13:08)
回复
rayyang2000
:
引用第6楼troylees于2007-03-14 17:15发表的“”: 噢,忘记写了,线程中会发一个IRP,让驱动自己去唤醒它。不过为了方便测试,我改为手工按钮执行。我本意是在线程中直接唤醒它的,但是好像驱动创建的事件,应用使用不了,但pjf以前说过是可以的,我用他的代码好像也...
(2007-03-15 06:24)
回复
troylees
:
噢,忘记写了,线程中会发一个IRP,让驱动自己去唤醒它。不过为了方便测试,我改为手工按钮执行。我本意是在线程中直接唤醒它的,但是好像驱动创建的事件,应用使用不了,但pjf以前说过是可以的,我用他的代码好像也实现不了,以下是他的代码的连接:
http://bbs.driverdev...
(2007-03-14 15:15)
回复
troylees
:
经过测试,正如你说的,KeWaitxxx会调用到xxOpenKey函数,所以才有这样的情况,其他的函数却没有问题。非常感谢你的回答!!
(2007-03-14 15:07)
回复
tooflat
:
谁来signal pEventDrv ???
(2007-03-14 14:07)
回复
rayyang2000
:
曾经在开发中看到KeWaitxxx也会去操作registry,虽然不清楚是否一定是RegOpenKey。。。
(2007-03-14 06:43)
回复
troylees
:
我hook了RegOpenKey来测试一下,因为RegOpenKey调用频繁,所以我用了KeWaitForMutexObject互斥进入。 对于你的第2个问题,如果把以下注释掉的话,其他一切都是正常的,MessageBox也弹出来了 <<<<<<...
(2007-03-13 14:12)
回复
rayyang2000
:
可能是deadlock,你hook的是什么函数? 另外,在user-mode thread中用MessageBox好像有问题,记得MSDN上曾经看到说只能在main thread中做GUI操作。
(2007-03-13 08:05)
回复
troylees
加关注
写私信
0
关注
0
粉丝
73
帖子
返回顶部