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

本文详细介绍了在Windows驱动程序中创建IRP的四种方法:IoBuildSynchronousFsdRequest、IoBuildAsynchronousFsdRequest、IoBuildDeviceIoControl和IoAllocateIrp。这些函数的不同之处在于创建的IRP类型、IRP对象的删除以及关联事件的处理。对于IoAllocateIrp,开发者需要手动填写IRP结构并负责释放。
最低0.47元/天 解锁文章
927

被折叠的 条评论
为什么被折叠?



