I/O管理器、驱动执行过程

1.应用程序向I/O管理器发出I/O操作请求(读、写等操作)。

2.I/O管理器通过建立一个IRP来分发I/O请求并把它传递给调用链中第一个驱动程序。

3.第一个驱动程序通过向第二个驱动程序发出I/O请求以便继续处理。

4.第二个驱动程序通过向第三个驱动程序发出I/O请求以便继续处理。

5.第三个驱动程序完成I/O操作。它调用IoCompleteRequest()函数并开始执行I/O完成的第一阶段。

6.在第一阶段执行期间,第二个驱动程序的完成例程(如果有的话)会被回调。

7.在第一阶段执行期间,第一个驱动程序的完成例程(如果有的话)会被回调。

8.接下来,IoCompleteRequest()函数会把控制权返回给第三个驱动程序。I/O完成的第一阶段处理结束。

9.第三个驱动程序把一个状态值(例如,SUCCESS)返回给第二个驱动程序。

10.第二个驱动程序把一个状态值返回给第一个驱动程序。

11.第一个驱动程序把一个状态值返回给I/O管理器。

12.I/O管理器注意到必须执行I/O完成的第二阶段,并开始执行。

13.第二阶段I/O完成例程返回I/O操作的状态信息并把数据拷贝到应用程序的地址空间中。一旦完成了这些操作,I/O管理器拆除IRP并将其丢弃。

14.第二阶段I/O完成例程把控制权返回给I/O管理器。

15.现在,I/O操作已经完成,I/O管理器把控制权返回给调用者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值