阅读:2508回复:6
关于驱动程序分层
各位大侠:
对于一个IRQ,我如何判断是否需要将此IRQ发送置下一层驱动程序,进行处理?谢谢!!! |
|
最新喜欢:hapi |
沙发#
发布于:2001-05-23 18:43
这个问题真的很难回答!
那要看你干什么,同时要看设备栈中位于你的驱动程序下层的程序是否支持你这个IRP! 一般象PNP,POWER MANAGE,可以肯定! 但如果是你自己定义的IRP,肯定不支持。或者说,你可以肯定下层有你自己编写的,支持此IRP的程序,当然,也可以1 反正,你自己琢磨吧! |
|
板凳#
发布于:2001-05-23 20:01
[QUOTE]原本由 jeosph 发表
[B]这个问题真的很难回答! 那要看你干什么,同时要看设备栈中位于你的驱动程序下层的程序是否支持你这个IRP! 一般象PNP,POWER MANAGE,可以肯定! 但如果是你自己定义的IRP,肯定不支持。或者说,你可以肯定下层有你自己编写的,支持此IRP的程序,当然,也可以1 反正,你自己琢磨吧! [/B][/QUOTE] IRP可以自己定义吗? |
|
|
地板#
发布于:2001-05-23 20:24
这个网页的下载中心有一个中文资料说IRP还是很清楚的。
《Waltoney-ch.chm》 “设备对象是系统为帮助软件管理硬件而创建的数据结构。一个物理硬件可以有多个这样的数据结构。处于堆栈最底层的设备对象称为物理设备对象(physical device object),或简称为PDO。在设备对象堆栈的中间某处有一个对象称为功能设备对象(functional device object),或简称FDO。在FDO的上面和下面还会有一些过滤器设备对象(filter device object)。位于FDO上面的过滤器设备对象称为上层过滤器,位于FDO下面(但仍在PDO之上)的过滤器设备对象称为下层过滤器。 。。。。 。。。。 。。。” |
|
|
地下室#
发布于:2001-05-24 09:14
[QUOTE]原本由 lxf 发表
[B]这个网页的下载中心有一个中文资料说IRP还是很清楚的。 《Waltoney-ch.chm》 “设备对象是系统为帮助软件管理硬件而创建的数据结构。一个物理硬件可以有多个这样的数据结构。处于堆栈最底层的设备对象称为物理设备对象(physical device object),或简称为PDO。在设备对象堆栈的中间某处有一个对象称为功能设备对象(functional device object),或简称FDO。在FDO的上面和下面还会有一些过滤器设备对象(filter device object)。位于FDO上面的过滤器设备对象称为上层过滤器,位于FDO下面(但仍在PDO之上)的过滤器设备对象称为下层过滤器。 。。。。 。。。。 。。。” [/B][/QUOTE] 到底IRP可不可以自己定义? |
|
|
5楼#
发布于:2001-05-24 10:29
不可以自己 定义 !!
但可以定义IRP重的控制代码!! |
|
6楼#
发布于:2001-05-24 13:44
???
"I/O堆栈 任何内核模式程序在创建一个IRP时,同时还创建了一个与之关联的IO_STACK_LOCATION结构数组:数组中的每个堆栈单元都对应一个将处理该IRP的驱动程序,另外还有一个堆栈单元供IRP的创建者使用。堆栈单元中包含该IRP的类型代码和参数信息以及完成函数的地址。 " |
|
|