阅读:2167回复:12
请教:关于WDM驱动和NT式驱动的主要区别?
我写了一个NT式的虚拟设备的驱动,在2000下能够正常工作了。但要把它移植到98下,是不是必须改成WDM的呢?哪些IRP是我必须增加的啊?是不是必须处理Adddevice, IRP_MJ_PNP? 请大侠指教!!!
|
|
沙发#
发布于:2004-02-18 09:23
这个好像不是那么简单就能改好的。
个人认为,基本上需要重写。 |
|
|
板凳#
发布于:2004-02-18 09:32
如果硬件支持PNP,就改写为WDM,按WDM的处理方式,即可
|
|
|
地板#
发布于:2004-02-18 10:49
关键是我写的是一个虚拟设备(虚拟读卡器)的驱动,没有实际硬件,它应该挂载在root总线下吧。我要求它开机后就一直挂载在系统下,没有对它的插拔。所以我一开始就写了个NT式的驱动。现在要移植到98下,不得不改成WDM的。我现在把原来在DriverEntry()中的CreateDevice部分,改在了AddDevice中,并且增加了IRP_MJ_PNP的处理函数(pnp处理函数里面就直接返回成功了,什么也没处理)。现在在设备管理器中能看到该设备。 但我没有看到AddDevice部分被调用。请问,对于这类虚拟设备,adddevice函数什么时候被调用啊?root总线传给它的物理设备对象又是什么啊?
|
|
地下室#
发布于:2004-02-18 11:00
在设备管理器中能看到该设备。 但我没有看到AddDevice部分被调用。
没有CREATEDEVICE的话,你如何能在设备管理器中看到设备??? |
|
|
5楼#
发布于:2004-02-18 13:22
Sorry,我对WDM的虚拟设备的驱动不熟。我的情况是这样的。由于是虚拟设备,我只能用控制面板的“添加/删除硬件”作为“其他设备”添加,在添加过程中,通过DriverMonitor看到,Adddevice被调用了。以后,比如重启系统时,是不是它就不会再被调用了?谢谢的帮助
|
|
6楼#
发布于:2004-02-18 17:05
系统会在启动的时候自动调用的。
|
|
|
7楼#
发布于:2004-02-18 17:12
谢谢,我终于把问题解决了。
|
|
8楼#
发布于:2004-04-08 09:15
sinking超强 恭喜^_^
|
|
|
9楼#
发布于:2004-04-08 15:05
:P,俺是菜鸟,wowocock才是超强。最近在做微软的whql测试驱动签名,NT的是不是铁定通不过啊。哪位大哥有经验。
BTW, 佛罗伦萨现在排第几啊? |
|
10楼#
发布于:2004-04-08 15:13
靠,我才是菜鸟呢,whql测试驱动签名如何做的???介绍下??
|
|
|
11楼#
发布于:2004-04-08 18:02
就是微软的驱动签名阿。不签的的话,安装的时候不是会跳出提示,说此驱动未经微软数字签名。跑过微软的HCT测试工具就可以了。
|
|
12楼#
发布于:2004-04-08 18:20
两位都是超强 谦虚了 呵呵
至于whql 公司的产品有机会的话 自己亲自做一次就ok了 的确是挺头疼的测试。 ×××××××××××××××××××××××××××××××× ×××××××××××××××××××××××××××××××× 佛罗伦萨现在意乙排名第七 ,但是很有升级希望的 ^_^ 详见: http://www.11players.net/dispbbs.asp?boardID=38&ID=58381 |
|
|