学习windows驱动(框架和IO请求)
来源:互联网 发布:如何进入it行业 知乎 编辑:程序博客网 时间:2024/06/14 09:37
框架处理IO请求的过程是怎样子的?
- 应用程序调用Kernel32的接口函数ReadFile读。
- ReadFile调用Ntdll.dll里的NtReadFile函数,进入内核调用内核服务NtReadFile,IO管理器接管读操作处理。
- IO管理器为读请求构造IRP_MJ_READ类型的IRP。
- IO管理器找到由WDF框架创建的设备对象(DEVICE_OBJECT),将IRP发送到它的读分发函数(DispatchRead)。
- WDF框架收到IRP后,查看WDF驱动是不是注册了读回调,如果注册了就把IRP封装成一个IO请求对象(WDFREQUEST),把WDFREQUEST放入WDF驱动指定队列。
- 队列把IO请求对象发送给WDF驱动处理,WDF驱动注册的读回调被执行。
框架收到IO管理器给它的IRP请求后,将IRP封装在WDFREQUEST对象里,作为参数调用驱动注册事件回调函数。
WDFREQUEST是怎么创建的?
IO管理器把用户请求封装成IRP对象发送到指定设备栈。
首先得到的是WDF框架,框架对IRP做一定处理后,检查WDF驱动是不是注册了想要的事件回调,如果没有,框架就将IRP发送给设备栈的下层设备,IRP将得到处理,并最终返回IO管理器。
0 0
- 学习windows驱动(框架和IO请求)
- 学习windows驱动(创建IO请求)
- 驱动学习(1)---IRP和IO堆栈
- Windows 驱动中的IO堆栈
- Windows 驱动中的IO堆栈
- S5PV210 FIMC驱动和v4l2驱动框架学习
- S5PV210 FIMC驱动和v4l2驱动框架学习
- S5PV210 FIMC驱动和v4l2驱动框架学习
- S5PV210 FIMC驱动和v4l2驱动框架学习
- S5PV210 FIMC驱动和v4l2驱动框架学习
- S5PV210 FIMC驱动和v4l2驱动框架学习
- 学习windows驱动(PNP和电源模型)
- linux设备驱动开发学习--内存和IO访问
- socket.io框架学习
- 学习windwos驱动(IO模型)
- 学习windows驱动(驱动对象)
- Windows驱动_UMDF驱动之三UMDF取消IO完成IO访问IO类型HID驱动
- Windows内核学习笔记(一)--浅谈驱动对象、设备对象与请求
- Vi编辑器
- 判断字符串为空的方法
- Cgroup框架分析
- 复选框(checkbox)和单选框(radio)与文字居中对齐
- 如何面对客户的紧急需求
- 学习windows驱动(框架和IO请求)
- Cordys HTML5 多语言代码 解读
- Android Thinkandroid学习之 http请求
- 深入JVM系列(二)之GC机制、收集器与GC调优
- quick-cocos2dx之特效按钮——缩放按钮
- 【objective-c】面试题和基本概念
- hbase多master
- 位图的应用
- MTK 平台 CAMERA 驱动浅析