changys
驱动小牛
驱动小牛
  • 注册日期2004-11-15
  • 最后登录2008-08-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望15点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1768回复:5

关于中断的几个参数不明? IRQL, Level, Vector, Affinity, MappedVector

楼主#
更多 发布于:2005-05-13 17:11
ULONG MappedVector =
  HalGetInterruptVector(
    IN INTERFACE_TYPE  InterfaceType,
    IN ULONG  BusNumber,
    IN ULONG  BusInterruptLevel,
    IN ULONG  BusInterruptVector,
    OUT PKIRQL  Irql,
    OUT PKAFFINITY  Affinity
    );

其中的几个参数不甚理解 BusInterruptLevel,BusInterruptVector,
Irql, Affinity, MappedVector ?
在设备管理器中我们看到中断值是这个 BusInterruptLevel 吧?
为什么在设备管理器中不直接赋一个Irql值给设备呢?
lifeship
驱动小牛
驱动小牛
  • 注册日期2002-10-18
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-05-14 22:44
BusInterruptLevel,
对于8259A中断控制器,每个中断有一个优先级,优先级低的会被高的屏蔽掉
BusInterruptVector,
对于8259A中断控制器,每个中断有一个中断线,代表由某条中断线引起的中断
Irql,
Windows为了使中断与平台无关,重新定义了操作系统自己使用的中断优先级,这个参数是上面的BusInterruptLevel对应到操作系统的优先级
Affinity,
不了解
MappedVector
中断向量,8259a为每根中断线编程了特定的中断向量,
杯汝前来,  老子今朝,  放荡形骸!  甚长年抱渴,  咽如焦釜,  于今喜醉,  气似奔雷!  慢说刘伶,  古今达者,  醉后何妨死便埋! 
changys
驱动小牛
驱动小牛
  • 注册日期2004-11-15
  • 最后登录2008-08-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望15点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-16 09:52
BusInterruptLevel 和 KIRQL是不同的两套关于中断级别标准,
其区别和联系是什么?
BusInterruptVector 和 MappedVector也是不同的两套中断向量表,
其区别和联系是什么?

还有就是Affinity和cpu之间发生了什么关系?
wqmmmmm
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-05-16 17:52
Affinity 指的应该是在多cpu环境下的亲缘性吧
也就是只能中断某些cpu吧
changys
驱动小牛
驱动小牛
  • 注册日期2004-11-15
  • 最后登录2008-08-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望15点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-18 19:07
BusInterruptLevel 和 BusInterruptVector  是DOS下的中断号和中断向量表

KIRQL 和 MappedVector是windows把DOS下的中断号和中断向量映射到windows系统中去,

我的理解是这样的,不知道说的对否?

Affinity还是没搞明白
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-05-19 08:51


Affinity还是没搞明白

Affinity是指和CPU的亲和性,因为某线程如果已经在某CPU上运行,那么下次调度时最好还在这个CPU上运行,这样CPU的Cache就不会失效.有些程序必须在一个CPU上运行,不能同时在多个CPU上运行,这样就是有CPU的Affinity了
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部