阅读:3876回复:22
有关一机多卡的问题
有以下问题问大家,向大家寻求帮助!
1、在一台机器上插入相同的多块pci卡如何实现? 2、在一台机器上插入相同的多块pci卡时,每块卡的bios应该如何设置?每块卡的bios是否应该不一样,哪些内容不一样。 3、在一台机器上插入相同的多块pci卡时,对应的wdm驱动应该如何实现,每块卡对应一个驱动程序还是一个驱动程序可以同时驱动多块卡?具体应该如何实现。 哪位同仁对其感兴趣,我们可以多交流,以便于以后的合作,此卡很有前途。希望合作愉快!谢谢! |
|
沙发#
发布于:2002-10-14 16:56
不知道你是否用driverstdio,如果有,你可以在驱动的
NTSTATUS M256_2::DriverEntry(PUNICODE_STRING RegistryPath)函数中,加入 while ( KPciConfiguration::Enumerate(PciSlot, &VendorId, &DeviceId))遍历系统中的PCI卡,并返回他们的VendorId和DeviceId,然后通过判断为你的PCI卡创建指针。 然后定义一个静态变量static KPciSlot PciSlot; 你还要在你的设备类的构造函数的参数 m_PCIConfig(PCI_VENDOR_ID, PCI_DEVICE_ID, &PciSlot), 在函数体中,加入PciSlot=(KPciSlot) m_PCIConfig;保证创建的设备对象指向不同的卡。 第2个问题没有必要回答,因为PCI卡没有BIOS。这里叫配置空间,里面的内容是在系统启动是由主板的BIOS写入的。 |
|
板凳#
发布于:2002-10-14 18:17
实现很简单,方法也有多种,你只需要记住一点:
对于每个设备,AddDevice 会被调用一次,通常也就是在此函数中调用IoCreateDevice创建FDO,只要利用某种机制如全局变量等使得每次建立的设备不重复就行。 |
|
|
地板#
发布于:2002-10-29 19:06
有以下问题问大家,向大家寻求帮助! 我只做过在WinNT下的多卡driver。 1,一台机上,插多块卡,必须得到每块卡的linear address,然后才能去访问各块卡上的registers. 2。你说的是显卡吗?如果是显卡的话,系统只会把一张卡认为是VGA enable的。所以,可以把其余卡上的BIOS拔去,根本不需要。 3。当然只用一个驱动,就可以驱动多块卡了。 我以上说的只是针对显卡而言的。 |
|
地下室#
发布于:2002-11-01 10:52
我认为一机多卡,一卡一程序是很容易做到的。
虽然这些卡都是同一种桥片,设备号和售主号一样,但子设备号和子售主号可自己设置呀,这些设置成不一样,系统就会按不同的卡处理。每个卡就会装上自己的驱动程序。 多卡一程序,就应像楼上机位老兄说的了,但多卡子设备号和子售主号也应不同,以便程序识别。 |
|
|
5楼#
发布于:2003-01-16 13:56
那怎么处理中断呢?我好象不能判断是哪快卡来的中断。
|
|
|
6楼#
发布于:2003-01-16 14:10
所有的卡怪杰相同的中断。在PCI设备中,有一位标志设备的当前中断状态。你的中断历程必须检测每个设备的此位,一决定是谁产生的中断,最后清除之就可以了。
|
|
7楼#
发布于:2003-01-16 19:49
所有的卡怪杰相同的中断。在PCI设备中,有一位标志设备的当前中断状态。你的中断历程必须检测每个设备的此位,一决定是谁产生的中断,最后清除之就可以了。 就算插上完全相同的卡,启动时自然会得到不同的资源,驱动只要检测当前资源中的标志位就可以了,不必检测每个设备 |
|
|
8楼#
发布于:2003-01-17 10:30
个人认为也不要那末复杂! 系统应该可以自行处理!
|
|
|
9楼#
发布于:2003-01-17 14:13
另外,h13这张水纹好酷呀! 自己做的吗?
|
|
|
10楼#
发布于:2003-01-17 14:26
在创建device object的时候可以有手段,比如编号。
app用卡的时候根据编号识别。 |
|
11楼#
发布于:2003-01-17 15:05
另外,h13这张水纹好酷呀! 自己做的吗? 完了完了,好像我的签名被zn删了,水纹用了java applet,不用做自己会动的,可现在不行了 :( |
|
|
12楼#
发布于:2003-01-18 23:24
我实现了一机/一驱动/多卡的应用,
我的应用程序是靠GUID的方式跟驱动程序通讯的, 所以每个卡,我会分配单独的GUID给它. 但我发现,像网卡之类的驱动程序,GUID在INF里面,就是说, 多卡对应一个GUID. 请问: 1、我的方法对不对? 2、AddDevice添加的多个设备后,是不是多个PDO? 还是一个PDO对应多个FDO?也就是说,每个卡是 不是仅仅是一个FDO。 |
|
|
13楼#
发布于:2003-01-19 11:42
1. 多个卡可以用一个guid,chris有通过同一个guid打开多个设备的例子getdeviceviainterface,可以看一下他的那本书
2、我这里多个卡就是多个pdo,每个pdo对应一个fdo,也就是每个卡都是独立的设备,我想如果驱动之间不是有功能性的依赖关系的话应该都是相互独立的 |
|
|
14楼#
发布于:2003-01-20 14:52
那上层软件不就要知道有多少个物理设备名了吗?如果想做一驱动对应多卡不知如何做?
|
|
15楼#
发布于:2003-01-20 17:16
不用知道各个物理设备名,就用getdeviceviainterface就可以了,可以另外用类似的函数得到对应于同一个guid的设备数目。
|
|
|
16楼#
发布于:2003-01-20 17:27
我在驱动中就对设备名进行了固定,如“Mydevice\",现在想通过这个设备名在驱动中分离对任意卡的操作
|
|
17楼#
发布于:2003-01-21 09:35
我在驱动中就对设备名进行了固定,如“Mydevice\",现在想通过这个设备名在驱动中分离对任意卡的操作 不好意思老在别人地盘谈论,我已经pm你我的qq,我们交流交流 |
|
|
18楼#
发布于:2003-01-21 13:56
对不起,我的以前邮箱已经不能用了,发到glqg@21cn.com好吗?
|
|
19楼#
发布于:2003-01-21 21:28
我认为一机多卡,一卡一程序是很容易做到的。 hglzw \"子设备号和子售主号\"自己是怎样设置的啊?是不是硬件设置,然后在INF文件中进行相应的对应, |
|
|
上一页
下一页