Windows各平台驱动程序的兼容性

Windows各平台驱动程序的兼容性

标准的总线和设备类驱动程序的编写,由微软提供相应的总线驱动程序和类驱动程序,用户也可以根据需要写一个过滤驱动程序或微型驱动程序。操作系统的支持在微软的驱动白皮书White papers里称,所有在Windows 95之后的Windows操作系统都已实现了WDM,包括Windows 98、Windows 2000、Windows XP、Windows Me,并且在后续的操作系统中,也将继续支持WDM。虽然源代码兼容与二进制兼容WDM主要的设计目标之一,但现在看来,微软在不断完善WDM的同时,并没有保持清晰的兼容性,在微软的White papers和各操作系统的DDK里,得到的信息总是有些含糊。

一开始,Microsoft宣称WDM驱动程序会是Windows98和Windows2000 x86之间二进制兼容的,且与Windows2000 Alpha平台源代码兼容。但是,现在看来并不能保证二进制兼容,尽管DDK在这方面并不清楚。为了安全起见,建议在为Windows98构造驱动程序时,使用Windows98驱动程序开发工具包(DDK),而对Windows2000使用Windows2000 DDK.如果使用仅在Windows2000中出现的一些WDM功能,则就不能达到源代码兼容。例如,Windows2000 USB系统驱动程序支持一些Windows98驱动程序不可用的功能。

在什么情况下需要编写WDM驱动程序

编写跨平台Windows驱动程序时,微软对开发者的建议是,在不同的目标平台下,进行严格的测试。开发合适的驱动程序类型现在我们有好几种Windows平台下的驱动程序开发技术了,虽然WDM提供了一个全新的解决方案,但为特定的设备和特定的平台选择一种合适的驱动程序类型来开发,仍然非常重要。如果你只需要写一个Windows 95的驱动程序,用VxD。如果你只需要一个Windows NT 4.0的驱动程序,用NT内核模式驱动程序。如果系统里有一个WDM类驱动程序支持你的设备,而你所写的驱动程序不需要与Windows 95和Windows NT 4.0兼容,用WDM驱动程序。

如果你的主要目标是Windows 98,那么你必须决定是否要与其他的操作系统兼容如果你关心与Windows 95兼容,那么你必须写一个VxD。如果你关心与Windows NT兼容,那么写一个WDM。注意,WDM驱动程序不会在Windows 95和Windows NT 4.0下工作,但是,WDM驱动程序与NT下的驱动程序有许多的相似之处,可以很容易的将WDM驱动程序改写成NT的内核模式驱动程序。如果你的主要目标是Windows2000,那么你必须决定是否要与其他的操作系统兼容如果你需要与Windows NT兼容,那么你必须写一个NT内核模式驱动程序。如果你关心与Windows98兼容,那么写一个WDM。

注意,WDM驱动程序不会在Windows NT 4.0下工作,但是,WDM驱动程序与NT下的驱动程序有许多的相似之处,可以很容易的将WDM驱动程序改写成NT的内核模式驱动程序。Windows 98虽然支持WDM和VxD,但有些类型的设备,在Windows 98下必须用VxD来设计(比如文件系统驱动程序),其他的某些类型必须用WDM设计(比如USB驱动程序)。

其他情况下,开发者可以根据需要选择写一个VxD或WDM。Windows 2000支持VxD、内核模式驱动程序、WDM,但也有些限制,比如视频驱动程序需要用NT格式的内核模式驱动程序来编写。具体的细节必须查阅不同版本的DDK。

WDM驱动模型总结

WDM驱动模型是从WinNT3.51和WinNT4的内核模式设备驱动程序发展而来,它的设计目标是建立一种统一的、便捷的、跨平台的设备驱动程序体系。微软一直不断的完善WDM驱动模型。WDM采用了分层的结构体系,定义了不同的驱动程序类型,并在操作系统中提供了一些封装了实现细节的类驱动程序和总线驱动程序,可以极大的简化驱动程序的开发。本文及前面几篇主要讨论了WDM模型的主要特点,回顾了微软的驱动程序的发展,这些信息,对于在WDM下开发新一代的驱动程序是必须了解的。

其他WDM驱动程序章节:

1. WDM驱动程序的前世今生

2. WDM驱动程序模型之驱动程序的类型和分层的驱动程序结构

3. 配置Windows驱动程序编译环境和安装

此条目发表在 windows驱动开发 分类目录,贴了 , , , 标签。将固定链接加入收藏夹。

发表评论