IRP请求:向最终设备申请执行某个操作的请求,它在内核中以一个数据结构(IRP)的形式存在,具有相关的约定和规范。
驱动对象:表示系统内核中加载的一个驱动程序的数据结构(DRIVER_OBJECT)。
设备对象:最终接收、响应一个IRP请求的对象。在内核中,也是一个数据结构(DEVICE_OBJECT)的形式存在。他关联的实体可以是一个实际存在物理设备,如硬盘,网络接口卡;也可是一个虚拟的概念,如管道。
IRP请求、驱动对象、设备对象关系:一个驱动对象可能拥有多个设备对象,驱动对象将其捕获到的IRP请求分发到具体的某个特定设备对象去。当应用程序需要像某个设备对象发送一动作请求时,他首先将该请求发送至对应的驱动对象,驱动对象捕获到请求后,根据请求中的信息将其分发到具体的设备对象。此外,该请求会被I/O管理器翻译成规范的IRP请求(或其他与之等效的形式)发往具体的设备对象。设备对象接收到IRP后,实际执行请求的动作。很多时候,一个IRP需要经过多个设备对像的处理才能够最终完成。