waifcloud
驱动牛犊
驱动牛犊
  • 注册日期2003-04-27
  • 最后登录2009-09-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1041回复:1

关于驱动程序和应用程序通讯的问题

楼主#
更多 发布于:2007-10-15 23:51
驱动程序和应用程序通过Event通讯:
在应用程序中的一个Event通过DeviceIoControl传递给驱动程序,驱动程序KeSetEvent这个Event,应用程序WaitForSingleObjectEx( Event, 1000, TRUE), ResetEvent( Event )
1 当驱动程序比较慢地KeSetEvent的时候,工作正常
2 当驱动程序很快的KeSetEvent的时候,应用程序事件有丢失(如驱动程序KeSetEvent了3次,应用程序只等到一次)
请教大侠, 这具体是什么原因, 驱动和应用之间有没有效率比较高的通讯方式?

ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-10-16 10:49
1 事件初始化为同步的而不是notify
2 像这样
do {
    WaitForSingleObject(hEvent, -1);
    do {
        //取完所有该取的东东
        DeviceIoControl(...);
        DoYourWork(...)
    }while(1);
}while(1);

不能这样
do {
    WaitForSingleObject(hEvent, -1);
  DeviceIoControl(...);
    DoYourWork(...)
}while(1);
游客

返回顶部