阅读:1429回复:3
关于使用Services API启动WDM驱动
请教个问题。
WDM驱动程序,如果使用Services API启动,驱动可以启动,但启动后立刻又被自动卸载掉了。可以理解,因为这时候驱动根本没有创建设备,自然无法保护运行。 于是我写了个过滤驱动,把WDM驱动与KMD驱动结合起来,在DriverEntry()中IoCreateDevice一个设备,并且又设置了AddDevice(),这样使用Services API可以启动该驱动了,即使PNP管理器没有调用AddDevice(),也可使驱动保护在运行状态。 目前问题是,在XP以上系统,这种做法没有问题,在Win2000下却如同WDM一样,启动驱动,又立刻被卸载。 有没有好的办法解决2000的这问题? |
|
沙发#
发布于:2008-07-11 18:32
各们帮忙想想办法。
PNP都是动态的加载启动WDM的Filter Driver。 我现在只是想让过滤驱动即使没有Attach到目标设备之前,也能保持运行状态。 并且也能接受Pnp Manager的AddDevice() |
|
板凳#
发布于:2008-07-12 20:45
据我所知,PNP过滤驱动是在功能驱动之前就已经加载了,这样才能保证在设备工作之前的第一时间attach上去。也就是说PNP过滤驱动在attach设备之前肯定是可以也是必须可以保持运行的。
所以会我怀疑楼主的问题在别的地方,跟踪一下应该就搞定了。 楼主可以把驱动放在功能驱动之前启动试试。 |
|
地板#
发布于:2008-07-12 21:38
我做的是一个U盘过滤驱动。在U盘插入之前,过滤驱动是不会被加载的。就像系统的USBSTOR.sys一样。
我现在想要的是,在U盘插入之前,就让我的过滤驱动保持在运行状态。 |
|