- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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驱动程序模型
您可能关注的文档
最近下载
- 临床输血操作技术规范、输血制度(2025版).pptx VIP
- 部编版四年级上学期语文期末整理分类复习强化练习题〔有答案〕.doc VIP
- 公路养护及占道施工作业安全检查表、人员、车辆、机具设备管理用表、进、出场登记表、安全设施图表.pdf VIP
- 医院设备故障应急处理流程.docx VIP
- 植物学课程课件:植物系统学与分子进化.ppt VIP
- 部编版语文四年级上册第16课《麻雀》 配套练习(含解析).pdf VIP
- 82页精益制造数字化转型智能工厂三年规划建设方案PPT.pptx VIP
- 成人癫痫持续状态护理专家共识解读PPT课件.pptx VIP
- JSCC B系列变频器产品手册.pdf VIP
- 认识医生和护士幼儿园助教幼儿园医学科普.pptx VIP
原创力文档


文档评论(0)