版块
论坛
喜欢
话题
应用
搜索
登录
注册
EdmundChen的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=81838
驱动程序的常见问题
应用程序通过调用ReadFile来读数据,而在驱动程序里不定马上就有数据,需要等待硬件产生,我想在DispatchRead中把当前的线程挂起,当中断来时再处发它,然后返回给应用程序。该怎么做?哪位大侠能够帮帮忙。
回复
(
5
)
2004-06-24 10:23
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
seaquester
:
StartIO例程只能起同步作用。 实际上,irp被startio例程处理时,还是有可能读不到数据。 他的驱动不是需要等待硬件产生中断吗?在DPC里面完成这个IRP就行。如果不需要启动硬件读数据(比如DMA),StartIo就没有什么用。
(2004-06-24 16:42)
回复
escape
:
StartIO例程只能起同步作用。 实际上,irp被startio例程处理时,还是有可能读不到数据。
(2004-06-24 16:00)
回复
seaquester
:
应用程序通过调用ReadFile来读数据,而在驱动程序里不定马上就有数据,需要等待硬件产生,我想在DispatchRead中把当前的线程挂起,当中断来时再处发它,然后返回给应用程序。该怎么做?哪位大侠能够帮帮忙。 可以使用队列来实现。 1. 收到IRP后,IoMarkI...
(2004-06-24 15:34)
回复
EdmundChen
:
这样做可能导致应用程序要一直在读数据,从而CPU占有率升高
(2004-06-24 14:05)
回复
escape
:
我觉得可以让read历程和中断历程共一块数据。 这样就不需要触发机制了。read有数据就返回数据, 否则就返回空。效率也高一些。不会阻塞用户线程。
(2004-06-24 11:04)
回复
EdmundChen
加关注
写私信
0
关注
0
粉丝
21
帖子
返回顶部