liangyufei
驱动小牛
驱动小牛
  • 注册日期2006-01-16
  • 最后登录2021-10-12
  • 粉丝0
  • 关注0
  • 积分1019分
  • 威望588点
  • 贡献值2点
  • 好评度95点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1249回复:7

请教各位高手一个PNP的问题

楼主#
更多 发布于:2007-03-14 16:48
  各位高手,我想实现网卡PNP功能(插一块新网卡,系统自动识别为已经安装过的设备),我现在写了一个Group为Boot Bus Extender的驱动,就差如何得到HKLM\System\CurrentControlSet\Enum\PCI\<deviceID>\<instanceID>的instanceID,我查了资料,这个instanceID是一个由系统生成的hash值,不知道哪位高手知道如何组这个值。
另外,我看了一篇《动态加载pnp设备的步骤的文章》提到:http://blog.sina.com.cn/u/54351bd9010004n9
1)插入设备,向bus driver发IRP_MJ_IO_CONTROL的IRP。
2) bus driver创建设备,加入自己的子设备列表。
3) bus driver调用IoInvalidateDeviceRelations来通知pnp manager更新他的设备树。
4) pnp manager发送一个IRP_MN_QUERY_DEVICE_RELATIONS的IRP。
5) bus driver处理该IRP。
6) pnp manager根据该IRP返回的信息来更新自己的设备树,创建新设备的节点。
7) pnp manager发送一系列IRP来收集新设备的信息来配置设备:
我能否在我的程序中模拟PnP向PCI bus驱动程序发送挂接硬件请求,然后再发送请求以得到instance id呢?如果可以,有人有sample没有,谢谢!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-15 06:21
你的目的是什么呢?如果这个网卡是你自己开发的,想用别人的driver来驱动,那只要把各个deviceid设置的和别人的一样即可;如果是想用自己的driver,但不想出现“安装新硬件”,那就先用程序把driver安装好,再插硬件。向bus driver发那些东西,一般都是做虚拟设备用的。你做虚拟网卡?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
liangyufei
驱动小牛
驱动小牛
  • 注册日期2006-01-16
  • 最后登录2021-10-12
  • 粉丝0
  • 关注0
  • 积分1019分
  • 威望588点
  • 贡献值2点
  • 好评度95点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-03-15 09:35
我的目的是把已知的网卡driver装好后,随便插一个网卡在任意一个PCI插槽,希望系统能认为这个硬件是已经安装过的,不希望系统“找到新硬件,正在安装...”。我现在的做法是在Group为Boot Bus Extender的驱动中把HKLM\System\CurrentControlSet\Enum\PCI\<deviceID>\<instanceID>都创建起来,这样系统就认为这个硬件是已经安装过的。但这个instanceID如何组成,我现在还一筹莫展,希望高手帮忙,谢谢!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-15 11:55
难道现在所有的网卡厂商都用同一个公板?用同一个芯片?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
liangyufei
驱动小牛
驱动小牛
  • 注册日期2006-01-16
  • 最后登录2021-10-12
  • 粉丝0
  • 关注0
  • 积分1019分
  • 威望588点
  • 贡献值2点
  • 好评度95点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2007-03-15 13:42
对于驱动,我是预先安装好的,呵呵
liangyufei
驱动小牛
驱动小牛
  • 注册日期2006-01-16
  • 最后登录2021-10-12
  • 粉丝0
  • 关注0
  • 积分1019分
  • 威望588点
  • 贡献值2点
  • 好评度95点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2007-03-15 18:20
各位高手,该出手时就出手啊
zh002008
驱动牛犊
驱动牛犊
  • 注册日期2004-08-22
  • 最后登录2013-09-06
  • 粉丝1
  • 关注1
  • 积分545分
  • 威望155点
  • 贡献值0点
  • 好评度51点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-03-15 21:35
你搜一下驱网上的Diskft和它的测试程序吧,有对你需要部分的处理。
liangyufei
驱动小牛
驱动小牛
  • 注册日期2006-01-16
  • 最后登录2021-10-12
  • 粉丝0
  • 关注0
  • 积分1019分
  • 威望588点
  • 贡献值2点
  • 好评度95点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2007-03-16 08:55
>>你搜一下驱网上的Diskft和它的测试程序吧,有对你需要部分的处理。

老大,我没有搜到,能告诉我相应的网址吗?或者你如果有代码的话,能不能发给我或者贴出来,我的mail:liangyufei2003@163.com,谢谢!
游客

返回顶部