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

来源:互联网 发布:appstore没法下载软件 编辑:程序博客网 时间:2024/04/28 13:19

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管理器把控制权返回给调用者。

0 0
原创粉丝点击