简单的驱动程序开发.ppt

简单的驱动程序开发.ppt

ID:52339923

大小:243.06 KB

页数:22页

时间:2020-04-04

简单的驱动程序开发.ppt_第1页
简单的驱动程序开发.ppt_第2页
简单的驱动程序开发.ppt_第3页
简单的驱动程序开发.ppt_第4页
简单的驱动程序开发.ppt_第5页
资源描述:

《简单的驱动程序开发.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、网络操作系统简单的驱动程序开发简单的驱动程序开发Windows驱动程序中重要的数据结构设备的层次结构WDM驱动程序的基本结构驱动程序的编译和安装作业:一个简单的U盘过滤驱动程序2Windows驱动程序中重要的数据结构Windows驱动程序中重要的数据结构驱动程序对象(DRIVER_OBJECT)设备对象(DEVICE_OBJECT)设备扩展(DEVICE_EXTENSION)3驱动程序对象每个驱动程序都有惟一的驱动程序对象与之对应,驱动程序对象是在驱动加载的时候,由内核的对象管理器创建。驱动程序对象使用DRIVER_OBJECT数据结构表示。驱动

2、程序对象在DriverEntry函数中初始化。Windows驱动程序中重要的数据结构4驱动程序对象的定义typedefstruct_DRIVER_OBJECT{CSHORTType;CSHORTSize;PDEVICE_OBJECTDeviceObject;ULONGFlags;PVOIDDriverStart;ULONGDriverSize;PVOIDDriverSection;PDRIVER_EXTENSIONDriverExtension;UNICODE_STRINGDriverName;PUNICODE_STRINGHardwareDat

3、abase;PFAST_IO_DISPATCHFastIoDispatch;PDRIVER_INITIALIZEDriverInit;PDRIVER_STARTIODriverStartIo;PDRIVER_UNLOADDriverUnload;PDRIVER_DISPATCHMajorFunction[IRP_MJ_MAXIMUM_FUNCTION+1];}DRIVER_OBJECT;typedefstruct_DRIVER_OBJECT*PDRIVER_OBJECT;5Windows驱动程序中重要的数据结构驱动程序对象的布局6Windows驱

4、动程序中重要的数据结构设备对象每个设备都有一个设备对象,由驱动程序对象创建。设备对象使用DEVICE_OBJECT数据结构表示,用于保存设备特征和状态信息。7Windows驱动程序中重要的数据结构DEVICE_OBJECT数据结构定义typedefstruct_DEVICE_OBJECT{…struct_DRIVER_OBJECT*DriverObject;struct_DEVICE_OBJECT*NextDevice;struct_DEVICE_OBJECT*AttachedDevice;struct_IRP*CurrentIrp;ULONGF

5、lags;struct_DEVOBJ_EXTENSION*DeviceObjectExtension;…}DEVICE_OBJECT;typedefstruct_DEVICE_OBJECT*PDEVICE_OBJECT;8设备对象的结构9Windows驱动程序中重要的数据结构设备扩展设备对象记录通用的设备信息,而设备扩展结构中记录与设备相关的特殊信息,通常包括:设备对象的反向指针设备状态或驱动环境信息中断对象指针设备扩展是驱动程序专用的,其结构必须在驱动程序头文件中定义。10设备的层次结构Windows的驱动程序模型是层次结构的垂直层次结构水平层

6、次结构11设备的层次结构驱动程序的垂直层次结构通过分层结构,一个设备可以附加在另一个设备之上。设备的创建顺序是先创建底层PDO,再创建高层FDO,即从底层设备到高层设备,中间可能夹杂着各种过滤型驱动程序。设备对象由驱动程序创建,即每层设备对应着不同的驱动程序。底层设备对象通过AttachedDevice来寻找上层设备对象若设备的AttachedDevice指针为空,则说明已经是设备堆栈的顶部。上层设备对象通过在设备扩展中记录低一层的设备对象,从而可以找到下一层的设备对象。12设备的层次结构设备的垂直结构13设备的层次结构驱动程序的水平层次结构由同

7、一驱动程序创建的设备对象之间具有水平层次关系。在水平层次关系中,驱动程序创建第一个设备对象,每一个设备通过NextDevice指针指向下一个设备对象。14设备的层次结构设备的水平结构15WDM驱动程序的基本结构WDM驱动程序的基本结构头文件WDM驱动的入口程序AddDevice例程对PnP的处理对PnP的缺省处理对IRP_MN_REMOVE_DEVICE的处理缺省分发例程卸载例程16驱动程序的编译和安装使用DDK编译环境DDK编译环境提供两种编译版本:checked版本和free版本。Checked版本是未优化的调试版本,包含调试符号,支持源代码

8、级调试。Free版本是最终的发行版本,进行了必要的优化。DDK编译环境调用build工具编译和链接代码。编译驱动程序需要两个脚本文件:m

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。