阅读:1114回复:0
IFS 学习心得(五):IRP和IO堆栈
WDM使用分层设备对象结构的目的就是使IRP能方便地从一层驱动程序传递到下一层驱动程序。
IPR创建的同时创建IO堆栈数组,并随IRP一起从上层驱动传递到下层。 上层为下层建立IO堆栈,若要设置完成例程则使用IoCopyCurrentIrpStackLocationToNext建立堆栈,若无需设置完成例程,使用IoSkipCurrentIrpStackLocation,不建立IO堆栈,因为建立IO堆栈单元的作用主要是为了能使IRP完成时能调用IRP完成例程。 每个IO堆栈单元都有一个完成例程。 每处理一次复制堆栈操作,堆栈指针向下移动一次,直至IRP完成回卷调用IO完成例程。 |
|