IRP结构与理解
2016-03-31 16:08
357 查看
Irp->AssociatedIrp.SystemBuffer //输入输出缓冲区 使用DO_BUFFER_IO
Irp->IoStatus.Status //返回给用户层的状态,表示这次通信的结果
Irp->IoStatus.Information //返回给用户层的大小
Irp->UserBuffer //USER_BUFFER时的通信
Irp->MdlAddress //使用MDL映射机制时的通信
PIO_STACK_LOCATION irpStack;
irpStack = IoGetCurrentIrpStackLocation (Irp);//从栈上取IRP信息
irpStack->Parameters.Read.Length //ReadFile/WriteFile传入的大小
irpStack->Parameters.Read.ByteOffset //ReadFile/WriteFile从哪读写偏移
irpStack->Parameters.DeviceIoControl.IoControlCode//控制码
irpStack->Parameters.DeviceIoControl.InputBufferLength//输入缓冲区大小
irpStack->Parameters.DeviceIoControl.OutputBufferLength//输出缓冲区大小
irpStack->MajorFunction//分发函数数组
irpStack->MinorFunction
irpStack->DeviceObject
irpStack->FileObject
Irp->IoStatus.Status //返回给用户层的状态,表示这次通信的结果
Irp->IoStatus.Information //返回给用户层的大小
Irp->UserBuffer //USER_BUFFER时的通信
Irp->MdlAddress //使用MDL映射机制时的通信
PIO_STACK_LOCATION irpStack;
irpStack = IoGetCurrentIrpStackLocation (Irp);//从栈上取IRP信息
irpStack->Parameters.Read.Length //ReadFile/WriteFile传入的大小
irpStack->Parameters.Read.ByteOffset //ReadFile/WriteFile从哪读写偏移
irpStack->Parameters.DeviceIoControl.IoControlCode//控制码
irpStack->Parameters.DeviceIoControl.InputBufferLength//输入缓冲区大小
irpStack->Parameters.DeviceIoControl.OutputBufferLength//输出缓冲区大小
irpStack->MajorFunction//分发函数数组
irpStack->MinorFunction
irpStack->DeviceObject
irpStack->FileObject
相关文章推荐
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- 网络编程socket基本API详解
- [Web开发] 在HTML代码里面如何判断IE版本
- JVM规范中的五大java内存区域
- CSS:line-height:150%与line-height:1.5的区别是什么?
- Android AsynTask源码分析和优缺点
- HashMap
- Python使用BeautifulSoup库解析HTML基本使用教程
- “Ubuntu on Windows” 初体验
- 封装思想
- LEMP架构及应用部署
- 在Windows环境下MongoDB搭建和简单操作
- 工具类:防止数组越界崩溃问题(NSArray 分类/runtime 用法3:交换方法)
- C# IList集合扩展方法 -- 集合排序
- VMware+Ubuntu+NAT 网络设置
- 驱动函数分类
- 变量,作用域和内存的问题
- linux内核分析第六周-分析Linux内核创建一个新进程的过程
- 使用Eclipse Memory Analyzer Tool查找内存泄露
- Struts <s:if>标签