六
27
irp是Windows内核中的一种非常重要的数据结构。上层应用程序与底层驱动程序通信时,应用程序会发出I/O请求,操作系统将相应的I/O请求转换成相应的IRP,不同的IRP会根据类型被分派到不同的派遣例程中进行处理。
irp相当于ring3下的消息,应用程序对驱动程序进行操作的时候会发出相应的消息,驱动程序根据这些消息做出相应的操作。这些操作通过我们自己编写的派遣函数来决定执行什么样的操作。
看下面流程:
1.为不同的irp类型设置派遣函数
2.编写派遣函数来处理收到不懂类型的irp的不同操作
流程很简单,但是处理起来就不那么简单了。
代码如下: