版块
论坛
喜欢
话题
应用
搜索
登录
注册
sipu的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=24950
请问应用态程序如何控制IRP的标志位
在调用ReadFile时,IRP的标志位为0x00000900,即读、写、关闭标志。而Cancel为1。StartIO不能调用,导致该IRP一直处于pending状态,只有在应用程序退出时才调用Cancel程序。使用的是Walt的程序进行的改进。相关代码如下:应用态: ...
全文
回复
(
3
)
2002-12-02 18:10
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
sipu
:
有没有这样的可能,由于ReadFile的异常情况,造成该IRP只能被Cancel掉。 所以其Cancel位是1。
(2002-12-02 22:08)
回复
sipu
:
谢谢关注。 可是我的应用中芯片使用一个RISC程序实现数据传输,由IOCTL来控制开始运行程序,执行完一场后重新跳转到程序起始位置开始执行。 这样的话我的CompleteRequest就在DPC中执行了。 现在的问题是程序就不进入StartIo中去,在里边无所谓...
(2002-12-02 21:35)
回复
lonkiss
:
你的startIO()里为什么不对排队的IRP进行处理呢?至少你应该调用一次CompleteRequest()函数来结束这个IRP的请求。 比如下面这样: VOID StartIo(IN PDEVICE_OBJECT fdo, IN PIRP Irp)//IRQL=2=DIS...
(2002-12-02 19:25)
回复
sipu
加关注
写私信
0
关注
0
粉丝
64
帖子
返回顶部