; ser15x.INF
; Copyright (c) 2009 Your Company Name
;
; Instead of specifying a hardware id of *PNP0501, a vendor-specific
; hardware id is used to trigger the install of a filter driver that
; filters the resources of the children so that they are acceptable to
; serial/serenum
;

[Version]
Signature="$Windows NT$"
Class=MultiPortSerial
ClassGuid={50906CB8-BA12-11D1-BF5D-0000F805F530}
Provider=%OEM%
DriverVer=03/30/2010,3.7.9.70
CatalogFile.ntx86=ser15x.cat
CatalogFile.ntamd64=ser15x.cat

[ControlFlags]
ExcludeFromSelect=*

[Manufacturer]
%OEM%=OEM,ntx86,ntamd64

; VID/PID section
[OEM]
%OEM_2PORT%=OEM2PORT_inst, PCI\VEN_13a8&DEV_0152
%OEM_2PORT%=OEM2PORT_inst, PCI\VEN_13a8&DEV_0252
%OEM_4PORT%=OEM4PORT_inst, PCI\VEN_13a8&DEV_0154
%OEM_4PORT%=OEM4PORT_inst, PCI\VEN_13a8&DEV_0254
%OEM_8PORT%=OEM8PORT_inst, PCI\VEN_13a8&DEV_0158
%OEM_8PORT%=OEM8PORT_inst, PCI\VEN_13a8&DEV_0258

%OEM_2PORT_PCIE%=OEM2PORT_inst, PCI\VEN_13a8&DEV_0352
%OEM_4PORT_PCIE%=OEM4PORT_inst, PCI\VEN_13a8&DEV_0354
%OEM_8PORT_PCIE%=OEM8PORT_inst, PCI\VEN_13a8&DEV_0358

%OEM_44PORT_PCIE%=OEM8PORT_inst, PCI\VEN_13a8&DEV_4354
%OEM_48PORT_PCIE%=OEM12PORT_inst, PCI\VEN_13a8&DEV_8354
%OEM_84PORT_PCIE%=OEM12PORT_inst, PCI\VEN_13a8&DEV_4358
%OEM_88PORT_PCIE%=OEM16PORT_inst, PCI\VEN_13a8&DEV_8358

[OEM.ntx86]
%OEM_2PORT%=OEM2PORT_inst, PCI\VEN_13a8&DEV_0152
%OEM_2PORT%=OEM2PORT_inst, PCI\VEN_13a8&DEV_0252
%OEM_4PORT%=OEM4PORT_inst, PCI\VEN_13a8&DEV_0154
%OEM_4PORT%=OEM4PORT_inst, PCI\VEN_13a8&DEV_0254
%OEM_8PORT%=OEM8PORT_inst, PCI\VEN_13a8&DEV_0158
%OEM_8PORT%=OEM8PORT_inst, PCI\VEN_13a8&DEV_0258

%OEM_2PORT_PCIE%=OEM2PORT_inst, PCI\VEN_13a8&DEV_0352
%OEM_4PORT_PCIE%=OEM4PORT_inst, PCI\VEN_13a8&DEV_0354
%OEM_8PORT_PCIE%=OEM8PORT_inst, PCI\VEN_13a8&DEV_0358

%OEM_44PORT_PCIE%=OEM8PORT_inst, PCI\VEN_13a8&DEV_4354
%OEM_48PORT_PCIE%=OEM12PORT_inst, PCI\VEN_13a8&DEV_8354
%OEM_84PORT_PCIE%=OEM12PORT_inst, PCI\VEN_13a8&DEV_4358
%OEM_88PORT_PCIE%=OEM16PORT_inst, PCI\VEN_13a8&DEV_8358

[OEM.ntamd64]
%OEM_2PORT%=OEM2PORT_inst, PCI\VEN_13a8&DEV_0152
%OEM_2PORT%=OEM2PORT_inst, PCI\VEN_13a8&DEV_0252
%OEM_4PORT%=OEM4PORT_inst, PCI\VEN_13a8&DEV_0154
%OEM_4PORT%=OEM4PORT_inst, PCI\VEN_13a8&DEV_0254
%OEM_8PORT%=OEM8PORT_inst, PCI\VEN_13a8&DEV_0158
%OEM_8PORT%=OEM8PORT_inst, PCI\VEN_13a8&DEV_0258

%OEM_2PORT_PCIE%=OEM2PORT_inst, PCI\VEN_13a8&DEV_0352
%OEM_4PORT_PCIE%=OEM4PORT_inst, PCI\VEN_13a8&DEV_0354
%OEM_8PORT_PCIE%=OEM8PORT_inst, PCI\VEN_13a8&DEV_0358

%OEM_44PORT_PCIE%=OEM8PORT_inst, PCI\VEN_13a8&DEV_4354
%OEM_48PORT_PCIE%=OEM12PORT_inst, PCI\VEN_13a8&DEV_8354
%OEM_84PORT_PCIE%=OEM12PORT_inst, PCI\VEN_13a8&DEV_4358
%OEM_88PORT_PCIE%=OEM16PORT_inst, PCI\VEN_13a8&DEV_8358
;
; -------------------- 2-Port UART Card Section ------------------------
;
[OEM2PORT_inst]
Include = mf.inf
Needs = MFINSTALL.mf

[OEM2PORT_inst.HW]
AddReg=OEM2PORT_inst.RegHW

[OEM2PORT_inst.Services]
Include = mf.inf
Needs = MFINSTALL.mf.Services

[OEM2PORT_inst.RegHW]
; here the system is fooled to start child01 as the first rather than child00
; we have seen that child00 is always the last to enumerate
; this way we can have consisten com numbers both in the app and device manager
HKR,Child00,HardwareID,,OEMPORT
HKR,Child00,ResourceMap,1,02
HKR,Child00,VaryingResourceMap,1,00, 00,02,00,00, 00,02,00,00
HKR,Child01,HardwareID,,OEMPORT
HKR,Child01,ResourceMap,1,02
HKR,Child01,VaryingResourceMap,1,00, 00,00,00,00, 00,02,00,00

;
; -------------------- 4-Port UART Card Section ------------------------
;
[OEM4PORT_inst]
Include = mf.inf
Needs = MFINSTALL.mf

[OEM4PORT_inst.HW]
AddReg=OEM4PORT_inst.RegHW

[OEM4PORT_inst.Services]
Include = mf.inf
Needs = MFINSTALL.mf.Services

[OEM4PORT_inst.RegHW]
HKR,Child00,HardwareID,,OEMPORT
HKR,Child00,ResourceMap,1,00,02
HKR,Child01,HardwareID,,OEMPORT
HKR,Child01,ResourceMap,1,00,02
HKR,Child02,HardwareID,,OEMPORT
HKR,Child02,ResourceMap,1,00,02
HKR,Child03,HardwareID,,OEMPORT
HKR,Child03,ResourceMap,1,00,02

;
; -------------------- 8-Port UART Card Section ------------------------
;
[OEM8PORT_inst]
Include = mf.inf
Needs = MFINSTALL.mf

[OEM8PORT_inst.HW]
AddReg=OEM8PORT_inst.RegHW

[OEM8PORT_inst.Services]
Include = mf.inf
Needs = MFINSTALL.mf.Services

[OEM8PORT_inst.RegHW]
HKR,Child00,HardwareID,,OEMPORT
HKR,Child00,ResourceMap,1,00,02
HKR,Child01,HardwareID,,OEMPORT
HKR,Child01,ResourceMap,1,00,02
HKR,Child02,HardwareID,,OEMPORT
HKR,Child02,ResourceMap,1,00,02
HKR,Child03,HardwareID,,OEMPORT
HKR,Child03,ResourceMap,1,00,02
HKR,Child04,HardwareID,,OEMPORT
HKR,Child04,ResourceMap,1,00,02
HKR,Child05,HardwareID,,OEMPORT
HKR,Child05,ResourceMap,1,00,02
HKR,Child06,HardwareID,,OEMPORT
HKR,Child06,ResourceMap,1,00,02
HKR,Child07,HardwareID,,OEMPORT
HKR,Child07,ResourceMap,1,00,02

;
; -------------------- 12-Port UART Card Section ------------------------
;
[OEM12PORT_inst]
Include = mf.inf
Needs = MFINSTALL.mf

[OEM12PORT_inst.HW]
AddReg=OEM12PORT_inst.RegHW

[OEM12PORT_inst.Services]
Include = mf.inf
Needs = MFINSTALL.mf.Services

[OEM12PORT_inst.RegHW]
HKR,Child00,HardwareID,,OEMPORT
HKR,Child00,ResourceMap,1,00,02
HKR,Child01,HardwareID,,OEMPORT
HKR,Child01,ResourceMap,1,00,02
HKR,Child02,HardwareID,,OEMPORT
HKR,Child02,ResourceMap,1,00,02
HKR,Child03,HardwareID,,OEMPORT
HKR,Child03,ResourceMap,1,00,02
HKR,Child04,HardwareID,,OEMPORT
HKR,Child04,ResourceMap,1,00,02
HKR,Child05,HardwareID,,OEMPORT
HKR,Child05,ResourceMap,1,00,02
HKR,Child06,HardwareID,,OEMPORT
HKR,Child06,ResourceMap,1,00,02
HKR,Child07,HardwareID,,OEMPORT
HKR,Child07,ResourceMap,1,00,02
HKR,Child08,HardwareID,,OEMPORT
HKR,Child08,ResourceMap,1,00,02
HKR,Child09,HardwareID,,OEMPORT
HKR,Child09,ResourceMap,1,00,02
HKR,Child10,HardwareID,,OEMPORT
HKR,Child10,ResourceMap,1,00,02
HKR,Child11,HardwareID,,OEMPORT
HKR,Child11,ResourceMap,1,00,02

;
; -------------------- 16-Port UART Card Section ------------------------
;
[OEM16PORT_inst]
Include = mf.inf
Needs = MFINSTALL.mf

[OEM16PORT_inst.HW]
AddReg=OEM16PORT_inst.RegHW

[OEM16PORT_inst.Services]
Include = mf.inf
Needs = MFINSTALL.mf.Services

[OEM16PORT_inst.RegHW]
HKR,Child00,HardwareID,,OEMPORT
HKR,Child00,ResourceMap,1,00,02
HKR,Child01,HardwareID,,OEMPORT
HKR,Child01,ResourceMap,1,00,02
HKR,Child02,HardwareID,,OEMPORT
HKR,Child02,ResourceMap,1,00,02
HKR,Child03,HardwareID,,OEMPORT
HKR,Child03,ResourceMap,1,00,02
HKR,Child04,HardwareID,,OEMPORT
HKR,Child04,ResourceMap,1,00,02
HKR,Child05,HardwareID,,OEMPORT
HKR,Child05,ResourceMap,1,00,02
HKR,Child06,HardwareID,,OEMPORT
HKR,Child06,ResourceMap,1,00,02
HKR,Child07,HardwareID,,OEMPORT
HKR,Child07,ResourceMap,1,00,02
HKR,Child08,HardwareID,,OEMPORT
HKR,Child08,ResourceMap,1,00,02
HKR,Child09,HardwareID,,OEMPORT
HKR,Child09,ResourceMap,1,00,02
HKR,Child10,HardwareID,,OEMPORT
HKR,Child10,ResourceMap,1,00,02
HKR,Child11,HardwareID,,OEMPORT
HKR,Child11,ResourceMap,1,00,02
HKR,Child12,HardwareID,,OEMPORT
HKR,Child12,ResourceMap,1,00,02
HKR,Child13,HardwareID,,OEMPORT
HKR,Child13,ResourceMap,1,00,02
HKR,Child14,HardwareID,,OEMPORT
HKR,Child14,ResourceMap,1,00,02
HKR,Child15,HardwareID,,OEMPORT
HKR,Child15,ResourceMap,1,00,02


[Strings]
OEM= "EXAR"
OEM_2PORT="OEM's 2-Port UART PCI Card"
OEM_4PORT="OEM's 4-Port UART PCI Card"
OEM_8PORT="OEM's 8-Port UART PCI Card"
OEM_2PORT_PCIE="OEM's 2-Port UART PCI-Express Card"
OEM_4PORT_PCIE="OEM's 4-Port UART PCI-Express Card"
OEM_8PORT_PCIE="OEM's 8-Port UART PCI-Express Card"
OEM_44PORT_PCIE="OEM's 8-Port (4+4) UART PCI-Express Card with Expansions Slot"
OEM_48PORT_PCIE="OEM's 12-Port (4+8) UART PCI-Express Card with Expansions Slot"
OEM_84PORT_PCIE="OEM's 12-Port (8+4) UART PCI-Express Card with Expansions Slot"
OEM_88PORT_PCIE="OEM's 16-Port (8+8) UART PCI-Express Card with Expansions Slot"