创建IRP传递给驱动的派遣函数的一些方法
2011-02-15 13:11
218 查看
创建IRP
IoBuildSynchronousFsdRequest
创建同步IRP
IoBuildAsynchronouseFsdRequest
创建异步IRP
类型: IRP_MJ_PNP , IRP_MJ_READ , IRP_MJ_WRITE , IRP_MJ_FLUSH_BUFFERS , IRP_MJ_SHUTDOWN
IoBuildDeviceIoControlRequest
创建同步IRP
类型: IRP_MJ_INTERNAL_DEVICE_CONTROL , IRP_MJ_DEVICE_CONTROL
以上3个函数是调用此函数实现的,系统自动删除IRP,而此函数需要手动调用IoFreeIrp删除IRP
IoAllocateIrp
创建任意类型IRP
派遣IRP
IoCallDriver
步骤:
获得设备对象指针(非句柄)
创建IRP
构造IRP的I/O堆栈
调用IoCallDriver内核函数,内部会调用派遣函数
IoBuildSynchronousFsdRequest
创建同步IRP
IoBuildAsynchronouseFsdRequest
创建异步IRP
类型: IRP_MJ_PNP , IRP_MJ_READ , IRP_MJ_WRITE , IRP_MJ_FLUSH_BUFFERS , IRP_MJ_SHUTDOWN
IoBuildDeviceIoControlRequest
创建同步IRP
类型: IRP_MJ_INTERNAL_DEVICE_CONTROL , IRP_MJ_DEVICE_CONTROL
以上3个函数是调用此函数实现的,系统自动删除IRP,而此函数需要手动调用IoFreeIrp删除IRP
IoAllocateIrp
创建任意类型IRP
派遣IRP
IoCallDriver
步骤:
获得设备对象指针(非句柄)
创建IRP
构造IRP的I/O堆栈
调用IoCallDriver内核函数,内部会调用派遣函数
相关文章推荐
- 驱动开发之 最简单的处理IRP的派遣函数
- C#File类常用的文件操作方法(创建、移动、删除、复制等) File类,是一个静态类,主要是来提供一些函数库用的。静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和
- 分层驱动模型中IRP的传递与完成
- 模型驱动测试-多参数测试用例设计敏捷化的一些实践方法
- unity开发的时候的一些UI帮助函数和方法
- oracle创建表的方法和一些常用命令
- String类中的一些函数使用方法
- oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包
- JS创建和存储 cookie一些方法总结
- SQL中函数返回表,传递一个参数,无法唤醒用户自定义函数,解决方法!
- 【C】函数间传递多维数组的方法
- 驱动开发(7)IRP与派遣函数
- Kotlin语言学习之将函数作为参数传递,使用双冒号::引用其他方法
- C++指针作为函数的参数进行传递时需要注意的一些问题
- ajax回调函数参数传递正确方法
- java中数组的创建方法与一些数组的用法
- delphi 对应 c# 的一些函数及类型的转换方法【原】
- 第二周项目一C/C++语言中函数传递的三种方式之方法三引用作形参
- PHP中CURL方法curl_setopt()函数的一些参数
- C++ string类的一些函数方法