狼行成单
驱动牛犊
驱动牛犊
  • 注册日期2002-05-09
  • 最后登录2002-08-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1114回复:5

请大侠指教一个nt的问题

楼主#
更多 发布于:2002-08-02 17:50
我为一块数据接受卡作一驱动(nt下的中断方式),想在驱动中发一个同步信号给应用程序,通知应用程序DPC已经将数据从设备内存中获得让应用程序发一个IRP过来,把数据放入IRP中的数据缓冲区中。请问我该如何设置这个同步信号?我在一个相近的例子代码里读到:好象作法是1、首先在设备扩展定义一个PKEVENT Event和一HANDLE Handle。2、在DRIVERENTRY中执行 extension->Event =IoCreateNotificationEvent (&eventName,&extension->Handle) ;
将Handle与Event相联系起来。3、在适当处用KeSetEvent、ClearEvent对信号进行操作就好象可以通知应用程序有事件发生。我的问题是:我查DDK参考手册说IoCreateNotificationEvent是将EVENT与HANDLE相关的线程联系,但现在,Handle是我在设备扩展中定义的,它怎么能代表应用程序这线程呢?为甚么对Event置位,则应用程序能受到消息?请大侠帮我解释明白,万分感谢!!!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-08-02 17:57
在app,要用函数waitforXXXobject来wait event的
看看waitforXXXobjetct的remark
狼行成单
驱动牛犊
驱动牛犊
  • 注册日期2002-05-09
  • 最后登录2002-08-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-02 18:20
arthurtu 大侠:谢谢你的回答!我不大懂,请你指教:DWORD WaitForSingleObject(
  HANDLE hHandle,        // handle to object to wait for
  DWORD dwMilliseconds   // time-out interval in milliseconds
);
这里应用程序的hHandle怎么样与驱动中的设备扩展中的Handle发生联系,使得Event置真,则应用程序中的WaitForSingleObject能接受到反应。请你祥细解释一下好不好。谢谢!!
chnh
驱动小牛
驱动小牛
  • 注册日期2002-04-09
  • 最后登录2004-02-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-02 19:06
在应用程序中用CreateEvent产生Event的Handle,然后通过DeviceIOControl传送到驱动程序,在驱动程序中将此Handle
与一Event对象相连,当事件发生时,驱动程序触发事件,
应用程序的WaitForSingleObject函数将获得通知
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-08-02 20:06
也可以在driver create一个有name的event,在app用这个name来openevent,就得到了handle
狼行成单
驱动牛犊
驱动牛犊
  • 注册日期2002-05-09
  • 最后登录2002-08-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-02 20:41
谢谢两位大侠的帮忙!在这里要对chnh说声对不起,我已经没有分了(当东西当没了)所以,没办法给你加分了,先欠着吧,以后攒了分我一定会补回给你的。再向你说声对不起!
游客

返回顶部