【翻译】winddk翻译(十)--异步I/O支持
异步I/O支持
I/O管理器提供了异步I/O支持,因此I/O请求的初始(往往是一个用户模式的应用程序,但是有时候也可能是另一个驱动)能够继续执行,而不是等到I/O请求完成。异步I/O支持提升了整个系统的所有处理I/O请求代码的效率。
有了异步I/O,内核模式驱动依据I/O管理器传送过来的顺序处理I/O请求。I/O管理器或者更高级驱动,能够重新安排I/O请求。一个驱动能够将大型数据传输讲求分解成很多小型数据传输讲求。而且,一个驱动能够重叠I/O请求,特别是在对称多处理器平台上,更如多处理器安全当中提到的。
更重要的是,一个内核模式驱动处理I/O请求时不必要顺序完成。也就说,一个驱动不必要处理完每个IRP才能去处理下一I/O请求。
当一个驱动接受到一个IRP,她以处理尽可能多的IRP指明的处理以响应之。如果驱动支持异步IRP处理,她就能够发送一个IRP到下一个驱动,如果有必要,不必要在IRP处理完成再开始处理下一个IRP。这个驱动可以注册一个“完全例程”(completion routine), 当另一个程序完成了IRP之后,I/O管理器将调用该例程。驱动在IRP的I/O状态块当中填充状态值,通过访问该块的值,其他驱动可以知道这个I/O请求的状态。
驱动能够保持她现在I/O操作到她的设备对象的一个特别的部分中。这个部分被称为设备扩展。
更多信息,请见处理IRPs和输入/输出技术.
Microsoft Corporation
Send feedback on this topic
Built on Friday, February 18, 2005
