windows驱动开发回调函数CompletionRoutine问题
细粉条 2014-06-10 10:56:58 近来在看《Windows驱动程序编程》里面第5章 数据结构 一节 介绍 I/O堆栈单元数据结构 ,其中有一个域是这样介绍的 “CompletionRoutine(PIO_COMPLETION_ROUTINE)是一个I/O完成例程的地址,该地址是由与这个堆栈单元对应的驱动程序的更上一层驱动程序设置的。你绝对不要直接设置这个域,应该调用IoSetCompletionRoutine函数,该函数知道如何参考下一层驱动程序的堆栈单元。设备堆栈的最低一级驱动程序并不需要完成例程,因为它们必须直接完成请求。然而,请求的发起者有时确实需要一个完成例程,但通常没有自己的堆栈单元。这就是为什么每一级驱动程序都使用下一级驱动程序的堆栈单元保存自己完成例程指针的原因。”
自己对 每一级驱动程序都使用下一级驱动程序的堆栈单元保存自己完成例程指针的原因 不是太理解,请高手指导一下。