简单驱动程序开发.pptVIP

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简单驱动程序开发

网络操作系统 简单的驱动程序开发 简单的驱动程序开发 Windows驱动程序中重要的数据结构 设备的层次结构 WDM驱动程序的基本结构 驱动程序的编译和安装 作业:一个简单的U盘过滤驱动程序 Windows驱动程序中重要的数据结构 Windows驱动程序中重要的数据结构 驱动程序对象(DRIVER_OBJECT) 设备对象(DEVICE_OBJECT) 设备扩展(DEVICE_EXTENSION) Windows驱动程序中重要的数据结构 驱动程序对象 每个驱动程序都有惟一的驱动程序对象与之对应,驱动程序对象是在驱动加载的时候,由内核的对象管理器创建。 驱动程序对象使用DRIVER_OBJECT数据结构表示。 驱动程序对象在DriverEntry函数中初始化。 驱动程序对象的定义 typedef struct _DRIVER_OBJECT {   CSHORT Type; CSHORT Size; PDEVICE_OBJECT DeviceObject; ULONG Flags; PVOID DriverStart; ULONG DriverSize; PVOID DriverSection; PDRIVER_EXTENSION DriverExtension; UNICODE_STRING DriverName; PUNICODE_STRING HardwareDatabase; PFAST_IO_DISPATCH FastIoDispatch;   PDRIVER_INITIALIZE DriverInit;   PDRIVER_STARTIO DriverStartIo;   PDRIVER_UNLOAD DriverUnload; PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION+1];   } DRIVER_OBJECT; typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT; Windows驱动程序中重要的数据结构 驱动程序对象的布局 Windows驱动程序中重要的数据结构 设备对象 每个设备都有一个设备对象,由驱动程序对象创建。 设备对象使用DEVICE_OBJECT数据结构表示,用于保存设备特征和状态信息。 Windows驱动程序中重要的数据结构 DEVICE_OBJECT数据结构定义 typedef struct _DEVICE_OBJECT { … struct _DRIVER_OBJECT *DriverObject; struct _DEVICE_OBJECT *NextDevice; struct _DEVICE_OBJECT *AttachedDevice; struct _IRP *CurrentIrp; ULONG Flags; struct _DEVOBJ_EXTENSION *DeviceObjectExtension; … } DEVICE_OBJECT; typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT; 设备对象的结构 Windows驱动程序中重要的数据结构 设备扩展 设备对象记录通用的设备信息,而设备扩展结构中记录与设备相关的特殊信息,通常包括: 设备对象的反向指针 设备状态或驱动环境信息 中断对象指针 设备扩展是驱动程序专用的,其结构必须在驱动程序头文件中定义。 设备的层次结构 Windows的驱动程序模型是层次结构的 垂直层次结构 水平层次结构 设备的层次结构 驱动程序的垂直层次结构 通过分层结构,一个设备可以附加在另一个设备之上。 设备的创建顺序是 先创建底层PDO,再创建高层FDO,即从底层设备到高层设备,中间可能夹杂着各种过滤型驱动程序。 设备对象由驱动程序创建,即每层设备对应着不同的驱动程序。 底层设备对象通过AttachedDevice来寻找上层设备对象 若设备的AttachedDevice指针为空,则说明已经是设备堆栈的顶部。 上层设备对象通过在设备扩展中记录低一层的设备对象,从而可以找到下一层的设备对象。 设备的层次结构 设备的垂直结构 设备的层次结构 驱动程序的水平层次结构 由同一驱动程序创建的设备对象之间具有水平层次关系。 在水平层次关系中,驱动程序创建第一个设备对象,每一个设备通过NextDevice指针指向下一个设备对象。 设备的层次结构 设备的

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档