阅读:1664回复:10
PNP例程在什么时候被调用呢??????
我在驱动中增加了驱动例程,实现了STARTDEVICE,
但是驱动启动后没有调用PNP例程,在什么情况下被调用呢? |
|
沙发#
发布于:2002-04-08 16:56
在driverentry中设置pnp例程
DriverObject->MajorFunction[IRP_MJ_PNP]=YourPnpRoutine; 通常在adddevicez执行后,系统会发出IRP_MJ_PNP请求 |
|
|
板凳#
发布于:2002-04-08 19:08
可是我的驱动没有ADDDEVICE焊数呀,难道就不调用PNP例程了吗?
|
|
地板#
发布于:2002-04-08 20:34
用户被禁言,该主题自动屏蔽! |
|
地下室#
发布于:2002-04-09 08:34
可是是什么时候调用呢?
我在STARTDEVICE里有一些初始化的动作,这样不能初始化了呀 |
|
5楼#
发布于:2002-04-10 08:55
你需要一个ADDDEVICE例程.
|
|
6楼#
发布于:2002-04-10 11:20
一般在createdevice后调用.
|
|
7楼#
发布于:2002-04-10 11:28
有没有搞错,应该是设置了FDO->Flags &= ~(DO_DEVICE_INITIALIZING);后并退出该例程后调用~
|
|
8楼#
发布于:2002-04-10 12:18
一定要ADDDEVICE历程吗?
|
|
9楼#
发布于:2002-04-10 12:28
不一定要在AddDevice中,去掉DO_DEVICE_INITIALING标志,但是要在AddDevice中建立或在DriverEntry中建立设备,因为IoCreateDevice的第一个参数是PDRIVER_OBJECT,只有AddDevice或DriverEntry的参数提供了这个参数,(还有Unload例程)。
------------------------------------------------------------ 一般在DEVICE_EXTENSION中保存FDO的指针,所以可以在AddDevice外的任何函数中去掉DO_DEVICE_INITIALING~~ |
|
10楼#
发布于:2002-04-14 19:53
我置了标志,可是PNP还是没有得到调用?
|
|