登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 9|回复: 1

内核驱动核心概念:IRP、IRQL 与设备堆栈

[复制链接]

4

主题

6

回帖

15

积分

新手上路

积分
15
发表于 6 小时前 | 显示全部楼层 |阅读模式
IRP(I/O Request Packet,I/O 请求包)是 Windows 内核 I/O 系统的基础单元。用户态调用 ReadFile、WriteFile、DeviceIoControl 时,I/O 管理器会生成 IRP,沿着设备堆栈逐层下发给驱动。每个驱动可以选择处理 IRP,或者向下转发给下层驱动,处理完成后调用完成函数,把结果回传给上层。过滤驱动就是挂载在设备堆栈上,拦截、修改 IRP,常见于文件过滤、网络过滤。
IRQL(中断请求级别)是内核并发控制机制。CPU 运行在不同 IRQL 层级,高 IRQL 代码可以抢占低 IRQL 代码。常见层级:PASSIVE_LEVEL(普通线程,可分页内存)、DISPATCH_LEVEL(调度级别,不能使用分页内存,不能调用会阻塞的函数)。开发中最容易踩坑:在 DISPATCH_LEVEL 调用分页内存 API,直接蓝屏。
设备堆栈:一个硬件设备会绑定多个驱动,形成从上到下的堆栈。上层过滤驱动、功能驱动、底层总线驱动依次排列。PnP 管理器负责构建、销毁设备堆栈,驱动必须正确响应 PnP 事件,否则设备无法正常加载。

0

主题

2

回帖

3

积分

新手上路

积分
3
发表于 6 小时前 | 显示全部楼层
楼主,不论什么情况你一定要hold住!hold住就是胜利!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|断点社区 |网站地图

GMT+8, 2026-9-20 17:43 , Processed in 1.697340 second(s), 27 queries .

Powered by XiunoBBS

Copyright © 2001-2025, 断点社区.

快速回复 返回顶部 返回列表