菜鸟888
驱动牛犊
驱动牛犊
  • 注册日期2001-11-04
  • 最后登录2002-07-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1520回复:5

驱动如何触发应用程序

楼主#
更多 发布于:2002-07-30 16:39
想问一下驱动和应用程序通讯的问题。
我想在驱动和应用程序之间共享一个event事件。具体是这样。在驱动程序中生成一个event事件。应用线程被该事件阻塞。然后等待驱动的中断服务例程来击活这个event事件,应用程序继续运行。
我的程序是在98下。用driverworks写的。
那位高人麻烦指点一下。谢谢
//驱动程序

My9052Device::My9052Device(PDEVICE_OBJECT Pdo, ULONG Unit) :
KPnpDevice(Pdo, &My9052Device_Guid)

//在device的构造函数里声明kevent可以吗???

{

KEvent* m_pSynchEvent = new (NonPagedPool) KEvent(

   KUstring(L\"\\\\BaseNamedObjects\\\\SynchEvent\"),SynchronizationEvent);

m_pSynchEvent->Clear();

//在softice里看m_pSynchEvent不是NULL

}

BOOLEAN My9052Device::Isr_Irq(void)

{

m_pSynchEvent->Set();//通过中断触发event,

}



在应用程序中:

hEvent = OpenEvent(SYNCHRONIZE, FALSE, EVENT_NAME);

//hEvent 是NULL,不知道是为什么??

。。。。。。

::WaitForSingleObject(Eventhandle,INFINITE);

。。。。。。
edriver
驱动小牛
驱动小牛
  • 注册日期2002-03-04
  • 最后登录2006-09-15
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-30 17:03
你的这种方法没有错呀!另外DriverWorks的例子里面有一个这样的程序,具体是什么忘了,是一个关于软驱的例子,就是这样实现的,你可以去查查!
chnh
驱动小牛
驱动小牛
  • 注册日期2002-04-09
  • 最后登录2004-02-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-30 17:26
Event应该在app中生成:
hEvent=CreateEvent(NULL,FALSE,FALSE,NULL)
然后通过DeviceIoControl传给Driver
taosa
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2005-01-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-30 22:33
在文“Windows 9X硬件中断设备驱动程序的开发”有相应的说明……………… :)
beaveror
驱动中牛
驱动中牛
  • 注册日期2002-06-13
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-05 09:11
Event应该在app中生成:
hEvent=CreateEvent(NULL,FALSE,FALSE,NULL)
然后通过DeviceIoControl传给Driver
 

对,这样做才行。
如果要程序,写信给我。
只要能解决问题,就一定给分。 希望高手赐教!
kwxkzk
驱动牛犊
驱动牛犊
  • 注册日期2002-06-17
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-06 15:14
tigerzd写过一篇文章“怎样在驱动层和应用层建立准消息机制”,在专栏区的专题研究中,ID是http://www.driverdevelop.com/read.php?t=A&id=154,里面说得很明白了
你做过什么? 你在做什么? 你为什么这样做? 你要做什么?
游客

返回顶部