Windows设备驱动程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
பைடு நூலகம்
使用WinDDK开发设备驱动,仍然需要对系统有充分的了解,开发难 度仍较大。
3、利用第3方提供的开发工具
为便于开发,许多软件公司推出了驱动开发工具,典型的有
在Windows3.1~Windows95时代,有VtoolsD。 使用VtoolsD,就象使用MFC编写VC程序一样 ,通过一系列的可视化 操作,自动生成所希望的设备驱动程序框架;再在框架中添加需要的代 码。 目前,VtoolsD仍然不失为一种“傻瓜”型的开发工具。但,它不支 持WDM型驱动开发,不支持USB、NET、1394等设备驱动开发,用途受 到限制。 在Windows98以后,出现了DriverWorks、WinDriver等。 建立在WinDDK基础上,用可视化操作,降低了开发难度。 DriverWorks是目前应用的主流。
2、基于WinDDK的编程
WinDDK(Windows Driver Development Kit) 即:Windows设备驱动 开发工具箱。
在Windows3.1~Windows95时代,网络、USB、1394等接口还未得到 广泛应用,一般设备的驱动程序大多为 . VxD 形式。 Windows98/2000问世后,Microsoft推出了一种新型的设备驱动模型, 即:WDM(Windows Driver Model)。利用DDK可开发网络、USB、 1394等接口,即插即用、电源管理等设备的驱动。
第二节 。
VtoolsD开发工具简介
第三节 。
DriverWorks开发工具简介
第5节 Windows设备驱动程序开发导引
第一节 设备驱动程序的基本概念 在Windows系统下,用户程序不直接访问硬件,而是通过设备驱动 程序来操作硬件。 设备驱动程序(Virtual Device Driver),通常记为 VxD。
在VxD程序中,可以无限制地访问硬件,包括任意地址的内存、中 断、I/O接口。
三、怎样开发设备驱动程序?
有多种开发方法,主要为:
1、用32位CPU汇编语言直接编程,要点如下: 使程序进入保护模式; 设置系统描述符,使程序运行于特权级0(ring0); 硬件直接访问 : 中断: 中断描述符表; I/O: I/O影射位图; 内存: 基于页目录项和页表项的内存分页管理机制 这种方法要求对保护模式下的CPU运行机制了如指掌,对日益智能 化、规模庞大的I/O接口芯片要熟悉,对Windows操作系统的内核要全面 了解。 开发难度大。
一、 VxD程序的运行方式
文件形式为: .vxd、.dll、.exe。但本身不能独立运行,须由系 统加载,供使用设备的用户程序调用。 运行于Windows的核心层(ring0)。
二、怎样加载设备驱动程序?
有两种加载方式:
静态加载 对于系统中使用频繁的设备,如显示器、键盘、鼠标等,其设备驱 动程序在Windows系统启动时,被加载到内存,以便快速调用。 一旦加载,永驻内存,直到关机。 加载方法:在注册表中的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Vxd 键值下。 动态加载 需要时由用户程序加载,用毕卸载。
四、设备驱动开发工作的发展前景如何? 那些场合需要驱动开发? 内核级程序开发。如系统登陆前希望运行的程序、系统优化工具 (如超级兔子); 开发新型设备与计算机连接的接口(即插即用型)。如板卡驱动 (视频采集卡、视频分配卡、数码音视频设备与计算机连接的驱动等); 病毒检测与杀毒; …… 工作性质如何? 设备驱动开发工作很艰苦,脑力劳动强度大; 技术层次高,需要长期的开发经验积累。目前能做驱动的工程师不 多,薪酬高。
相关文档
最新文档