阅读:1098回复:0
wdm驱动加载后立即自动卸载的问题
小弟用ds的向导生成了一个pci wdm驱动,尚未加入自己的代码,编译通过。加载后在设备管理器中发现该设备有叹号,提示错误代码10,设备未被启动。于是跟踪加载过程,输出的打印语句如下:
IPB: In DriverEntry IPB: AddDevice called IPB: Entering IPBDevice::IPBDevice (constructor) IPB: Entering IPBDevice::DefaultPnp with IRP minor function= <unknown minor function> IPB: Entering IPBDevice::DefaultPnp with IRP minor function= IRP_MN_FILTER_RESOURCE_REQUIREMENTS IPB: Entering IPBDevice::OnStartDevice IPB: Entering IPBDevice::OnRemoveDevice IPB: Entering IPBDevice::~IPBDevice() (destructor) 可以看出在onstartdevice后马上就执行了onremovedevice并析构。然后再从系统手动卸载驱动时未输出任何打印语句,可见是驱动根本没加载成功。 然后我实验了一下ds自带的hellowdm例程,加载时的打印输出如下: HelloWdm: Entered DriverEntry for simple WDM driver HelloWdm: The Registry Path is \REGISTRY\MACHINE\SYSTEM\ControlSet001\Services\HelloWdm HelloWdm: entered SimpleWdmDevice constructor HelloWdm: entered DefaultPnp() HelloWdm: entered DefaultPnp() HelloWdm: entered OnStartDevice() HelloWdm: entered DefaultPnp() HelloWdm: entered DefaultPnp() 该驱动成功加载,并且可以正常工作,然后卸载驱动时才会执行remove和析构函数。 因小弟乃是新手,无法通过代码比较出自己的程序和例程的差异。请各位帮忙指点下我这个驱动无法加载的可能的原因。 |
|