使程序看到已编程为检测PCI的PCIe卡



我有一个第三方专有软件,它在一些旧硬件上,这个盒子还有一个PCI SCSI卡,它插入了一台特殊的机器,这个软件被编程为查看卡插入的PCI端口。我最近将盒子升级为HP elitedesk 800 G3塔。我购买了一个自定义的SCSI到PCIe卡,因为它不再有PCI端口。我遇到的问题是,该程序正在寻找PCI,不会检测到任何东西,因为没有PCI端口。我知道这可能需要一些独创性,但我想解决一些问题,因为我们已经花了很多钱升级这些系统。我看到PCI到PCIe适配器,但这不会解决任何问题。有没有软件可以给我一些虚拟PCI端口,我们可以"欺骗"软件,让它认为已经安装并将PCIe指向它?我不知道这是否可能。这个软件的配置文件在下面,我不知道希腊语是什么。也许有更多知识的人会有想法?

; ICS.INF
; Copyright (c) 1999
[Version]
Signature="$CHICAGO$"
Class="Data Acquisition"
Provider=%IO%
[DestinationDirs]
DefaultDestDir=11
ComPort.Copy=17
[Manufacturer]
%ACCES%=IOMAN
[IOMAN]
%PCICOM1S%=ComPort,PCIVEN_494F&DEV_10C8
%PCICOM1Sa%=ComPort,PCIVEN_494F&DEV_10C9
%PCICOM2321S%=ComPort,PCIVEN_494F&DEV_1088
%PCICOM2S%=ComPort2,PCIVEN_494F&DEV_10D0
%PCICOM2322S%=ComPort2,PCIVEN_494F&DEV_1090
%PCIICM1S%=ComPort,PCIVEN_494F&DEV_1148
%PCIICM4222%=ComPort2,PCIVEN_494F&DEV_1150
%PCIICM4852%=ComPort2,PCIVEN_494F&DEV_1151
%PCIICM4224%=ComPort4,PCIVEN_494F&DEV_1158
%PCIICM4854%=ComPort4,PCIVEN_494F&DEV_1159
%PCICOM4224%=ComPort4,PCIVEN_494F&DEV_1058
%PCICOM4854%=ComPort4,PCIVEN_494F&DEV_1059
%PCIDA1216%=InstallSect,PCIVEN_494F&DEV_6CB0
%PCIDA128%=InstallSect,PCIVEN_494F&DEV_6CA8
%PCIDA1216V%=InstallSect,PCIVEN_494F&DEV_6CB1
%PCIDA128V%=InstallSect,PCIVEN_494F&DEV_6CA9
%PCIDIO24H%=InstallSect,PCIVEN_494F&DEV_0C50
%PCIDIO24D%=InstallSect,PCIVEN_494F&DEV_0C51
%PCIDIO24HC%=InstallSect,PCIVEN_494F&DEV_0E51
%PCIDIO24DC%=InstallSect,PCIVEN_494F&DEV_0E52
%PCIDIO24S%=InstallSect,PCIVEN_494F&DEV_0E50
%PCIDIO48%=InstallSect,PCIVEN_494F&DEV_0C60
%PCIDIO48S%=InstallSect,PCIVEN_494F&DEV_0E60
%PCIDIO72%=InstallSect,PCIVEN_494F&DEV_0C68
%PCIDIO96%=InstallSect,PCIVEN_494F&DEV_0C70
%PCIDIO120%=InstallSect,PCIVEN_494F&DEV_0C78
%PCIWDGCSM%=InstallSect,PCIVEN_494F&DEV_22C0
%PCIAI1216%=InstallSect,PCIVEN_494F&DEV_ACA8
%PCIAI1216A%=InstallSect,PCIVEN_494F&DEV_ACA9
%PCIIIRO8%=InstallSect,PCIVEN_494F&DEV_0F00
%PCM485%=ComPort,PCMCIAIndustrial_Computer_Source-PCM485-A505
%PCM485%=ComPort,PCMCIAIndustrial_Computer_Source-PCM485-D2B0
%PCM485%=ComPort,PCMCIAIndustrial_Computer_Source-PCM485-B233
%PCM485%=ComPort,PCMCIAIndustrial_Computer_Source-PCM485-D2ED
%PCM485%=ComPort,PCMCIAIndustrial_Computer_Source-PCM485-7609
%PAD128%=InstallSect,PCMCIAIndustrial_Computer_Source-PAD128-4498
%PAD128%=InstallSect,PCMCIAIndustrial_Computer_Source-PAD128-74EE
%PIOD24%=InstallSect,PCMCIAIndustrial_Computer_Source-PIOD24-2705
%PIOD24%=InstallSect,PCMCIAIndustrial_Computer_Source-PIOD24-368B
%PIOD24%=InstallSect,PCMCIAIndustrial_Computer_Source-PIOD24-32B6
%PIOD24%=InstallSect,PCMCIAIndustrial_Computer_Source-PIOD24-8BDC
%MF485PORTA%=ComPort,MF485PORTA
%MF485PORTB%=ComPort,MF485PORTB
%MF485PORTC%=ComPort,MF485PORTC
%MF485PORTD%=ComPort,MF485PORTD
[InstallSect] 
[ComPort2]
AddReg=StandardMF.Reg
[ComPort4]
AddReg=StandardMF.Reg
[StandardMF.Reg]
HKR,,DevLoader,,*CONFIGMG
HKR,,Enumerator,,*CONFIGMG
HKR,,CMDrivFlags,01,03,00,00,00
[ComPort2.HW]
AddReg=ComPort2.RegHW
[ComPort4.HW]
AddReg=ComPort4.RegHW
[ComPort2.RegHW]
HKR,Child0000,HardwareID,,MF485PORTA
HKR,Child0000,ResourceMap,1,00,03
HKR,Child0001,HardwareID,,MF485PORTB
HKR,Child0001,ResourceMap,1,00,04
[ComPort4.RegHW]
HKR,Child0000,HardwareID,,MF485PORTA
HKR,Child0000,ResourceMap,1,00,03
HKR,Child0001,HardwareID,,MF485PORTB
HKR,Child0001,ResourceMap,1,00,04
HKR,Child0002,HardwareID,,MF485PORTC
HKR,Child0002,ResourceMap,1,00,05
HKR,Child0003,HardwareID,,MF485PORTD
HKR,Child0003,ResourceMap,1,00,06
[Ports.AddReg]
HKR,,NoSetupUI,,1
[ComPort]
CopyFiles=ComPort.Copy,VXD.Copy
AddReg=ComPort.AddReg
LogConfig=c14,c1a,c23,c2a,c34,c3a,c43,c4a,caa
[ComPort.Copy]
ics.inf
[VXD.Copy]
[ComPort.AddReg]
HKR,,DevLoader,,*vcomm
HKR,,Enumerator,,serenum.vxd
HKR,,PortDriver,,serial.vxd
HKR,,Contention,,*vcd
HKR,,ConfigDialog,,serialui.dll 
HKR,,DCB,3,1C,00,00,00, 80,25,00,00, 11,33,00,00, 00,00, 0a,00, 0a,00, 08,    00, 00, 11, 13, 00, 00, 00
HKR,,PortSubClass,1,01
HKR,,EnumPropPages,,"serialui.dll,EnumPropPages"
[*pnp0500.det]
AddReg=Ports.AddReg,DevMap.AddReg
; The following sections are COM port resource configs.
; Section name format means:
; Char 1 = c (COM port)
; Char 2 = I/O config: 1 (3f8), 2 (2f8), 3 (3e8), 4 (2e8), a (any)
; Char 3 = IRQ config: #, a (any)
[c14]                   ; COM1,IRQ4
ConfigPriority=HARDRECONFIG
IOConfig=3f8-3ff(3ff::)
IRQConfig=S:4
[c1a]                   ; COM1, any IRQ
ConfigPriority=HARDRECONFIG
IOConfig=3f8-3ff(3ff::)
IRQConfig=S:3,4,5,7,9,10,11,12,14,15
[c23]                   ; COM2, IRQ3
ConfigPriority=HARDRECONFIG
IOConfig=2f8-2ff(3ff::)
IRQConfig=S:3
[c2a]                   ; COM2, any IRQ
ConfigPriority=HARDRECONFIG
IOConfig=2f8-2ff(3ff::)
IRQConfig=S:3,4,5,7,9,10,11,12,14,15
[c34]                   ; COM3, IRQ4
ConfigPriority=HARDRECONFIG
IOConfig=3e8-3ef(3ff::)
IRQConfig=S:4
[c3a]                   ; COM3, any IRQ
ConfigPriority=HARDRECONFIG
IOConfig=3e8-3ef(3ff::)
IRQConfig=S:3,4,5,7,9,10,11,12,14,15
[c43]                   ; COM4, IRQ3
ConfigPriority=HARDRECONFIG
IOConfig=2e8-2ef(3ff::)
IRQConfig=S:3,5
[c4a]                   ; COM4, any IRQ
ConfigPriority=HARDRECONFIG
IOConfig=2e8-2ef(3ff::)
IRQConfig=S:3,4,5,7,9,10,11,12,14,15
[caa]                   ; Any base, any IRQ
ConfigPriority=HARDRECONFIG
IOConfig=8@100-ffff%fff8(3ff::)
IRQConfig=S:3,4,5,7,9,10,11,12,14,15
; End COM port LogConfig sections
[ComPort.PosDup]
*PNP0500,*PNP0501
[ControlFlags]
[Strings]
IO="Industrial Computer Source"
PCICOM1S="Industrial Computer Source PCI-COM1S"
PCICOM1Sa="Industrial Computer Source PCI-COM-1S"
PCICOM2321S="Industrial Computer Source PCI-COM-232/1"
PCICOM2S="Industrial Computer Source PCI-COM-2S"
PCICOM2322S="Industrial Computer Source PCI-COM-232/2"
PCIICM1S="Industrial Computer Source PCI-ICM-1S"
PCIICM4222="Industrial Computer Source PCI-ICM422/2"
PCIICM4852="Industrial Computer Source PCI-ICM485/2"
PCIICM4224="Industrial Computer Source PCI-ICM422/4"
PCIICM4854="Industrial Computer Source PCI-ICM485/4"
PCICOM4224="Industrial Computer Source PCI-COM422/4"
PCICOM4854="Industrial Computer Source PCI-COM485/4"
PCIDA1216="Industrial Computer Source PCI-DA12-16"
PCIDA128="Industrial Computer Source PCI-DA12-8"
PCIDA1216V="Industrial Computer Source PCI-DA12-16V"
PCIDA128V="Industrial Computer Source PCI-DA12-8V"
PCIDIO24H="Industrial Computer Source PCI-DIO-24H"
PCIDIO24D="Industrial Computer Source PCI-DIO-24D"
PCIDIO24HC="Industrial Computer Source PCI-DIO-24H With Counter(s)"
PCIDIO24DC="Industrial Computer Source PCI-DIO-24D With Counter(s)"
PCIDIO24S="Industrial Computer Source PCI-DIO-24S"
PCIDIO48="Industrial Computer Source PCI-DIO-48"
PCIDIO48S="Industrial Computer Source PCI-DIO-48S"
PCIDIO72="Industrial Computer Source PCI-DIO-72"
PCIDIO96="Industrial Computer Source PCI-DIO-96"
PCIDIO120="Industrial Computer Source PCI-DIO-120"
PCIWDGCSM="Industrial Computer Source PCI-WDG-CSM"
PCIAI1216="Industrial Computer Source PCI-AI12-16"
PCIAI1216A="Industrial Computer Source PCI-AI12-16A"
PCIIIRO8="Industrial Computer Source PCI-IIRO-8"
PCM485="Industrial Computer Source PC CARD (PCMCIA) PCM485"
PAD128="Industrial Computer Source PC CARD (PCMCIA) PAD128"
PIOD24="Industrial Computer Source PC CARD (PCMCIA) PIOD24"
MF485PORTA="COM Port A"
MF485PORTB="COM Port B"
MF485PORTC="COM Port C"
MF485PORTD="COM Port D"

问题不在于PCI与PCIe。PCI和PCIe在软件上看起来几乎相同。问题是,软件正在查找供应商ID/设备ID的特定列表之一,而您的新SCSI卡具有不同的ID。

我不知道为什么你说PCIe到PCI桥不能解决任何问题;它可以让你插入旧的PCI卡,在我看来它可能会工作。(当然,如果不尝试就无法确定。)

如果你想使用新卡,最好的办法是为新卡获取一个驱动程序,该驱动程序提供旧软件所需的软件接口。根据旧软件的设计,这可能是可能的,也可能不是。如果软件在不经过驱动程序的情况下直接搜索硬件,则需要修改软件以使用新硬件。

最后,您要求的解决方案是使用虚拟机管理器(VMM)在虚拟机(VM)中运行旧软件,该管理器提供与您的软件所要查找的PCI设备匹配的虚拟设备。如果PCI设备是现有VMM支持的标准设备,这可能是最简单的解决方案。不幸的是,它更有可能需要虚拟化专家来编写自定义软件,而且这将比以前的建议做得更多。

最新更新