jjs
jjs
驱动牛犊
驱动牛犊
  • 注册日期2001-06-12
  • 最后登录2004-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2508回复:6

关于驱动程序分层

楼主#
更多 发布于:2001-05-23 18:38
各位大侠:
    对于一个IRQ,我如何判断是否需要将此IRQ发送置下一层驱动程序,进行处理?谢谢!!!

最新喜欢:

hapihapi
jeosph
驱动中牛
驱动中牛
  • 注册日期2001-04-19
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-05-23 18:43
这个问题真的很难回答!
那要看你干什么,同时要看设备栈中位于你的驱动程序下层的程序是否支持你这个IRP!
一般象PNP,POWER MANAGE,可以肯定!
但如果是你自己定义的IRP,肯定不支持。或者说,你可以肯定下层有你自己编写的,支持此IRP的程序,当然,也可以1
反正,你自己琢磨吧!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-05-23 20:01
[QUOTE]原本由 jeosph 发表
[B]这个问题真的很难回答!
那要看你干什么,同时要看设备栈中位于你的驱动程序下层的程序是否支持你这个IRP!
一般象PNP,POWER MANAGE,可以肯定!
但如果是你自己定义的IRP,肯定不支持。或者说,你可以肯定下层有你自己编写的,支持此IRP的程序,当然,也可以1
反正,你自己琢磨吧! [/B][/QUOTE]
IRP可以自己定义吗?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
lxf
lxf
驱动小牛
驱动小牛
  • 注册日期2001-03-26
  • 最后登录2013-05-04
  • 粉丝4
  • 关注0
  • 积分76分
  • 威望30点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-05-23 20:24
这个网页的下载中心有一个中文资料说IRP还是很清楚的。
《Waltoney-ch.chm》

“设备对象是系统为帮助软件管理硬件而创建的数据结构。一个物理硬件可以有多个这样的数据结构。处于堆栈最底层的设备对象称为物理设备对象(physical device object),或简称为PDO。在设备对象堆栈的中间某处有一个对象称为功能设备对象(functional device object),或简称FDO。在FDO的上面和下面还会有一些过滤器设备对象(filter device object)。位于FDO上面的过滤器设备对象称为上层过滤器,位于FDO下面(但仍在PDO之上)的过滤器设备对象称为下层过滤器。
。。。。
。。。。
。。。”
别着急,慢慢来!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地下室#
发布于: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可不可以自己定义?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
jeosph
驱动中牛
驱动中牛
  • 注册日期2001-04-19
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-05-24 10:29
不可以自己 定义 !!

但可以定义IRP重的控制代码!!
lxf
lxf
驱动小牛
驱动小牛
  • 注册日期2001-03-26
  • 最后登录2013-05-04
  • 粉丝4
  • 关注0
  • 积分76分
  • 威望30点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-05-24 13:44
???
"I/O堆栈
任何内核模式程序在创建一个IRP时,同时还创建了一个与之关联的IO_STACK_LOCATION结构数组:数组中的每个堆栈单元都对应一个将处理该IRP的驱动程序,另外还有一个堆栈单元供IRP的创建者使用。堆栈单元中包含该IRP的类型代码和参数信息以及完成函数的地址。
"
别着急,慢慢来!
游客

返回顶部