1 / 22
文档名称:

设备驱动程序开发.ppt

格式:ppt   页数:22
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

设备驱动程序开发.ppt

上传人:管理资源吧 2012/2/7 文件大小:0 KB

下载得到文件列表

设备驱动程序开发.ppt

文档介绍

文档介绍:设备驱动程序开发
什么是设备驱动程序
设备驱动程序是与硬件设备进行通信的系统程序。由于设备驱动程序的存在,大多数操作系统上的应用程序都是与硬件无关的,应用程序的开发者和最终用户通常都不必关心底层的硬件到底是如何工作的。Wince操作系统之所以能够支持各种各样的硬件设备,毫无疑问,是因为对每一款硬件设备,都有其对应的设备驱动程序。
设备驱动程序是操作系统与硬件交互的方式,是连接硬件与操作系统之间的桥梁。通常,设备驱动程序在操作系统与硬件之间扮演着特殊的角色,它们是一个个独立的“黑盒子”,使某个硬件可响应一些定义良好的编程接口。这组标准化的接口通常由操作系统定义,通常与驱动程序的类型相关而与具体的硬件无关。
设备驱动程序开发
操作系统没有内置支持的硬件
扩展已有的驱动功能
提供软件层面的服务
何时编写设备驱动程序
编写驱动程序的要素
要了解驱动程序所针对的硬件
要了解目标操作系统下驱动的工作机制
要了解驱动程序的模型
驱动分类
设备驱动程序控制硬件
对于某些硬件,是没有驱动的
CPU
内存
Wince驱动分类
本地设备驱动
流接口设备驱动
分层驱动程序
单体驱动程序
Audio Drivers
Battery Drivers
Block Drivers
Bluetooth HCI Transport Driver
Direct3D Device Driver Interface
DirectDraw Display Drivers
Display Drivers
DVD-Video Renderer
IEEE 1394 Drivers
Keyboard Drivers
Notification LED Drivers
Parallel Port Drivers
PC Card Drivers
Printer Drivers
Serial Port Drivers
Smart Card Drivers
Stream Interface Drivers
Touch Screen Drivers
USB Drivers
参见文档:
Driver Development -> Driver Categories
驱动分类–详细
OEM硬件
单块驱动
(显示)
GWE 子系统
设备管理器
MDD
PDD
MDD
PDD
DDI
DDSI
DDSI
编程模型
硬件所必须的驱动程序,这些驱动程序通常由设计OEM厂商进行设计。
如:键盘,触摸屏。
可能不支持一般的驱动接口,也有可能带有扩展的接口或者完全提供一个用户自定义的接口。
本地设备驱动通常需要针对具体的操作系统进行小幅改动。
本地设备驱动
流接口设备驱动
具有定制接口和流接口的驱动程序。流接口驱动程序最终链接生成DLL文件,用来实现一组固定的函数(称为流接口函数),流接口驱动借助于文件系统调用从设备管理器或应用程序获得命令。如:串口驱动、音频驱动等
流接口驱动程序遵循统一的函数接口
函数名
说明
XXX_Close
关闭以hOpenContext标识的设备上下文。
XXX_Deinit
由设备管理器调用来删除对某一设备的初始化信息。
XXX_Init
由设备管理器调用来对某一设备进行初始化。
XXX_IOControl
向设备发送命令
XXX_Open
打开一个设备以进行读、写或者既读又写。当应用调用CreateFile来打开某一个设备文件名时将间接地调用这一个函数。
XXX_PowerDown
停止向设备供电。只有在软件控制下关机的设备上才可用。
XXX_PowerUp
恢复向设备供电
XXX_Read
从设备读取数据
XXX_Seek
在设备中移动数据指针
XXX_Write
向设备写数据
流接口设备驱动
大多数的设备驱动由设备管理器()进程在系统启动时进行加载。
另一方面,。这些驱动包括显示器驱动()、键盘驱动、鼠标驱动、触摸屏驱动等。
驱动的加载过程
[HKEY_LOCAL_ MACHINE]\Drivers项下检查一个字符串,其值为 RootKey,传统地,其名字为 BuiltIn 。
然后设备管理器在进行初始化时使用注册信息检查器为它需要安装的各个驱动读取值为RootKey的键。
驱动的加载过程