fbpx
维基百科

IRQL

IRQLInterrupt Request Level的缩写,即中断请求级别。是Windows操作系统使用的处理器中断级别。

简介

Windows操作系统运行的处理器架构中,硬件产生信号发给可编程中断控制器英语Programmable Interrupt Controller. 中断控制器发送中断请求英语Interrupt request (PC architecture) (IRQ)及相应的优先级给CPU,CPU设置一个掩码(mask)屏蔽低优先级的其他中断请求到挂起状态(pending state),直到CPU释放控制给中断控制器。如果到来的中断有更高优先级,那么当前中断被挂起,CPU处理高优先级的中断。[1]

Windows把硬件中断与软件中断都映射到内部的中断表内。这就是中断请求级别IRQL。多核处理器的每个内核有自己单独的IRQL。异步过程调用、用户态线程、内核模式操作都可以被中断,因此它们的IRQL低于线程调度器(或称分派器)。[2]

级别

DDK帮助文档中有IRQL的级别:

IRQL 描述
软件IRQL 0 PASSIVE_LEVEL 最低级别, 没有被屏蔽的中断。线程执行用户模式,可以访问分页内存。
LOW_LEVEL
0 intermediate level 运行在临界区内的线程。调用KeGetCurrentIrql返回PASSIVE_LEVEL。调用KeAreApcsDisabled来检查是否在临界区内。在本层或更高层的驱动程序不能suspended。
1 APC_LEVEL 异步调用层。当有异步过程调用APC发生时,处理器提升到APC级别,因而就屏蔽了其它APC。可以访问分页内存。用KeAcquireFastMutex与KeReleaseFastMutex函数调用可以进入/退出本层。
2 DISPATCH_LEVEL 分发派遣层。DPC和更低的中断被屏蔽,不能访问分页内存,因为缺页中断也是在这个层。线程调度器也在此层,调度时只考虑优先级,因此APC_LEVEL上的线程被阻塞后,可以调度执行PASSIVE_LEVEL线程。
硬件IRQL 3-26 DIRQL (Device IRQL) 设备IRQL 几乎所有的中断被屏蔽
27 PROFILE_LEVEL 使用PRILFILE的定时器
28 CLOCK1_LEVEL 未在X86使用
CLOCK2_LEVEL 内部定时器2
SYNCH_LEVEL 同步层
29 IPL_LEVEL 中断内部处理层
30 POWER_LEVEL 电源故障层
31 HIGH_LEVEL 最高中断层

API

内核函数KeGetCurrentIRQL取得处理器当前的IRQL。

参见

  • 中断优先级别英语Interrupt priority level
  • 中断处理程序英语Interrupt handler

参考文献

  1. ^ Russinovich, Mark, , Windows IT Pro (Penton Media), October 31, 1997 [2016-08-19], (原始内容存档于2016-09-13) 
  2. ^ , Microsoft: 6–7, April 26, 2016 [2016-08-19], (原始内容存档于2016-10-22) 

irql, 是interrupt, request, level的缩写, 即中断请求级别, 是windows操作系统使用的处理器中断级别, 目录, 简介, 级别, 参见, 参考文献简介, 编辑windows操作系统运行的处理器架构中, 硬件产生信号发给可编程中断控制器, 英语, programmable, interrupt, controller, 中断控制器发送中断请求, 英语, interrupt, request, architecture, 及相应的优先级给cpu, cpu设置一个掩码, mask, 屏蔽. IRQL是Interrupt Request Level的缩写 即中断请求级别 是Windows操作系统使用的处理器中断级别 目录 1 简介 2 级别 3 API 4 参见 5 参考文献简介 编辑Windows操作系统运行的处理器架构中 硬件产生信号发给可编程中断控制器 英语 Programmable Interrupt Controller 中断控制器发送中断请求 英语 Interrupt request PC architecture IRQ 及相应的优先级给CPU CPU设置一个掩码 mask 屏蔽低优先级的其他中断请求到挂起状态 pending state 直到CPU释放控制给中断控制器 如果到来的中断有更高优先级 那么当前中断被挂起 CPU处理高优先级的中断 1 Windows把硬件中断与软件中断都映射到内部的中断表内 这就是中断请求级别IRQL 多核处理器的每个内核有自己单独的IRQL 异步过程调用 用户态线程 内核模式操作都可以被中断 因此它们的IRQL低于线程调度器 或称分派器 2 级别 编辑在DDK帮助文档中有IRQL的级别 IRQL 宏 描述软件IRQL 0 PASSIVE LEVEL 最低级别 没有被屏蔽的中断 线程执行用户模式 可以访问分页内存 LOW LEVEL0 intermediate level 运行在临界区内的线程 调用KeGetCurrentIrql返回PASSIVE LEVEL 调用KeAreApcsDisabled来检查是否在临界区内 在本层或更高层的驱动程序不能suspended 1 APC LEVEL 异步调用层 当有异步过程调用APC发生时 处理器提升到APC级别 因而就屏蔽了其它APC 可以访问分页内存 用KeAcquireFastMutex与KeReleaseFastMutex函数调用可以进入 退出本层 2 DISPATCH LEVEL 分发派遣层 DPC和更低的中断被屏蔽 不能访问分页内存 因为缺页中断也是在这个层 线程调度器也在此层 调度时只考虑优先级 因此APC LEVEL上的线程被阻塞后 可以调度执行PASSIVE LEVEL线程 硬件IRQL 3 26 DIRQL Device IRQL 设备IRQL 几乎所有的中断被屏蔽27 PROFILE LEVEL 使用PRILFILE的定时器28 CLOCK1 LEVEL 未在X86使用CLOCK2 LEVEL 内部定时器2SYNCH LEVEL 同步层29 IPL LEVEL 中断内部处理层30 POWER LEVEL 电源故障层31 HIGH LEVEL 最高中断层API 编辑内核函数KeGetCurrentIRQL取得处理器当前的IRQL 参见 编辑中断优先级别 英语 Interrupt priority level 中断处理程序 英语 Interrupt handler 参考文献 编辑 Russinovich Mark Inside NT s Interrupt Handling Windows IT Pro Penton Media October 31 1997 2016 08 19 原始内容存档于2016 09 13 Scheduling Thread Context and IRQL Microsoft 6 7 April 26 2016 2016 08 19 原始内容存档于2016 10 22 取自 https zh wikipedia org w index php title IRQL amp oldid 67863257, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。