在驱动程序中,经常会调用其他的驱动程序;其中,手动构造 IRP ,然后将 IRP 传递到相应驱动程序的派遣函数中是一种比较简单的方法,下面就来介绍下手动创建 IRP 的几种不同的方法及其特点。
创建 IRP 总共有 4 种方法。分别通过调用: IoBuildSynchronousFsdRequest 、 IoBuildAsynchronousFsdRequest 、 IoBuildDeviceIoControl 和 IoAllocateIrp 这 4 个内核函数来完成。这其中, IoAllocateIrp 是比较底层的内核函数,其余的三个内核函数是属于靠近上层的内核函数,而且这三个函数都是通过调用 IoAllocateIrp 实现的。
这几个函数都是文档化的函数,原型都可以在</