阅读:1987回复:4
请教关于PCI初始化的问题
由于第一次编写PCI的驱动,所以有许多地方不明白,有几个问题想请教一下大家。
我用的是PCI9054芯片,在WIN2000下用DDK开发的驱动程序。我在本站的“源代码共享”区下了一个例程PCI_SAMPLE,在其DriverEntry中,首先用HalGetBusData()枚举所有的pci设备,并将这些设备的Vendor ID和Device ID与我的设备卡比较,找到我的pci设备卡,获得其设备信息。然后利用HalAssignSlotResource()获得该设备占用的资源。最后用HalTranslateBusAddress()和HalGetInterruptVentor()进行地址和中断的格式转换。 我的问题是:在win2000下是否也需要同样的过程?pnp管理器能否帮我们完成这些工作?谢谢 |
|
沙发#
发布于:2004-06-21 10:50
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2004-06-21 14:01
在ddk的帮助文件中也提到了这一点,我想知道在pci的初始化过程中,这些函数所完成的工作是不是能够由pnp管理器来完成,设备占用的资源通过irp堆栈来传递给我们使用?如果必须要利用代码来人工查找设备及其占用的资源的话,替代函数是什么?谢谢
|
|
地板#
发布于:2004-07-01 15:48
由于第一次编写PCI的驱动,所以有许多地方不明白,有几个问题想请教一下大家。 我理解你下载的是用于NT下的驱动程序,所以存在比较的问题,如果是在2000下就不需要这些了,因为PNP管理器负责了这些(这样说不一定妥当),过程是这样的:开机主板BIOS检测PCI板卡上的配置信息,引导系统,系统发送IRP给板卡驱动程序把资源告诉驱动。 呵呵,我是这么理解的。 |
|
|
地下室#
发布于:2004-07-02 13:51
libin2309,你理解得没错,我们可以从irp的resource列表中获得资源信息,谢谢帮助
|
|