WDM

WDM是“Windows驱动程序模型”的简称,即“Windows Driver Model”。实际上它是一系列集成在操作系统之中的常规系统服务集,用于简化硬件驱动程序的编写,并保证它们在Windows 98/Me/2000中的二进制兼容,目前仅适合英特尔架构的处理器。  

  WDM的概念在Windows 95发布时便已经提出,但真正实现却是在Windows 98中。现在,Windows 2000也提供了对它的支持。而在Windows Me中,则实现了自Win98 WDM发展起来的升级版本。早先的Windows 95并不支持WDM 1.0。而到了Windows 95 OSR 2.1的时候,尽管具备和WDM类似的、有限的USB支持,但支持的完善程度却远不及Windows 98和Windows 2000,后者是在内核这一级针对WDM进行了全面优化。  

  在WDM模型推出之前,如果想让一种硬件设备同时兼容Windows 95和Windows NT,就必须编写两套全然不同的、完整的设备驱动程序。但如果采用了WDM模型,则不必再为Windows 98和Windows 2000等不同系统平台分别编写不同的驱动,而只需写一套“WDM兼容”的驱动就可以了。 

    “WDM模型”驱动可支持的硬件包括以下几类:  

  1、流类驱动:支持内核模式的数据流式传输,用于视频捕捉、MPEG解码器、声音、DVD和广播结构。  

  2、HID类驱动:提供对输入设备的支持。  

  3、USB和IEEE 1394总线类驱动。  

    “WDM模型”驱动不支持的硬件包括:显卡、常规存储设备、超级I/O芯片等。  

  在每一类WDM驱动中,都事先规划好了类似设备的一些通用细节。举个例子来说,假定有5个不同的设备连接到一条USB总线,如果不采用WDM驱动,那么在每个设备的驱动程序中,都必须包含通过USB总线同设备通信的全套代码。因此,最后驻留在内存中的驱动程序代码量不知会有多少,而且各自都包含了大量重复性的内容!显然,这样不仅浪费程序员的时间和精力,也极大浪费了系统资源。但若使用WDM驱动就不一样了,WDM驱动采用的是一种分层模型,某类WDM驱动已实现了一些具有共通性的操作。要想实现某种硬件特有的功能,驱动程序的编写者只需编写少量的专用代码(有人称之为“迷你端口”),直接同自己的硬件进行通信,并实现这些功能;与此同时,只需调用恰当的类驱动,就可完成大量常规性的任务。  

  目前,许多人都有升级到Windows 2000的打算,但往往由于驱动程序的不兼容(特别是一些ISDN设备的驱动),最终还是选择了放弃。假如事先就用WDM编写这些驱动,那么我们升级的痛苦就会减轻许多!  

  但是,WDM也并非包冶百病。有时,一个WDM驱动程序在不同的Windows平台上,执行的效果会有所不同。这是由于在WDM规范中, Windows 98和Windows 2000存在本质上的显著区别,所以也对此进行了区分。换句话说,为一种平台写好驱动后,还需在其他平台上进行全面测试,特别是要在多处理器的环境中重新测试。 WDM并不支持所有类型的硬件。比如,在为一种打印机编写驱动程序时,WDM就是帮不上忙的――针对Windows 98和Windows 2000,还是要分别编写一套完整的驱动。再有inf文件的格式还必须适应Windows 98和Windows 2000的差异。通常,尽管一个inf文件就能完成驱动程序的安装,但还是要在其中为Windows 98和Windows 2000划分出不同的小节。  

   WDM有这么多好处,编写起来是不是很容易呢?事实上,WDM极易掌握。比起编写VXD程序,或者写一个传统的Windows NT驱动相比,要轻松得多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值