32位微机高级接口技术.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
32位微机高级接口技术 微型计算机接口技术 2 32位微机高级接口技术 实模式环境下,由于DOS操作系统将核心层开放,所以可以直接对I/O端口编程。 32位微机大多运行在保护模式下,一般采用的是32位的WINDOWS操作系统,用户程序被规定只能在系统3级 (用户级)运行,为了保护系统,运行于3级的程序不能使用0级(核心级)的功能,这样就不能直接对接口进行编程了。当需要直接对接口编程时,比如编写设备驱动程序,就需要从用户级进入到核心级,并能够在保护模式下对接口编程,这样就需要了解虚拟设备驱动程序(VxD)知识和WINDOWS驱动程序模型(WDM)。 3 1.1虚拟设备驱动程序VxD基础 VxD(Virtual x Device)是windows 9x下运行在系统级(0级)的驱动程序模型,是运行在任何虚拟机以外的,可以直接访问硬件设备,并为系统中处于3级的应用程序提供操作硬件设备的应用程序接口。 VxD的开发可以使用汇编语言,也可以使用C/C++语言。使用C/C++开发VxD可以使用Windows 9x DDK工具,也可以使用NuMega提供的VtoolsD。 4 1.1虚拟设备驱动程序VxD基础 VxD文件的结构,通常VxD文件由五个段组成 VxD_CODE 保护模式下的代码段,一般包括设备驱动程序的控制程序、例程回调、服务程序和应用程序接口(API),这个段也称为_LTEXT。 VxD_DATA 保护模式下的数据段,一般这个段包括设备驱动程序的设备描述块(DDB)、服务表以及一些全局变量,这个段也命名为_LDATA。 VxD_ICODE 保护模式下的初始化代码段,包括一些初始化时使用的服务程序和过程,虚拟机管理器(VMM)在初始化完成后就将这个段丢弃。这个段又名为_ITEXT。 5 1.1虚拟设备驱动程序VxD基础 VxD文件的结构,通常VxD文件由五个段组成 VxD_IDATA 保护模式下的初始化数据段,包括一些初始化时使用的数据段,虚拟机管理器(VMM)在初始化完成后将这个段丢弃,这个段又命名为_IDATA。 VxD_REAL_INIT 包括实模式下的初始化资料和代码,虚拟机管理器(VMM) 在加载其他VxD之前,最先装入这个代码段,先调用这个过程,执行完该过程返回之后将这个段丢弃。这个段又命名为_RTEXT。 除了实模式下VxD_REAL_INIT段采用16位段之外,其他4个段都是32位保护模式下的平板模式(flat model)的段,都有32位偏移地址,在这些段里,可以访问4GB地址空间中任意地址的内存。 6 1.1虚拟设备驱动程序VxD基础 VxD设备描述符块DDB的结构 虚拟机管理器(VMM)是通过VxD的设备描述符块DDB来识别VxD的,每一个VxD都有一个设备描述符块,提供指向VxD的主要入口指针。 DDB的结构如表12.1所示。 VxD中的消息 虚拟机管理器(VMM)对VxD的调用是通过DDB中的VxD的主入口函数地址实现的。如果虚拟机管理器(VMM)要通知VxD进行相关的操作,就需要提供大量的消息与VxD进行通信。VxD程序主要就是对这些消息的处理。因为VxD运行在0级,因此可以直接访问I/O、内存和中断等。 7 1.1虚拟设备驱动程序VxD基础 VxD中的消息 VxD的消息基本分为8类:系统初始化,系统中止,VM初始化,VM结束,VM状态改变,初始化线程,线程结束以及其他类。 VMM向VxD发送的通知消息如表12.2所示。 8 1.1虚拟设备驱动程序VxD基础 VxD的加载和卸载 VxD可以被动态或静态加载,目前大部分VxD都还是静态加载。 静态加载的VxD是在WINDOWS初始化时加载,在WINDOWS结束时卸载。在WINDOWS初始化阶段,静态加载的VxD会收到三个消息,分别对应WINDOWS初始化的三个阶段。 动态加载的VxD是在一个应用程序和其它VxD的控制下加载和卸载的。由于在系统发送系统初始化消息的时候,动态加载的VxD还没有加入系统,所以动态加载的VxD无法接收到系统初始化时的消息。 9 1.2 windows驱动程序模型WDM基础 Windows98和Windows2000引入了WDM驱动程序架构。 WDM(Win32 Driver Mode),即Win32驱动程序模型,是微软推出的全新驱动程序模式,这种模式可以简化驱动程序的开发,实现对新硬件的支持,减少了开发驱动程序的数量和复杂性。 除了通用的平台服务和扩展外,WDM还实现了一个模块化的和分层次类型的微型驱动程序结构。类型驱动程序实现了支持通用总线、协议或设备类所需的功能性接口。类型驱动程序的一般特性是为逻辑设备的命令设置、协议、代码重用所需的总线接口实现标准化提供必要的条件。 10 1.2 windows驱动程序模型

文档评论(0)

151****7975 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档