woodylee
驱动牛犊
驱动牛犊
  • 注册日期2005-06-08
  • 最后登录2005-09-01
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:899回复:0

pci卡资源分配的问题,高手帮忙啊

楼主#
更多 发布于:2005-07-07 14:53
  我有一块cpci的卡,就是可以热插拔的pci卡,按下面的步骤:

1、将卡插到系统中,再开机,启动windows。卡的驱动加载正常,系统也正常的给卡分配了
  io、内存和中断。通过读写pci总线的配置空间,我把映射内存的三个地址、io和中断
  相关的寄存器内容都记录下来。
2、如果将卡拔出,然后再正常开机,启动到windows里面。再将卡插入,读pci配置空间
  发现BAR中都是0,也就是没有分配内存和io,然后中断号是ff,也没有分配中断。
  我在设备管理器里面扫描硬件改动,windows能加载我的驱动程序,并且在设备管理器里
面出现了我的设备,
  只是设备图标里面有一个叹号,查看属性的话,发现系统没有分配任何的中断、io和内
  存,系统的提示是没有足够的资源分配,和别的设备冲突。可是我插卡了所有的设备所
  用的资源,都不包括步骤1里面记下来我的卡所用的资源,也就是我认为这些资源应该
  是可用的。读pci配置空间和扫描硬件之前一样,资源都是空的。
3、和步骤二相似,只是在扫描硬件改动之前,我把1步骤里面记录下的资源写到我的卡的配
  置空间(通过查看发现也写进去了),然后步骤和2相同。这次设备的属性中有了那些
  资源,但是在前面有一个红色的圈(里面还有一斜杠,就是不能用)。系统提示是内存
  范围×××-×××不可用,输入/输出×××-×××不可用,中断倒是可用。通过
  设备管理器里面选择“依类型排序资源”,倒是看见了那些资源也被我的卡占用了。

请问,为什么热插入,通过设备管理器中扫描硬件,系统不能分配资源?是因为不能用这种
  方式启动设备,还是要调用pci总线的相关函数在我的驱动程序中自己申请资源?
  我看有相关的资料说在pnp manager发送 IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP时
  可以改动资源列表?不知道如何使用,能不能解决我的问题?
游客

返回顶部