references:
IRP的结构

IO管理器为每一个IRP创建一个IO stack location数组,数组里面的每一个元素对应设备栈中的一个设备驱动

Buffer访问方式有三种
- BUFFERED,IO管理器创建一个临时的buffer来共享给驱动,这种方式下input和output使用同一块内存
- DirectIO,IO管理器锁定用户模式的buffer对应的物理内存然后共享给驱动
- NEITHER,IO管理器只提供buffer的虚拟地址,不负责校验地址的合法性
IOCTL code的编码格式

references:
IRP的结构

IO管理器为每一个IRP创建一个IO stack location数组,数组里面的每一个元素对应设备栈中的一个设备驱动

Buffer访问方式有三种
IOCTL code的编码格式
