WDM设备驱动程序开发平台3

来源:互联网 发布:机器视觉 算法 编辑:程序博客网 时间:2024/06/05 03:54
WDM的版本问题

  虽然Windows XP/2000/98/Me都支持WDM,但是由于历史原因,不同版本WDM内容并不相同。当然,新版WDM都是旧版WDM的超集。跨系统使用的WDM driver通常采用IoIsWdmVersionAvailable例程去判定当前运行系统支持WDM的版本号。按照常理说,保证跨平台兼容性的最简单的方式应该是:写一个驱动程序时仅包括最低版本WDM所支持的那些功能。但是,这种思路往往行不通,因为驱动程序不仅要适应不同的OS,而且还应当具有发挥具体系统特色优势的附加代码。

  最新编写出的内核模式的驱动程序应该属于WDM类型,其开发平台则应为Windows XP。任何WDM drivers都必须支持PnP、电源管理,并能执行WMI。一般的原则是,即使是用于更低版本的驱动程序,也最好首先在Windows XP下开发然后做移植,这种策略同样适用于那些并不完全适合WDM模式的硬件设备。如果要写出WDM驱动程序,开发人员必须通过最新的Windows DDK了解不同Windows平台的差异,以及总线和设备的相关问题。比如:其一,不同Windows平台的驱动程序代码执行会不同,主要由于WDM兼容了Windows XP/ 2000/ 98/Me中的不同系统结构。在其中一个平台工作正常的driver,到其它平台时需要全面测试,尤其用于多处理器系统时要特别注意。其二,WDM并不支持所有类型硬件。其三,INF文件必须适应平台之间的差异。