Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2786回复:12

驱动程序和应用程序共享事件,为什么应用程序ResetEvent驱程程序中事件对象仍然显示信号态?

楼主#
更多 发布于:2002-04-17 21:26
驱动程序和应用程序共享事件,为什么应用程序ResetEvent驱程程序中事件对象仍然显示信号态?

应用程序不能清除共享事件状态吗?

最新喜欢:

flyfoxflyfox IammeIamme
Tom_lyd
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-17 21:27
faint!
兄弟你最好研究一下WMI
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-17 21:31
兄弟,项目赶得紧哪,回头一定补上一课。
Tom_lyd
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-17 22:20
兄弟,项目赶得紧哪,回头一定补上一课。

兄弟,其实我什么都不懂。我只知道用WMI可以从driver给应用发事件,挺好玩。
kao,老板现在又让我做什么8029的网卡驱动。我什么都不懂啊!
还不如让我用汇编写50K的代码爽呢!
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
zhch111
驱动小牛
驱动小牛
  • 注册日期2002-02-04
  • 最后登录2003-01-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-17 23:37
我以前试过,共用一个同步信号量对象,高层的应用程序跟低层的一样,都是正常的,在9x下用过高层和低层用事件对象进行同步,也没发现你说的问题呀。在高层创建一个事件对象,转换后传到低层,就可以正常完成同步了。
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-18 08:30
我以前试过,共用一个同步信号量对象,高层的应用程序跟低层的一样,都是正常的,在9x下用过高层和低层用事件对象进行同步,也没发现你说的问题呀。在高层创建一个事件对象,转换后传到低层,就可以正常完成同步了。

什么转换?
Tom_lyd
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2002-04-18 08:43
是不是用OpenVxDHandle呀?
AChen
驱动牛犊
驱动牛犊
  • 注册日期2002-02-25
  • 最后登录2002-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-18 08:56
ObReferenceObjectByHandle
This posting is provided "AS IS" with no warranties, and confers no rights.
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-04-18 09:38
我是在驱动程序创建的事件(IoCreateNotificationEvent()),然后在应用程序OpenEvent()打开。
Tom_lyd
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-04-18 09:56
Despite the mechanism used, the driver and application will need a common method of synchronizing access to the shared buffer.  This can be done in a variety of ways.  Probably the simplest mechanism is sharing one or more named events.  When an application calls CreateEvent(), the named event is automatically created in the Object Manager’s BaseNamedObjects directory.  A driver can open, and share,
                                          ~~~~~~~~~~~~~~~ these event objects by calling IoCreateNotificationEvent(),
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 and specifying the same name as was specified in user mode (except, of course, specifying “\\BaseNamedObjects” as the directory).
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-04-18 10:18
    那按照我的方法(驱动程序创建事件,应用程序得到这个共享事件的句柄)从逻辑上和相关文档上来说也是可以的,可是我遇到以下问题:
    应用程序调用OpenEvent()得到共享事件的句柄,只有将OpEvent的第一个参数置为SYNCHRONIZE才能得到成功得到,否则都失败。然而我想在应用程序将驱动程序设置的事件信号态恢复,去没有权限。我试图OpenEvent(SYNCHRONIZE|EVENT_MODIFY_STATE,EventName)失败。这是不是说应用程序共享驱动程序创建的事件只有访问的权限,而无Modify的权限?如果我想Modify它的话,则一定需要在应用程序CreateEvent ?
Tom_lyd
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-04-18 10:54
没试过,我一直都在应用程序中Create。
试试吧,在驱动中Create一个Event,再查看一下:
objdir /D \\BaseNamedObjects>c:\\ppp.txt
我想它的限制都在于访问权限,不会强制应用不能\"Write\"
驱动Event吧。
若仅仅是ACE的问题,作为Administrator改一下就行了
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2002-04-18 18:44
用户被禁言,该主题自动屏蔽!
游客

返回顶部