qlang
驱动牛犊
驱动牛犊
  • 注册日期2002-02-01
  • 最后登录2002-11-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1649回复:12

关于查找硬件的问题

楼主#
更多 发布于:2002-05-13 15:10
我一直想不明白对于pnp的硬件(比如pci)是怎么查找硬件的,
书上说是通过总线驱动程序发现有硬件,然后得到硬件相应寄存器的内容,比如venderid,productid什么的。这是通过什么方式得到的??是不是还是通过HalGetBusData()函数得到?
但是ddk上说:“Drivers should use the PnP Manager\'s IRP_MN_QUERY_INTERFACE and IRP_MN_READ_CONFIG requests instead. ”不用这又用什么函数,或者该怎么弄??该不会还会在总线驱动程序里面做点什么吧?那又怎么做?我更不会了!
我是新手,给我说一说吧,要是你能给我一个有关查找硬件的例子
更好!我的信箱:qlang95@sohu.com谢谢

最新喜欢:

dregsdregs
我不懂的希望你告诉我,我懂的 想告诉你
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-05-13 15:16
都帮你找到了,你还要怎么样呀! :D
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-05-13 15:22
支持pnp的硬件可以在自己的寄存器中告诉系统自己的信息
然后总线驱动程序可以读出这些信息放到注册表里,这实在系统启动的时候做的,然后pnp管理器会把这些信息用irp发给你,你收到就ok了
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
qlang
驱动牛犊
驱动牛犊
  • 注册日期2002-02-01
  • 最后登录2002-11-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-05-13 15:28
我就是想知道怎么得到的嘛!!总线驱动程序发现有硬件,是怎么
取得硬件寄存器的内容的(通过什么方式,或者什么函数)!!根据这些ID,我在驱动程序才能判断是否就是我找的硬件阿!!
我不懂的希望你告诉我,我懂的 想告诉你
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-05-13 15:31
这是和总线规范有关的
推荐去看pci2.0总线规范
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
qlang
驱动牛犊
驱动牛犊
  • 注册日期2002-02-01
  • 最后登录2002-11-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-05-14 11:47
zydcat
支持pnp的硬件可以在自己的寄存器中告诉系统自己的信息
然后总线驱动程序可以读出这些信息放到注册表里,这实在系统启动的时候做的,然后pnp管理器会把这些信息用irp发给你,你收到就ok了


我好像理解了,但是设备id,制造商id等标识该设备东东就是我所找的设备,他们应该在什么字段给出了??比如说我用的5920桥接芯片,但是deviceid =5920应该在什么字段给出?我的驱动程序要根据这(当然还有一些其它信息)判断这就是我找的设备!!您最好能不能给我一个pnp(跟硬件相关的)例子,这样我就好依葫芦画瓢嘛!!发在我的e-mail里好吗?qlang95@371.net谢谢啦!
我不懂的希望你告诉我,我懂的 想告诉你
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-05-14 11:52
呵呵
我没有现成的例子
你到2kddk的例程里找找吧
那儿肯定有
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
qlang
驱动牛犊
驱动牛犊
  • 注册日期2002-02-01
  • 最后登录2002-11-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-05-14 12:24
呵呵
我没有现成的例子
你到2kddk的例程里找找吧
那儿肯定有


好像没有跟硬件有关的,只是一些框架程序,我想找一个具体跟硬件相关的阿,你以前肯定作过嘛,你可不可以。。。。帮忙帮到底嘛
有机会我请你吃饭嘛
我不懂的希望你告诉我,我懂的 想告诉你
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-05-14 14:46
我真的没有,
pci设备的设备id号和厂商id号一般是在安装的时候由总线驱动读出来和你的inf文件中的一个字段进行匹配,如果符合才会安装。
没见过要在驱动中读出来的
估计读也可以,只要知道它的地址,应该没问题的,但是这得看你的设备的总线规范了。
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
qlang
驱动牛犊
驱动牛犊
  • 注册日期2002-02-01
  • 最后登录2002-11-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-05-14 17:49
zydcat
谢谢你!
我知道了,还有一事不明,就是驱动分层,比如就简单并口驱动程序,当他收到一个irp时,经过一系列处理调用IoCallDriver(parentDevObj, Irp),我知道这
是往下层驱动发送irp,但是,它的下层驱动应该是什么驱动??是不是总线驱动程序?如果是总线驱动程序的话,(跟我要做那一个驱动程序也得分层??)该不会需要重新编写总线驱动吧??还有,5920 是否支持pnp?

我不懂的希望你告诉我,我懂的 想告诉你
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2002-05-15 09:01
总线驱动就不需要你写了。
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-05-15 09:10
下层驱动是什么,得看具体情况,不一定是总线驱动。
驱动层次结构是这样的:

上层过滤器驱动
   |
功能驱动
   |
下层过滤器驱动
   |
总线驱动

所以要看上层是什么才知道下层
而且过滤器驱动可以有很多层的。

你要做驱动不一定要分层,分层是为了扩展底层驱动的功能而采用的
能在一层搞定,不需要分层。

另外,5920是什么东西,说清楚一些,是总线芯片吗。
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
qlang
驱动牛犊
驱动牛犊
  • 注册日期2002-02-01
  • 最后登录2002-11-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-05-15 12:56
zydcat
5920是桥接芯片,既然你都不知道是什么,想必也不知道,我自己慢慢看资料吧,只是e文的,从小e文差,有点不好董。
 我做的是图像结出,接入卡。我也不知道需不需要分层阿??
问题是:如果我不分层,就是直接在一层驱动里面进行设备查找,资源分配,读写设备什么的。。
    如果我写分层驱动那设备查找,资源分配,读写设备什么的。。
具体应该在哪一层写?
  你能不能告诉我你的qq号?我就这几天一直不出差,你如果方便的话,我们可以直接。。。
  我其实从今年春节以来就开始看书,苦于中途出差两个月,这不说不定哪天要要走了,我就急着这几天想把它弄出个眉目来!!
我的qq:20418574加上我的时候,说明你是zydcat
谢谢

我不懂的希望你告诉我,我懂的 想告诉你
游客

返回顶部