zxq8311
驱动牛犊
驱动牛犊
  • 注册日期2007-01-19
  • 最后登录2007-03-27
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1098回复:0

wdm驱动加载后立即自动卸载的问题

楼主#
更多 发布于:2007-01-30 11:53
  小弟用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和析构函数。
因小弟乃是新手,无法通过代码比较出自己的程序和例程的差异。请各位帮忙指点下我这个驱动无法加载的可能的原因。
游客

返回顶部