dengyl
驱动牛犊
驱动牛犊
  • 注册日期2002-11-20
  • 最后登录2002-12-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1833回复:13

在WDM驱动和应用程序之间交换大量数据有什么好方法?

楼主#
更多 发布于:2002-12-02 15:54
能不能用socket?
 :P
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-02 16:20
最好驱动程序读数据并存取,并给应用程序一指针
应用程序利用指针,及时处理数据。
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
板凳#
发布于:2002-12-02 16:25
据说有共享内存方法可用。
dengyl
驱动牛犊
驱动牛犊
  • 注册日期2002-11-20
  • 最后登录2002-12-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-02 16:34
驱动接收到数据如何通知应用程序?
lrx666
驱动太牛
驱动太牛
  • 注册日期2001-08-17
  • 最后登录2010-10-25
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望47点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-02 16:50
驱动接收到数据如何通知应用程序?
 

共享内存最方便,设一标志位不断查询
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2002-12-02 17:05
用事件通知可以有很高的效率
易水
dengyl
驱动牛犊
驱动牛犊
  • 注册日期2002-11-20
  • 最后登录2002-12-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-02 17:11
[quote]驱动接收到数据如何通知应用程序?
 

共享内存最方便,设一标志位不断查询 [/quote]

不断查询会不会造成cpu占用100%的后果? :o
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-12-02 17:15
我是用deviceiocontrol()完成的。
lrx666
驱动太牛
驱动太牛
  • 注册日期2001-08-17
  • 最后登录2010-10-25
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望47点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-12-02 17:18
[quote][quote]驱动接收到数据如何通知应用程序?
 

共享内存最方便,设一标志位不断查询 [/quote]

不断查询会不会造成cpu占用100%的后果? :o [/quote]
用多线程
dengyl
驱动牛犊
驱动牛犊
  • 注册日期2002-11-20
  • 最后登录2002-12-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-12-02 17:22
我是用deviceiocontrol()完成的。
 


这样能向应用发出通知吗?这样似乎只能向驱动发出通知。
OneWind
驱动小牛
驱动小牛
  • 注册日期2002-05-15
  • 最后登录2009-04-10
  • 粉丝0
  • 关注0
  • 积分82分
  • 威望11点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-12-02 17:32
应用事件通知吧.
嘿,大家好!
lonkiss
驱动牛犊
驱动牛犊
  • 注册日期2002-01-15
  • 最后登录2004-07-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-12-02 18:19
我现在用了一种略微麻烦的方法,来模拟驱动程序向应用程序发消息。
是这样实现的:
在驱动程序中划出一个缓冲区,当驱动程序要给应用程序发消息的时候,先给这个缓冲区头两个字节设置为自己定义的消息代码,之后设置一下它和应用程序共享的事件。
而应用程序那一端,建立一个线程,专门等待这个事件,一旦等待到了事件以后,立即调用一个驱动提供的ioctrl来读取驱动的那个缓冲区,根据缓冲区的头两个字节来确定消息类型,再向主程序发消息或直接来处理这个消息。当然,如果缓冲区定义的足够大的话,这个消息还可以附带很多的数据呢。
有一点需要注意:如果你的驱动允许多个客户同时访问的话,事件应该在驱动里建立,然后客户程序通过名字访问这个事件。如果你采用的是客户程序建立事件再传下去给驱动的话,应该在驱动里建立一个保存每个客户事件的链表。当要发消息时,给每个事件都设置一下信号。
我的真名就叫-龙旗
yellowdog
驱动牛犊
驱动牛犊
  • 注册日期2002-10-11
  • 最后登录2010-01-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-12-02 18:19
我就是用事件做的,但频率不能太高,1K左右
sipu
驱动牛犊
驱动牛犊
  • 注册日期2002-05-13
  • 最后登录2005-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-12-10 21:26
你的大数据量是多大?

直接用DMA方式就可以了,这是最简单直接的方法。
游客

返回顶部