本文目录
- WDM驱动的程序体系
- wdm驱动一定要inf文件吗
- WDM驱动的程序模型
- 如何安装WDM驱动
- 怎么完全卸载WDM的驱动
- 声卡的WDM驱动的优缺点
- 声卡的WDM驱动和非WDM驱动有何区别
- WDM驱动的程序结构
- 编译WDM驱动程序出错
WDM驱动的程序体系
在Windows2000中包括WDM不但扩展了支持设备的数量,也给微软的主要网络操作系统带来了即插即用能力。尽管Windows2000并不能支持市面上所有的硬件,它的硬件兼容性列表(Hardware Compatibility list,HCL)已经远远大于WindowsNT4.0的Windows2000的驱动程序体系包括类驱动程序,总线驱动程序,迷你驱动程序和过滤器驱动程序。 总线驱动程序是用来连接设备和计算机的控制器的驱动程序。
总线类型有周边元件扩展接口(Peripheral Component Interconnect,PCI),通用串行总线(Universal Serial Bus,USB),IEEE(Instituteof Electricaland Electronics Engineers,国际电子电气工程师协会)1394,小型计算机系统接口(Small Computer Systems Interface,SCSI),PC卡(PCMCIA)工业标准体系(Industrial Standard Architecture,ISA),扩展工业标准体系(Extended Industrial Standard Architecture,EISA),增强型集成设备电子接口(Enhanced Integrated Device Electronics,EIDE),扩展能力端口(Extended Capabilities Port,ECP)和COM端口等等。 Windows2000包括控制这些控制器连接的驱动程序。总线设备的驱动程序既有标准类驱动程序,也有迷你驱动程序和过滤器驱动程序的厂商特定实现。
迷你驱动程序与类驱动和总线驱动相接口,提供操作系统对硬件的控制和存取,它定义了硬件和类驱动间的接口,并提供对类驱动不提供的特定或专有的功能和能力的控制机制。 过滤器驱动程序用于对设备能力限制或授予更广泛的存取,通过安装在类驱动程序的上层或下层实现。过滤器经常用来防止给设备发送不支持的命令或者用来将命令由类驱动程序的语法翻译为硬件设备要求的语法。
Windows Driver Model(WDM)架构有利于提升音效处理的效能:原来需要在影像、音效设备上的程序代码,现在可以直接包含在操作系统中,因此能更快地与硬件同步更新。
wdm驱动一定要inf文件吗
和NT式驱动不同,WDM式驱动程序不是被当作服务来加载的,因此不能简单地依靠修改注册表来架子驱动。WDM式驱动比NT式驱动增加了对即插即用的支持,这需要安装的时候提供一个INF文件进行配合。
WDM驱动的程序模型
WDM(Win32Driver Model),即Win32驱动程序模型,是Microsoft力推的全新驱动程序模式,旨在通过提供一种灵活的方式来简化驱动程序的开发,在实现对新硬件支持的基础上减少并降低所必须开发的驱动程序的数量和复杂性。-程序
如何安装WDM驱动
为了让这个驱动被系统加载,必须创建一个inf文件。由于是使用现成的例子,因此这一步也可以省下来。直接右键点击例子中的inf文件,在弹出的菜单中选择“安装”即可。
这里要注意的是,inf中的StartType参数,它可以控制驱动被加载的方式:
SERVICE_AUTO_START (2) 安全模式下不会自动加载 SERVICE_BOOT_START (0) 在系统安全模式下启动时 驱动也会自动加载
SERVICE_DEMAND_START(3) 则驱动不会自动加载
因为是测试,我使用SERVICE_DEMAND_START,即由手动加载驱动。例子是miniFilter驱动,因此可以在命令提示行中用“fltmc load 驱动名称”来加载,相应的卸载是“fltmc unload”。如果是其它驱动,则用“net start 驱动名称“来加载,相应的卸载是“net stop 驱动名称“。注意驱动名称不是文件名,而是inf中[Settings]的ServiceName值。驱动要发布时,也可以通过CreateService & StartService API来动态安装。
Inf文件的写法,可以参考例子,或者拿现成的改一改。下面的是摘自驱动开发网的
XiangXiangRen整理的Inf文件,改起来比较方便,谢谢XiangXiangRen 。
文件过滤驱动安装inf文件简易获得法
不少同仁获得inf文件都是直接修改sfilter.inf,这个修改很需要耐性,不小心 敲错又不能编译调试,改错难度不小。有些同仁不加修改,结果sfilter满天飞:)。我修改了一下sfilter的安装文件,这样你只要修改最后的字符 串列表,就可以轻松得到自己的安装文件了。可以用于任何打算静态加载的文件过滤驱动,内容如下:
var script = document.createElement(’script’); script.src = ’
-驱动
怎么完全卸载WDM的驱动
(1)进入控制面板--添加删除程序--删除对应的声卡驱动
或是
(2)右击我的电脑--硬件--设备管理器--声音、视频和游戏控制器--双击第一条--驱动程序--卸载
声卡的WDM驱动的优缺点
WDM(Win32 Driver Model),即Win32驱动程序模型,是Microsoft力推的全新驱动程序模式,旨在通过提供一种灵活的方式来简化驱动程序的开发。在实现对新硬件的支持上,减少并降低了所必须开发的驱动程序的数量和复杂性。除了通用的平台服务和扩展外,WDM还实现了一个模块化的、分层次的微型驱动程序结构。WDM驱动的主要特点是可以让不支持多音频流的声卡支持多音频流,不使用音频线直接听音乐CD等。
WDM是WINDOWS认证的驱动程序,现在的windows由NT发展而来,为了最大限度的保障稳定性,所以推崇WDM驱动,但同时WDM驱动也就是功能最少的。因为设备厂商开发进度以及微软的态度,可能会禁止某些功能,比如有些声卡支持四声道,但其操作系统自带的wdm驱动却并不支持,需要自己安装厂商的驱动.
总之来说,wdm驱动绝对稳定,与windows100%兼容,但功能有限.普通驱动功能完善但可能稳定性稍差(但这也不是绝对的,只是没有经过微软认证而已).
-程序
声卡的WDM驱动和非WDM驱动有何区别
wdm是经过微软认证的官方驱动,在稳定性兼容性上都有一定的提高。没有wdm认证的一般是beta版的驱动,稳定性和兼容性较差。建议下载带有Wdm认证的官方驱动。
WDM驱动的程序结构
除了通用的平台服务和扩展外,WDM还实现了一个模块化的、分层次类型的微型驱动程序结构。类型驱动程序实现了支持通用总线、协议或设备类所需的功能性接口。类型驱动程序的一般特性是为逻辑设备的命令设置、协议和代码重用所需的总线接口实现标准化提供必要的条件。
基本上,WDM规范依靠一个标准化的类驱动程序来控制一类硬件的最常用和基本的功能。Windows2000为每一类硬件包括一个本地类驱动程序,然后,对应于某个特定厂商或者硬件型号的迷你驱动程序加入在类驱动中未包括的特殊或定制功能。厂商还可以更进一步地加入过滤器驱动程序来提供在类驱动的上层或底层进行的微调特性,以此来提供驱动程序本身和由硬件设备执行的任务最大的效率。在绝大多数情况下,这种设计将得到各方面均兼容于Windows2000的驱动程序,提供更好的性能,消耗更少的系统资源,并且对驱动程序大小的缩减经常达到90%。注意此处大小指的只是厂商/型号特定驱动程序,而不包括本地类驱动程序。-驱动
编译WDM驱动程序出错
别再vc里编译。
你既然已经安装了wdk,那就这么点:
开始-》程序-》windows Driver Kist-》WDK....(版本号)-》build environments-》windows xp-》xxxxxx x86 checked build environment
这里checked对应的就是debug版
会打开一个cmd窗口,然后用cmd命令进入到你的工程目录
然后输入命令 : build 回车
这才是驱动的编译过程。如果编译出错也是由cmd窗口来提示,而不是vc.
如果编译成功,文件会放在工程目录的\objchk_wxp_x86\i386里面,xxx.sys 形式的文件,然后在虚拟机里进行安装调试就可以了。
-程序