sheng_hui
驱动牛犊
驱动牛犊
  • 注册日期2003-12-22
  • 最后登录2009-07-19
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望27点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1987回复:4

请教关于PCI初始化的问题

楼主#
更多 发布于:2004-06-21 09:34
  由于第一次编写PCI的驱动,所以有许多地方不明白,有几个问题想请教一下大家。
  我用的是PCI9054芯片,在WIN2000下用DDK开发的驱动程序。我在本站的“源代码共享”区下了一个例程PCI_SAMPLE,在其DriverEntry中,首先用HalGetBusData()枚举所有的pci设备,并将这些设备的Vendor ID和Device ID与我的设备卡比较,找到我的pci设备卡,获得其设备信息。然后利用HalAssignSlotResource()获得该设备占用的资源。最后用HalTranslateBusAddress()和HalGetInterruptVentor()进行地址和中断的格式转换。
   我的问题是:在win2000下是否也需要同样的过程?pnp管理器能否帮我们完成这些工作?谢谢
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-06-21 10:50
用户被禁言,该主题自动屏蔽!
sheng_hui
驱动牛犊
驱动牛犊
  • 注册日期2003-12-22
  • 最后登录2009-07-19
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望27点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-21 14:01
在ddk的帮助文件中也提到了这一点,我想知道在pci的初始化过程中,这些函数所完成的工作是不是能够由pnp管理器来完成,设备占用的资源通过irp堆栈来传递给我们使用?如果必须要利用代码来人工查找设备及其占用的资源的话,替代函数是什么?谢谢
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-01 15:48
 由于第一次编写PCI的驱动,所以有许多地方不明白,有几个问题想请教一下大家。
  我用的是PCI9054芯片,在WIN2000下用DDK开发的驱动程序。我在本站的“源代码共享”区下了一个例程PCI_SAMPLE,在其DriverEntry中,首先用HalGetBusData()枚举所有的pci设备,并将这些设备的Vendor ID和Device ID与我的设备卡比较,找到我的pci设备卡,获得其设备信息。然后利用HalAssignSlotResource()获得该设备占用的资源。最后用HalTranslateBusAddress()和HalGetInterruptVentor()进行地址和中断的格式转换。
   我的问题是:在win2000下是否也需要同样的过程?pnp管理器能否帮我们完成这些工作?谢谢
 



我理解你下载的是用于NT下的驱动程序,所以存在比较的问题,如果是在2000下就不需要这些了,因为PNP管理器负责了这些(这样说不一定妥当),过程是这样的:开机主板BIOS检测PCI板卡上的配置信息,引导系统,系统发送IRP给板卡驱动程序把资源告诉驱动。

呵呵,我是这么理解的。
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
sheng_hui
驱动牛犊
驱动牛犊
  • 注册日期2003-12-22
  • 最后登录2009-07-19
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望27点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-02 13:51
libin2309,你理解得没错,我们可以从irp的resource列表中获得资源信息,谢谢帮助
游客

返回顶部