《WindowCE驱动程序》由会员分享,可在线阅读,更多相关《WindowCE驱动程序(22页珍藏版)》请在金锄头文库上搜索。
1、Windows CE驱动程序驱动程序Windows CE驱动程序驱动程序lWindows CE驱动程序模型驱动程序模型lWindows CE驱动程序的宿主程序驱动程序的宿主程序lWindows CE驱动程序的类型驱动程序的类型lWindows CE驱动程序的分类驱动程序的分类l示例驱动程序的代码示例驱动程序的代码Windows CE驱动程序模型驱动程序模型l桌面桌面Windows驱动程序模型驱动程序模型 操作系统在启动后对硬件进行延迟加载,但依然操作系统在启动后对硬件进行延迟加载,但依然操作系统在启动后对硬件进行延迟加载,但依然操作系统在启动后对硬件进行延迟加载,但依然把驱动程序加载到操作系统
2、的内核空间中。驱动程把驱动程序加载到操作系统的内核空间中。驱动程把驱动程序加载到操作系统的内核空间中。驱动程把驱动程序加载到操作系统的内核空间中。驱动程序工作在系统的地址空间内,实现了驱动的动态加序工作在系统的地址空间内,实现了驱动的动态加序工作在系统的地址空间内,实现了驱动的动态加序工作在系统的地址空间内,实现了驱动的动态加载。载。载。载。桌面桌面桌面桌面WindowsWindows驱动程序最早采用驱动程序最早采用驱动程序最早采用驱动程序最早采用VxDVxD( (已废弃已废弃已废弃已废弃) ),从,从,从,从Windows 2000Windows 2000开始采用开始采用开始采用开始采用WD
3、MWDM(Windows Driver Windows Driver ModelModel)模型,驱动程序调用)模型,驱动程序调用)模型,驱动程序调用)模型,驱动程序调用DDKDDK;VistaVista以及以后以及以后以及以后以及以后的版本采用的版本采用的版本采用的版本采用WDFWDF(Windows Driver Windows Driver FounationFounation)是对是对是对是对WDMWDM的建模与封装,但隐藏了更多的细节,但的建模与封装,但隐藏了更多的细节,但的建模与封装,但隐藏了更多的细节,但的建模与封装,但隐藏了更多的细节,但降低了开发难度。降低了开发难度。降低了开
4、发难度。降低了开发难度。Windows CE驱动程序模型驱动程序模型l桌面桌面Windows驱动程序模型驱动程序模型 操作系统在启动后对硬件进行延迟加载,但依然操作系统在启动后对硬件进行延迟加载,但依然操作系统在启动后对硬件进行延迟加载,但依然操作系统在启动后对硬件进行延迟加载,但依然把驱动程序加载到操作系统的内核空间中。驱动程把驱动程序加载到操作系统的内核空间中。驱动程把驱动程序加载到操作系统的内核空间中。驱动程把驱动程序加载到操作系统的内核空间中。驱动程序工作在系统的地址空间内,实现了驱动的动态加序工作在系统的地址空间内,实现了驱动的动态加序工作在系统的地址空间内,实现了驱动的动态加序工作
5、在系统的地址空间内,实现了驱动的动态加载。载。载。载。桌面桌面桌面桌面WindowsWindows驱动程序最早采用驱动程序最早采用驱动程序最早采用驱动程序最早采用VxDVxD( (已废弃已废弃已废弃已废弃) ),从,从,从,从Windows 2000Windows 2000开始采用开始采用开始采用开始采用WDMWDM(Windows Driver Windows Driver ModelModel)模型,驱动程序调用)模型,驱动程序调用)模型,驱动程序调用)模型,驱动程序调用DDKDDK;VistaVista以及以后以及以后以及以后以及以后的版本采用的版本采用的版本采用的版本采用WDFWDF(
6、Windows Driver Windows Driver FounationFounation)是对是对是对是对WDMWDM的建模与封装,但隐藏了更多的细节,但的建模与封装,但隐藏了更多的细节,但的建模与封装,但隐藏了更多的细节,但的建模与封装,但隐藏了更多的细节,但降低了开发难度。降低了开发难度。降低了开发难度。降低了开发难度。Windows CE驱动程序模型驱动程序模型l什么是设备驱动程序什么是设备驱动程序 设备驱动程序是与硬件设备进行信息交互的系统设备驱动程序是与硬件设备进行信息交互的系统设备驱动程序是与硬件设备进行信息交互的系统设备驱动程序是与硬件设备进行信息交互的系统程序,应用程序
7、通过操作系统提供的驱动程序与硬程序,应用程序通过操作系统提供的驱动程序与硬程序,应用程序通过操作系统提供的驱动程序与硬程序,应用程序通过操作系统提供的驱动程序与硬件设备交互,但应用程序与硬件设备无关。对于每件设备交互,但应用程序与硬件设备无关。对于每件设备交互,但应用程序与硬件设备无关。对于每件设备交互,但应用程序与硬件设备无关。对于每一款硬件设备,都有其对应的设备驱动程序。一款硬件设备,都有其对应的设备驱动程序。一款硬件设备,都有其对应的设备驱动程序。一款硬件设备,都有其对应的设备驱动程序。设备驱动程序是操作系统与硬件交互手段,是连接设备驱动程序是操作系统与硬件交互手段,是连接设备驱动程序是
8、操作系统与硬件交互手段,是连接设备驱动程序是操作系统与硬件交互手段,是连接硬件与操作系统之间的桥梁。驱动程序与硬件的标硬件与操作系统之间的桥梁。驱动程序与硬件的标硬件与操作系统之间的桥梁。驱动程序与硬件的标硬件与操作系统之间的桥梁。驱动程序与硬件的标准化接口由操作系统定义。准化接口由操作系统定义。准化接口由操作系统定义。准化接口由操作系统定义。应用程序将设备当作文件进行访问,通过系统调用应用程序将设备当作文件进行访问,通过系统调用应用程序将设备当作文件进行访问,通过系统调用应用程序将设备当作文件进行访问,通过系统调用与硬件交互。与硬件交互。与硬件交互。与硬件交互。Windows CE驱动程序模
9、型驱动程序模型l何时编写设备驱动程序?何时编写设备驱动程序? 操作系统没有内置支持的硬件。操作系统没有内置支持的硬件。操作系统没有内置支持的硬件。操作系统没有内置支持的硬件。扩展已有的驱动能力。扩展已有的驱动能力。扩展已有的驱动能力。扩展已有的驱动能力。提供软件层面的服务。提供软件层面的服务。提供软件层面的服务。提供软件层面的服务。l编写驱动程序的要素编写驱动程序的要素 要了解驱动程序针对的硬件工作特性。要了解驱动程序针对的硬件工作特性。要了解驱动程序针对的硬件工作特性。要了解驱动程序针对的硬件工作特性。了解目标操作系统下驱动的工作机制。了解目标操作系统下驱动的工作机制。了解目标操作系统下驱动
10、的工作机制。了解目标操作系统下驱动的工作机制。了解驱动程序的模型。了解驱动程序的模型。了解驱动程序的模型。了解驱动程序的模型。Windows CE驱动程序模型驱动程序模型l设备驱动程序控制硬件设备驱动程序控制硬件(通过端口操作通过端口操作)l对于某些硬件是不需要驱动的对于某些硬件是不需要驱动的 CPUCPU内存储器内存储器内存储器内存储器lWinCE驱动分类驱动分类本地设备驱动本地设备驱动本地设备驱动本地设备驱动 流接口设备驱动流接口设备驱动流接口设备驱动流接口设备驱动 可通过可通过可通过可通过WinCEWinCE提供的内建驱动源代码(如触摸屏驱动、显提供的内建驱动源代码(如触摸屏驱动、显提供
11、的内建驱动源代码(如触摸屏驱动、显提供的内建驱动源代码(如触摸屏驱动、显示驱动、鼠标及键盘驱动等)来学习与开发驱动程序。示驱动、鼠标及键盘驱动等)来学习与开发驱动程序。示驱动、鼠标及键盘驱动等)来学习与开发驱动程序。示驱动、鼠标及键盘驱动等)来学习与开发驱动程序。Windows CE驱动程序模型驱动程序模型lWindows CE驱动程序模型驱动程序模型在在在在Windows CEWindows CE下,所有的驱动程序都以下,所有的驱动程序都以下,所有的驱动程序都以下,所有的驱动程序都以用户态用户态用户态用户态下的下的下的下的DLLDLL文件文件文件文件形式存在。形式存在。形式存在。形式存在。编
12、写编写编写编写Windows CEWindows CE驱动程序用到的方法及工具与编写其驱动程序用到的方法及工具与编写其驱动程序用到的方法及工具与编写其驱动程序用到的方法及工具与编写其他任何一个普通的他任何一个普通的他任何一个普通的他任何一个普通的DLLDLL一样。一样。一样。一样。 Windows CEWindows CE驱动驱动开开开开发发可可可可以使用以使用以使用以使用Platform BuilderPlatform Builder或者或者或者或者Visual Studio2005Visual Studio2005以上版以上版以上版以上版本开本开本开本开发发。对对于于于于WinCE6.0,
13、 Platform BuilderWinCE6.0, Platform Builder最最最最为为一个插件一个插件一个插件一个插件被集成到被集成到被集成到被集成到VS2005VS2005中,中,中,中,VS2005VS2005可以可以可以可以进进行系行系行系行系统统定制开定制开定制开定制开发发以及以及以及以及应应用程序开用程序开用程序开用程序开发发。与所有的与所有的与所有的与所有的Win32 DLLWin32 DLL一样,一样,一样,一样,Windows CEWindows CE驱动程序驱动程序驱动程序驱动程序DLLDLL中的代码被一些进程动态加载到地址空间,运行在用户态中的代码被一些进程动态
14、加载到地址空间,运行在用户态中的代码被一些进程动态加载到地址空间,运行在用户态中的代码被一些进程动态加载到地址空间,运行在用户态下。下。下。下。Windows CE驱动程序模型驱动程序模型lWindows CE驱动程序作为用户态的驱动程序作为用户态的DLL来来实现的优点:实现的优点:给操作系统和驱动程序带来了很大的灵活性。操作系统给操作系统和驱动程序带来了很大的灵活性。操作系统给操作系统和驱动程序带来了很大的灵活性。操作系统给操作系统和驱动程序带来了很大的灵活性。操作系统可在运行时动态地加载所需要的驱动程序,可轻松实现外可在运行时动态地加载所需要的驱动程序,可轻松实现外可在运行时动态地加载所需
15、要的驱动程序,可轻松实现外可在运行时动态地加载所需要的驱动程序,可轻松实现外设的设的设的设的即插即用即插即用即插即用即插即用(Plug & Play)(Plug & Play)。驱动程序放在用户态而不是核心态来实现,也增强了系驱动程序放在用户态而不是核心态来实现,也增强了系驱动程序放在用户态而不是核心态来实现,也增强了系驱动程序放在用户态而不是核心态来实现,也增强了系统的稳定性。驱动程序的崩溃不会影响到操作系统内核。统的稳定性。驱动程序的崩溃不会影响到操作系统内核。统的稳定性。驱动程序的崩溃不会影响到操作系统内核。统的稳定性。驱动程序的崩溃不会影响到操作系统内核。驱动程序放在用户态下可给驱动开
16、发人员提供便利。驱动程序放在用户态下可给驱动开发人员提供便利。驱动程序放在用户态下可给驱动开发人员提供便利。驱动程序放在用户态下可给驱动开发人员提供便利。Windows CE驱动程序的宿主驱动程序的宿主l如果要运行如果要运行如果要运行如果要运行DLLDLL中的代码,那么必须先有一个中的代码,那么必须先有一个中的代码,那么必须先有一个中的代码,那么必须先有一个EXEEXE进程,把该进程,把该进程,把该进程,把该DLLDLL加载道自己的地址空间内,然后才可加载道自己的地址空间内,然后才可加载道自己的地址空间内,然后才可加载道自己的地址空间内,然后才可执行执行执行执行DLLDLL中的代码。中的代码。
17、中的代码。中的代码。lWindows CEWindows CE的驱动程序也必须被的驱动程序也必须被的驱动程序也必须被的驱动程序也必须被其他其他其他其他EXEEXE宿宿宿宿主主主主加载加载加载加载Device.exeDevice.exe 又称做设备管理器。负责加载和管理又称做设备管理器。负责加载和管理又称做设备管理器。负责加载和管理又称做设备管理器。负责加载和管理Windows CEWindows CE下绝大多数的设备驱动程序。下绝大多数的设备驱动程序。下绝大多数的设备驱动程序。下绝大多数的设备驱动程序。GWES.exeGWES.exe负责加载一些与图形界面相关的负责加载一些与图形界面相关的负责
18、加载一些与图形界面相关的负责加载一些与图形界面相关的I/OI/O设备驱动。设备驱动。设备驱动。设备驱动。在系统中负责管理在系统中负责管理在系统中负责管理在系统中负责管理Windows CEWindows CE中的对象存储和文件系统。中的对象存储和文件系统。中的对象存储和文件系统。中的对象存储和文件系统。负责加载所有的文件系统驱动程序。负责加载所有的文件系统驱动程序。负责加载所有的文件系统驱动程序。负责加载所有的文件系统驱动程序。Windows CE驱动程序的类型驱动程序的类型lWindows CE驱动程序的类型驱动程序的类型单层驱动程序单层驱动程序分层驱动程序分层驱动程序单单层层驱动程序驱动程
19、序l单层驱动程序:就是所有的驱动程序单层驱动程序:就是所有的驱动程序单层驱动程序:就是所有的驱动程序单层驱动程序:就是所有的驱动程序包括中断包括中断包括中断包括中断处理、处理、处理、处理、I/OI/O操作及硬件控制等都放在了一起。操作及硬件控制等都放在了一起。操作及硬件控制等都放在了一起。操作及硬件控制等都放在了一起。lDDIDDI接口接口接口接口(Device Driver Interface)(Device Driver Interface):单层驱动程:单层驱动程:单层驱动程:单层驱动程序提供的接口,是操作系统与驱动程序交互的接口序提供的接口,是操作系统与驱动程序交互的接口序提供的接口,
20、是操作系统与驱动程序交互的接口序提供的接口,是操作系统与驱动程序交互的接口协议。协议。协议。协议。l优点:优点:优点:优点:代码不作分层处理,驱动程序的代码相对紧凑。代码不作分层处理,驱动程序的代码相对紧凑。代码不作分层处理,驱动程序的代码相对紧凑。代码不作分层处理,驱动程序的代码相对紧凑。选用单层驱动程序会提高驱动的性能。选用单层驱动程序会提高驱动的性能。选用单层驱动程序会提高驱动的性能。选用单层驱动程序会提高驱动的性能。对于一些较简单的硬件设备驱动程序,使用单层驱动程对于一些较简单的硬件设备驱动程序,使用单层驱动程对于一些较简单的硬件设备驱动程序,使用单层驱动程对于一些较简单的硬件设备驱动
21、程序,使用单层驱动程序模型,可更加清晰明了。序模型,可更加清晰明了。序模型,可更加清晰明了。序模型,可更加清晰明了。分层驱动程序分层驱动程序l分层驱动程序把驱动程序的代码分为两层:分层驱动程序把驱动程序的代码分为两层:模型设备驱动模型设备驱动模型设备驱动模型设备驱动(Model Device (Model Device Driver,MDDDriver,MDD): ):包包包包含某一类型的驱动程序所通用的代码,含某一类型的驱动程序所通用的代码,含某一类型的驱动程序所通用的代码,含某一类型的驱动程序所通用的代码,MDDMDD层一层一层一层一般以库文件形式存在。般以库文件形式存在。般以库文件形式存
22、在。般以库文件形式存在。平台相关驱动平台相关驱动平台相关驱动平台相关驱动(Plat Dependence (Plat Dependence Driver,PDDDriver,PDD): ):包含特定的硬件或平台专用的代码。包含特定的硬件或平台专用的代码。包含特定的硬件或平台专用的代码。包含特定的硬件或平台专用的代码。分层驱动程序分层驱动程序lMDD和和PDD之间还需要一个接口协议。这样,之间还需要一个接口协议。这样,在分层驱动程序中,就有两类接口函数在分层驱动程序中,就有两类接口函数在操作系统与在操作系统与在操作系统与在操作系统与MDDMDD之间的之间的之间的之间的DDI(DeviceDDI(
23、Device Driver Driver Interface)Interface)MDDMDD和和和和PDDPDD之间的之间的之间的之间的DDSI(DeviceDDSI(Device Driver Service Driver Service provider Interface)provider Interface)操作系统通过操作系统通过操作系统通过操作系统通过DDIDDI函数访问内建驱动的函数访问内建驱动的函数访问内建驱动的函数访问内建驱动的MDDMDD层。层。层。层。MDDMDD层以库形式存在,向下调用的层以库形式存在,向下调用的层以库形式存在,向下调用的层以库形式存在,向下调用的DD
24、SIDDSI函数形函数形函数形函数形式固定,但内容为空,需要式固定,但内容为空,需要式固定,但内容为空,需要式固定,但内容为空,需要PDDPDD层实现。层实现。层实现。层实现。PDDPDD层以代码形式存在,需实现相应的层以代码形式存在,需实现相应的层以代码形式存在,需实现相应的层以代码形式存在,需实现相应的DDSIDDSI函函函函数内容。数内容。数内容。数内容。分层驱动程序分层驱动程序lMDD MDD 具有下列特征:具有下列特征:具有下列特征:具有下列特征: 包含给定类型的所有驱动程序所共有的代码。包含给定类型的所有驱动程序所共有的代码。包含给定类型的所有驱动程序所共有的代码。包含给定类型的所
25、有驱动程序所共有的代码。 调用调用调用调用 PDD PDD 函数以访问硬件。函数以访问硬件。函数以访问硬件。函数以访问硬件。 链接到链接到链接到链接到 PDD PDD 层,并且定义层,并且定义层,并且定义层,并且定义MDD MDD 期望在该层中调用的设备驱动程序期望在该层中调用的设备驱动程序期望在该层中调用的设备驱动程序期望在该层中调用的设备驱动程序服务提供程序接口服务提供程序接口服务提供程序接口服务提供程序接口 (DDSI) (DDSI) 函数。函数。函数。函数。 向操作系统向操作系统向操作系统向操作系统 (OS) (OS) 公开设备驱动程序接口公开设备驱动程序接口公开设备驱动程序接口公开设
26、备驱动程序接口 (DDI) (DDI) 函数。函数。函数。函数。 OS OS 的其他的其他的其他的其他部分可以调用这些函数。部分可以调用这些函数。部分可以调用这些函数。部分可以调用这些函数。处理中断处理。处理中断处理。处理中断处理。处理中断处理。 可供开发人员重用。可供开发人员重用。可供开发人员重用。可供开发人员重用。 可以链接到多个可以链接到多个可以链接到多个可以链接到多个 PDDPDD。 通常不需要进行更改。通常不需要进行更改。通常不需要进行更改。通常不需要进行更改。 如果进行了更改,则在将驱动程序迁移到将如果进行了更改,则在将驱动程序迁移到将如果进行了更改,则在将驱动程序迁移到将如果进行
27、了更改,则在将驱动程序迁移到将来的版本时可能会遇到麻烦。来的版本时可能会遇到麻烦。来的版本时可能会遇到麻烦。来的版本时可能会遇到麻烦。 包含任何中断服务线程包含任何中断服务线程包含任何中断服务线程包含任何中断服务线程 (IST)(IST)。 分层驱动程序分层驱动程序lPDD 具有下列特征:具有下列特征:由硬件平台特有的代码组成。由硬件平台特有的代码组成。由硬件平台特有的代码组成。由硬件平台特有的代码组成。 对于不同的硬件产品或标准,有不同的实现。对于不同的硬件产品或标准,有不同的实现。对于不同的硬件产品或标准,有不同的实现。对于不同的硬件产品或标准,有不同的实现。 只能与某一类只能与某一类只能
28、与某一类只能与某一类MDDMDD协同工作。协同工作。协同工作。协同工作。 实现实现实现实现MDDMDD所需要的所需要的所需要的所需要的DDSIDDSI函数函数函数函数分层驱动程序分层驱动程序l优点优点驱动程序分层带来了一定的灵活性,使驱动程驱动程序分层带来了一定的灵活性,使驱动程驱动程序分层带来了一定的灵活性,使驱动程驱动程序分层带来了一定的灵活性,使驱动程序的编写更为清晰、简单。序的编写更为清晰、简单。序的编写更为清晰、简单。序的编写更为清晰、简单。驱动程序的移植也会变得相对简单,只需对驱动程序的移植也会变得相对简单,只需对驱动程序的移植也会变得相对简单,只需对驱动程序的移植也会变得相对简单
29、,只需对PDDPDD层的代码进行修改。层的代码进行修改。层的代码进行修改。层的代码进行修改。l缺点缺点 分层后,分层后,分层后,分层后,MDDMDD层对层对层对层对PDDPDD层的函数调用会给驱动层的函数调用会给驱动层的函数调用会给驱动层的函数调用会给驱动程序带来额外的性能开销。程序带来额外的性能开销。程序带来额外的性能开销。程序带来额外的性能开销。Windows CE驱动程序的分类驱动程序的分类l lWindows CE 整体上将设备驱动分为三种整体上将设备驱动分为三种: 内置驱动内置驱动内置驱动内置驱动总线驱动总线驱动总线驱动总线驱动流接口驱动流接口驱动流接口驱动流接口驱动内置驱动内置驱动
30、l l硬件所必须的驱动程序,这些驱动程序通硬件所必须的驱动程序,这些驱动程序通常由设计常由设计OEM厂商进行设计。厂商进行设计。l l如如:键盘,触摸屏,音频设备。键盘,触摸屏,音频设备。l l可能不支持一般的驱动接口,也有可能带可能不支持一般的驱动接口,也有可能带有扩展的接口或者完全提供一个用户自定有扩展的接口或者完全提供一个用户自定义的接口。义的接口。l l内置驱动通常需要针对具体的操作系统进内置驱动通常需要针对具体的操作系统进行小幅改动。行小幅改动。总线驱动总线驱动l l管理系统总线如管理系统总线如PCI总线等。总线等。l l负责处理总线上硬件的询问,以及资源的负责处理总线上硬件的询问,
31、以及资源的分配。分配。 l l同时也请求设备管理器为总线上的硬件安同时也请求设备管理器为总线上的硬件安装适当驱动程序。装适当驱动程序。驱动分类驱动分类 详细详细l lAudio DriversAudio Drivers l lBattery DriversBattery Drivers l lBlock DriversBlock Drivers l lBluetooth HCI Transport DriverBluetooth HCI Transport Driver l lDirect3D Device Driver InterfaceDirect3D Device Driver Inte
32、rface l lDirectDraw Display DriversDirectDraw Display Drivers l lDisplay DriversDisplay Drivers l lDVD-Video RendererDVD-Video Renderer l lIEEE 1394 DriversIEEE 1394 Drivers l lKeyboard DriversKeyboard Drivers l lNotification LED DriversNotification LED Drivers l lParallel Port DriversParallel Port
33、Drivers l lPC Card DriversPC Card Drivers l lPrinter DriversPrinter Drivers l lSerial Port DriversSerial Port Drivers l lSmart Card DriversSmart Card Drivers l lStream Interface DriversStream Interface Drivers l lTouch Screen DriversTouch Screen Drivers l lUSB DriversUSB Drivers 参见文档参见文档:示例驱动程序的代码示例
34、驱动程序的代码l lPlatform BuilderPlatform Builder中自带了大量的驱动程序代码,中自带了大量的驱动程序代码,中自带了大量的驱动程序代码,中自带了大量的驱动程序代码,可以通过阅读这些代码来学习编写驱动程序。可以通过阅读这些代码来学习编写驱动程序。可以通过阅读这些代码来学习编写驱动程序。可以通过阅读这些代码来学习编写驱动程序。l l大部分驱动程序的代码放在目录大部分驱动程序的代码放在目录大部分驱动程序的代码放在目录大部分驱动程序的代码放在目录%_WINCEROOT%PublicCommonOAKDriv%_WINCEROOT%PublicCommonOAKDrive
35、rsers下,这些驱动程序都是与平台无关的。下,这些驱动程序都是与平台无关的。下,这些驱动程序都是与平台无关的。下,这些驱动程序都是与平台无关的。 %_WINCEROOT%PlatformBSP %_WINCEROOT%PlatformsrcdriversNamesrcdrivers中中中中, ,这些驱动都是与平台相关这些驱动都是与平台相关这些驱动都是与平台相关这些驱动都是与平台相关的。的。的。的。l l从从从从Windows CE5.0Windows CE5.0开始,微软引入了开始,微软引入了开始,微软引入了开始,微软引入了Production-Quality Device DriverProduction-Quality Device Driver的概念。主的概念。主的概念。主的概念。主要是为了提高驱动程序代码的可靠性和稳定性。要是为了提高驱动程序代码的可靠性和稳定性。要是为了提高驱动程序代码的可靠性和稳定性。要是为了提高驱动程序代码的可靠性和稳定性。