经典驱动程序结构
来源:互联网 发布:sqlserver分页 编辑:程序博客网 时间:2024/05/01 18:08
关于驱动程序的结构:
1. 应用层:通过调用交互层的函数得到驱动程序对应的文件路径,名称和DOS名称,并将这个驱动程序注册为服务程序,然后在交互层用函数CreateFile并传入驱程的DOS名称打开驱程,现在就可以调用交互层的WriteIo(自定义)函数对驱动程序发出指令。
2. 交互层:它的WriteIo函数其实只是对系统函数DeviceIoControl的封装。并且它通过该函数实现对驱程的控制。驱程在派遣函数里面通过:
IoGetCurrentIrpStackLocation(Irp) ->Parameters.DeviceIoControl.IoControlCode可以得到
上层传过来的控制码信息,通过分析这个信息,从Irp->AssociatedIrp.SystemBuffer中
取得缓冲区指针,从irpStack->Parameters.DeviceIoControl.InputBufferLength和
irpStack->Parameters.DeviceIoControl.outputBufferLength中取得缓冲区大小来进行处理。
3. 驱动层:按照经典WDM模型,DriveEntry是它的入口,dispatch是它的派遣例程,
相当于一个窗口的消息循环,注意中间重要的是IRP的生成和传递。
- 经典驱动程序结构
- 【原创】【专栏】《Linux设备驱动程序》--- LDD3源码目录结构和源码分析经典链接
- 【原创】【专栏】《Linux设备驱动程序》--- LDD3源码目录结构和源码分析经典链接
- 【原创】【专栏】《Linux设备驱动程序》--- LDD3源码目录结构和源码分析经典链接
- Vxworks驱动程序的结构
- 驱动程序的基本结构
- 驱动程序的层次结构
- 嵌入式linux驱动程序结构
- 驱动程序的结构
- 驱动程序结构学习
- Vxworks驱动程序的结构
- 驱动程序的基本结构
- 结构化设备驱动程序
- 驱动程序的基本结构
- 3.驱动程序结构
- 结构化设备驱动程序
- 驱动程序层次结构、PIRP结构、IO_STACK_LOCATION结构
- mini2440 led驱动程序经典分析
- 关于RIT
- Neural Network archetype in C++
- 又回嵌入式领域
- VC++开发BHO插件——定制你的浏览器
- [幽默网文]不相信自己的耳朵听错了
- 经典驱动程序结构
- 日本再生利用废旧电脑
- 正则表达式系统教程
- 正则表达式基础知识
- 主数据管理经验谈
- 完全用户自定义数据处理的探讨
- [诗歌]森林与海
- 完全用户自定义数据处理的探讨2
- [翻译]-WinCE 程序设计 (3rd 版)--第3章 输入:键盘、鼠标和触摸屏--概述