zljiao
驱动牛犊
驱动牛犊
  • 注册日期2002-01-23
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1663回复:10

PNP例程在什么时候被调用呢??????

楼主#
更多 发布于:2002-04-08 16:46
我在驱动中增加了驱动例程,实现了STARTDEVICE,
但是驱动启动后没有调用PNP例程,在什么情况下被调用呢?
Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-08 16:56
在driverentry中设置pnp例程
DriverObject->MajorFunction[IRP_MJ_PNP]=YourPnpRoutine;

通常在adddevicez执行后,系统会发出IRP_MJ_PNP请求
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
zljiao
驱动牛犊
驱动牛犊
  • 注册日期2002-01-23
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-08 19:08
可是我的驱动没有ADDDEVICE焊数呀,难道就不调用PNP例程了吗?
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-04-08 20:34
用户被禁言,该主题自动屏蔽!
zljiao
驱动牛犊
驱动牛犊
  • 注册日期2002-01-23
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-09 08:34
可是是什么时候调用呢?
我在STARTDEVICE里有一些初始化的动作,这样不能初始化了呀
lmycs
驱动牛犊
驱动牛犊
  • 注册日期2001-07-23
  • 最后登录2002-12-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-10 08:55
你需要一个ADDDEVICE例程.
lmycs
驱动牛犊
驱动牛犊
  • 注册日期2001-07-23
  • 最后登录2002-12-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-10 11:20
一般在createdevice后调用.
jame.z
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2004-05-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-10 11:28
有没有搞错,应该是设置了FDO->Flags &= ~(DO_DEVICE_INITIALIZING);后并退出该例程后调用~
zljiao
驱动牛犊
驱动牛犊
  • 注册日期2002-01-23
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-04-10 12:18
一定要ADDDEVICE历程吗?
jame.z
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2004-05-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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~~
zljiao
驱动牛犊
驱动牛犊
  • 注册日期2002-01-23
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-04-14 19:53
我置了标志,可是PNP还是没有得到调用?
游客

返回顶部