“IRQL not less or equal” 是一个常见的 Windows 内核模式错误代码,通常出现在 Windows 内核模式下,表示 当前的 IRQL(Interrupt Request Level)低于或等于 0,这在 内核模式下是不允许的。
✅ 什么是 IRQL?
IRQL(Interrupt Request Level)是 Windows 中用于表示中断处理优先级的值,范围从 0 到 5(或更高,具体版本不同)。
- IRQL 0:最高优先级(内核模式)
- IRQL 1:高优先级
- IRQL 2:中优先级
- IRQL 3:低优先级
- IRQL 4:更低优先级
- IRQL 5:最低优先级(用户模式)
❌ 为什么出现 “IRQL not less or equal” 错误?
这个错误通常出现在以下场景:
- 内核模式代码中尝试在 IRQL < 0 的时候执行操作(比如在用户模式下访问内核资源)。
- 在内核模式中执行了不合适的操作,比如:
- 在 IRQL < 0 的时候尝试访问内存
- 在 IRQL < 0 的时候尝试操作内核对象
- 在 IRQL < 0 的时候尝试调用内核函数