在调用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)

返回顶部