;***********************************************************************
;
; OEMSETUP.INF
;
; Version 1.34 NDIS 3.0
;
; Olicom network card and driver SETUP INF file.
;
;***********************************************************************
;-----------------------------------------------------------------------
; OPTION TYPE
; -----------
; This identifies the Option type we are dealing with. The different
; possible types are:
;
; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
;
; Types specific to networking:
;
; NetAdapter, a netcard / adapter combination or just a netcard
; NetDriver, just a netcard driver
; NetTransport, a complete NDIS-compliant TDI transport stack
; NetService, an NT networking service
; NetWork, a complete network ensemble.
; NetProvider a complete network which supports NT MPR protocol
;-----------------------------------------------------------------------
[Identification]
OptionType = NetAdapter
;-----------------------------------------------------------------------
; PlatformsSupported
; ------------------
; This identifies the platforms supported by the adapter card.
; Possible types are:
;
; ISA, EISA, MCA, "Jazz-Internal Bus", PC Card and PCI
;-----------------------------------------------------------------------
[PlatformsSupported]
ISA
EISA
MCA
"Jazz-Internal Bus"
PCMCIA
PCI
[LanguagesSupported]
ENG
;-----------------------------------------------------------------------
; OPTION LIST
; -----------
; This section lists the OEM Option key names. These keys are locale
; independent and used to represent the option in a locale independent
; manner.
;
;-----------------------------------------------------------------------
[Options]
; OCTX3117
; OCTX3118
; OCTX3129
; OCTX3133
; OCTX3136
; OCTX3137
; OCTX3139
OCTX3140
OCTX3141
; OCTX3540
; OCTX3220
; OCTX3221
; OCTX3230
; OCTX3232
; OCTX3250
[OptionsTextENG]
; OCTX3117 = "Olicom Token-Ring ISA 16/4 Adapter (OC-3117)"
; OCTX3118 = "Olicom Token-Ring ISA 16/4 Adapter (OC-3118)"
; OCTX3129 = "Olicom Token-Ring MCA 16/4 Adapter (OC-3129)"
; OCTX3133 = "Olicom Token-Ring EISA 16/4 Adapter (OC-3133)"
; OCTX3136 = "Olicom Token-Ring PCI 16/4 Adapter (OC-3136)"
; OCTX3137 = "Olicom Token-Ring PCI/II 16/4 Adapter (OC-3137)"
; OCTX3139 = "Olicom RapidFire 3139 Token-Ring 16/4 PCI Adapter"
OCTX3140 = "Olicom RapidFire 3140 Token-Ring 16/4 PCI Adapter"
OCTX3141 = "Olicom RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter"
; OCTX3540 = "Olicom RapidFire 3540 HSTR 100/16/4 PCI Adapter"
; OCTX3220 = "Olicom GoCard Token-Ring PC Card (OC-3220)"
; OCTX3221 = "Olicom GoCard Token-Ring PC Card (OC-3221)"
; OCTX3230 = "Olicom GoCard TR/Modem 144 PC Card (OC-3230)"
; OCTX3232 = "Olicom GoCard TRN/Modem 336 PC Card (OC-3232)"
; OCTX3250 = "Olicom GoCard 3250 Token-Ring 16/4 CardBus PC Card"
[IOBaseAddrChoices]
IOBase_0 = "Auto detect", 0
IOBase_1 = "0A00-0A1F", 2560
IOBase_2 = "0A20-0A3F", 2592
IOBase_3 = "0A40-0A5F", 2624
IOBase_4 = "0A60-0A7F", 2656
IOBase_5 = "0A80-0A9F", 2688
IOBase_6 = "0AA0-0ABF", 2720
IOBase_7 = "0AC0-0ADF", 2752
IOBase_8 = "0AE0-0AFF", 2874
IOBase_9 = "0B00-0B1F", 2816
IOBase_10 = "0B20-0B3F", 2848
IOBase_11 = "0B40-0B5F", 2880
IOBase_12 = "0B60-0B7F", 2912
IOBase_13 = "0B80-0B9F", 2944
IOBase_14 = "0BA0-0BBF", 2976
IOBase_15 = "0BC0-0BDF", 3008
IOBase_16 = "0BE0-0BFF", 3040
IOBase_20 = "0A20-0A23,0A30-0A3F", 2592
IOBase_21 = "0A24-0A27,0A40-0A4F", 2596
IOBase_22 = "0A50-0A53,0A60-0A6F", 2640
IOBase_23 = "0A54-0A57,0A70-0A7F", 2644
[RxBufferCountChoices]
RBC_1 = "32",32
RBC_2 = "31",31
RBC_3 = "30",30
RBC_4 = "29",29
RBC_5 = "28",28
RBC_6 = "27",27
RBC_7 = "26",26
RBC_8 = "25",25
RBC_9 = "24",24
RBC_10 = "23",23
RBC_11 = "22",22
RBC_12 = "21",21
RBC_13 = "20",20
RBC_14 = "19",19
RBC_15 = "18",18
RBC_16 = "17",17
RBC_17 = "16",16
RBC_18 = "15",15
RBC_19 = "14",14
RBC_20 = "13",13
RBC_21 = "12",12
RBC_22 = "11",11
RBC_23 = "10",10
RBC_24 = "9",9
RBC_25 = "8",8
RBC_26 = "7",7
RBC_27 = "6",6
RBC_28 = "5",5
[TxBufferCountChoices]
XBC_1 = "32",32
XBC_2 = "31",31
XBC_3 = "30",30
XBC_4 = "29",29
XBC_5 = "28",28
XBC_6 = "27",27
XBC_7 = "26",26
XBC_8 = "25",25
XBC_9 = "24",24
XBC_10 = "23",23
XBC_11 = "22",22
XBC_12 = "21",21
XBC_13 = "20",20
XBC_14 = "19",19
XBC_15 = "18",18
XBC_16 = "17",17
XBC_17 = "16",16
XBC_18 = "15",15
XBC_19 = "14",14
XBC_20 = "13",13
XBC_21 = "12",12
XBC_22 = "11",11
XBC_23 = "10",10
XBC_24 = "9",9
XBC_25 = "8",8
XBC_26 = "7",7
XBC_27 = "6",6
XBC_28 = "5",5
XBC_29 = "4",4
XBC_30 = "3",3
XBC_31 = "2",2
[Oct3RxBufferCountChoices]
RBC3_1 = "Auto", 0
RBC3_2 = "128",128
RBC3_3 = "96", 96
RBC3_4 = "64", 64
RBC3_5 = "48", 48
RBC3_6 = "32", 32
RBC3_7 = "24", 24
RBC3_8 = "16", 16
RBC3_9 = "8", 8
[Oct3TxBufferCountChoices]
XBC3_1 = "Auto", 0
XBC3_2 = "64", 64
XBC3_3 = "48", 48
XBC3_4 = "32", 32
XBC3_5 = "24", 24
XBC3_6 = "16", 16
XBC3_7 = "8", 8
[LegacyWakeUpChoices]
LM_1 = "Disabled",0
LM_2 = "Enabled",1
LM_3 = "Auto",2
[IOBasePCMCIAChoices]
; 3E0h is where PCIC is (normally) located
; 240h is where TCIC is (normally) located
; therefore user cannot select these for locating the adapter
IOBase_1 = "200h",512
IOBase_2 = "280h",640
IOBase_3 = "2C0h",714
IOBase_4 = "300h",768
IOBase_5 = "340h",832
IOBase_6 = "380h",896
IOBase_7 = "3C0h",960
IOBase_8 = "A00h",2560
IOBase_9 = "A40h",2624
IOBase_10 = "A80h",2688
IOBase_11 = "AC0h",2752
IOBase_12 = "B00h",2816
IOBase_13 = "B40h",2880
IOBase_14 = "B80h",2944
IOBase_15 = "BC0h",3008
[IOBaseCardBusChoices]
IOBase_1 = "3800h",14336
IOBase_2 = "3840h",14400
IOBase_3 = "3880h",14464
IOBase_4 = "38C0h",14528
IOBase_5 = "3900h",14592
IOBase_6 = "3940h",14656
IOBase_7 = "3980h",14720
IOBase_8 = "39C0h",14784
IOBase_9 = "9800h",38912
IOBase_10 = "9840h",38976
IOBase_11 = "9880h",39040
IOBase_12 = "98C0h",39104
IOBase_13 = "9900h",39168
IOBase_14 = "9940h",39232
IOBase_15 = "9980h",39296
IOBase_16 = "99C0h",39360
[MemWinChoices]
MemWin_1 = "A0000h", 655360
MemWin_2 = "A2000h", 663552
MemWin_3 = "A4000h", 671744
MemWin_4 = "A6000h", 679936
MemWin_5 = "A8000h", 688128
MemWin_6 = "AA000h", 696320
MemWin_7 = "AC000h", 704512
MemWin_8 = "AE000h", 712704
MemWin_9 = "B0000h", 720896
MemWin_10 = "B2000h", 729088
MemWin_11 = "B4000h", 737280
MemWin_12 = "B6000h", 745472
MemWin_13 = "B8000h", 753664
MemWin_14 = "BA000h", 761856
MemWin_15 = "BC000h", 770048
MemWin_16 = "BE000h", 778240
MemWin_17 = "C0000h", 786432
MemWin_18 = "C2000h", 794624
MemWin_19 = "C4000h", 802816
MemWin_20 = "C6000h", 811008
MemWin_21 = "C8000h", 819200
MemWin_22 = "CA000h", 827392
MemWin_23 = "CC000h", 835584
MemWin_24 = "CE000h", 843776
MemWin_25 = "D0000h", 851968
MemWin_26 = "D2000h", 860160
MemWin_27 = "D4000h", 868352
MemWin_28 = "D6000h", 876544
MemWin_29 = "D8000h", 884736
MemWin_30 = "DA000h", 892928
MemWin_31 = "DC000h", 901120
MemWin_32 = "DE000h", 909312
[InterruptChoices]
Interrupt_1 = "3", 3
Interrupt_2 = "4", 4
Interrupt_3 = "5", 5
Interrupt_4 = "9", 9
Interrupt_5 = "10",10
Interrupt_6 = "11",11
[CardBusInterruptChoices]
Interrupt_1 = "Auto", 0
Interrupt_2 = "3", 3
Interrupt_3 = "4", 4
Interrupt_4 = "5", 5
Interrupt_5 = "9", 9
Interrupt_6 = "10",10
Interrupt_7 = "11",11
Interrupt_8 = "15",15
[InterruptStyleChoices]
InterruptStyle_1 = "PCI", 0
InterruptStyle_2 = "ISA", 1
[InterruptRoutingChoices]
InterruptRouting_1 = "Auto", 0
InterruptRouting_2 = "INTA#", 1
InterruptRouting_3 = "INTB#", 2
InterruptRouting_4 = "INTC#", 3
InterruptRouting_5 = "INTD#", 4
[ComPortChoices]
Com_1 = "COM1", 1016
Com_2 = "COM2", 760
Com_3 = "COM3", 1000
Com_4 = "COM4", 744
Com_5 = "COM5", 24
Com_6 = "Disabled", 0
[ComPortChoicesNT]
Com_1 = "COM1", 1016
Com_2 = "COM2", 760
Com_3 = "COM3", 1000
Com_4 = "COM4", 744
[IOBasePCMCIAControllerChoices]
IOBase_1 = "Olicom Enabler",992
IOBase_2 = "Olicom Enabler (3E2h)",994
;;;IOBase_3 = "Windows NT Enabler",0
[WaitstateChoices]
Waitstate_1 = "0", 0
Waitstate_2 = "1", 1
Waitstate_3 = "2", 2
Waitstate_4 = "3", 3
Waitstate_5 = "4", 4
Waitstate_6 = "5", 5
Waitstate_7 = "6", 6
Waitstate_8 = "7", 7
Waitstate_9 = "8", 8
Waitstate_10 = "9", 9
Waitstate_11 = "10",10
Waitstate_12 = "11",11
Waitstate_13 = "12",12
Waitstate_14 = "13",13
Waitstate_15 = "14",14
Waitstate_16 = "15",15
[DatasizeChoices]
Datasize_1 = 1, 1,"&16 Bit"
Datasize_2 = 2, 0,"&8 Bit"
[RingSpeedChoices]
RS_1 = "16 Mbps", 16
RS_2 = "4 Mbps", 4
[RSChoices]
RS_1 = "Adapter setting", 255
RS_2 = "Force 16 Mbps", 16
RS_3 = "Force 4 Mbps", 4
[Oct3RSChoices]
RS_1 = "Auto", 0
RS_2 = "Force 16 Mbps", 16
RS_3 = "Force 4 Mbps", 4
RS_4 = "Adapter setting", 255
[Oct3RS100Choices]
RS_1 = "Auto", 0
RS_2 = "Force 100 Mbps", 100
RS_3 = "Force 16 Mbps", 16
RS_4 = "Force 4 Mbps", 4
RS_5 = "Adapter setting", 255
;-----------------------------------------------------------------------
; Constants for use with dialogs
;-----------------------------------------------------------------------
[FileConstants]
UtilityInf = "UTILITY.INF"
subroutineinf = "SUBROUTN.INF"
SoftwareType = "driver"
Exit_Code = 0
DialogDllName = "oct3x.dll"
HelpfileName = "oct3x.hlp"
NetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\Drivers\Oct3xnd3.sys"
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
Manufacturer = "Olicom"
ProductMajorVersion = "1"
ProductMinorVersion = "00"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
ProductSoftwareName = "Oct3xnd3"
ProductSoftwareTitle = "Olicom Oct3x NDIS 3.1 Token-Ring Driver"
ProductSoftwareImagePath = "\SystemRoot\System32\drivers\oct3xnd3.sys"
NetRuleSoftwareType = "oct3xnd3Sys ndisDriver oct3xnd3Driver"
NetRuleSoftwareUse = $(SoftwareType)
NetRuleSoftwareBindForm = """Oct3xnd3Sys"" yes no container"
NetRuleSoftwareClass = {"oct3xnd3Driver basic"}
NetRuleSoftwareBindable = {"oct3xnd3Driver oct3xnd3Adapter non exclusive 100"}
ProductHardwareName = "Oct3xnd3"
ProductHardwareOCTX3117Title = "Olicom Token-Ring ISA 16/4 Adapter (OC-3117)"
ProductHardwareOCTX3118Title = "Olicom Token-Ring ISA 16/4 Adapter (OC-3118)"
ProductHardwareOCTX3129Title = "Olicom Token-Ring MCA 16/4 Adapter (OC-3129)"
ProductHardwareOCTX3133Title = "Olicom Token-Ring EISA 16/4 Adapter (OC-3133)"
ProductHardwareOCTX3136Title = "Olicom Token-Ring PCI 16/4 Adapter (OC-3136)"
ProductHardwareOCTX3137Title = "Olicom Token-Ring PCI/II 16/4 Adapter (OC-3137)"
ProductHardwareOCTX3139Title = "Olicom RapidFire 3139 Token-Ring 16/4 PCI Adapter"
ProductHardwareOCTX3140Title = "Olicom RapidFire 3140 Token-Ring 16/4 PCI Adapter"
ProductHardwareOCTX3141Title = "Olicom RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter"
ProductHardwareOCTX3540Title = "Olicom RapidFire 3540 HSTR 100/16/4 PCI Adapter"
ProductHardwareOCTX3220Title = "Olicom GoCard Token-Ring PC Card (OC-3220)"
ProductHardwareOCTX3221Title = "Olicom GoCard Token-Ring PC Card (OC-3221)"
ProductHardwareOCTX3230Title = "Olicom GoCard TR/Modem 144 PC Card (OC-3230)"
ProductHardwareOCTX3232Title = "Olicom GoCard TRN/Modem 336 PC Card (OC-3232)"
ProductHardwareOCTX3250Title = "Olicom GoCard 3250 Token-Ring 16/4 CardBus PC Card"
NetRuleHardwareType = "oct3xnd3 oct3xnd3Adapter"
NetRuleHardwareBindForm = " yes yes container"
NetRuleHardwareClass = {"oct3xnd3Adapter basic"}
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
[GeneralConstants]
from = ""
to = ""
ExitCodeOk = 0
ExitCodeCancel = 1
ExitCodeFatal = 2
KeyNull = ""
MAXIMUM_ALLOWED = 33554432
RegistryErrorIndex = NO_ERROR
KeyProduct = ""
KeyParameters = ""
TRUE = 1
FALSE = 0
NoTitle = 0
ExitState = "Active"
OldVersionExisted = $(FALSE)
DriverPath = $(!STF_NTPATH)\drivers
NT40VersionConstant = "4.0"
NT351VersionConstant = "3.51"
NT350VersionConstant = "3.50"
NT310VersionConstant = "3.10"
UniCheckedConstant = "Uniprocessor Checked"
MultiCheckedConstant = "Multiprocessor Checked"
[FileConstantsENG]
ProCaption = "Windows NT Setup"
ProCancel = "Cancel"
ProCancelMsg = "Windows NT Networking is not correctly installed. "+
"Are you sure you want to cancel copying files?"
ProCancelCap = "Network Setup Message"
ProText1 = "Copying:"
ProText2 = "To:"
ProductHardwareOCTX3117Description = "Olicom Token-Ring ISA 16/4 Adapter (OC-3117)"
ProductHardwareOCTX3118Description = "Olicom Token-Ring ISA 16/4 Adapter (OC-3118)"
ProductHardwareOCTX3129Description = "Olicom Token-Ring MCA 16/4 Adapter (OC-3129)"
ProductHardwareOCTX3133Description = "Olicom Token-Ring EISA 16/4 Adapter (OC-3133)"
ProductHardwareOCTX3136Description = "Olicom Token-Ring PCI 16/4 Adapter (OC-3136)"
ProductHardwareOCTX3137Description = "Olicom Token-Ring PCI/II 16/4 Adapter (OC-3137)"
ProductHardwareOCTX3139Description = "Olicom RapidFire 3139 Token-Ring 16/4 PCI Adapter"
ProductHardwareOCTX3140Description = "Olicom RapidFire 3140 Token-Ring 16/4 PCI Adapter"
ProductHardwareOCTX3141Description = "Olicom RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter"
ProductHardwareOCTX3540Description = "Olicom RapidFire 3540 HSTR 100/16/4 PCI Adapter"
ProductHardwareOCTX3220Description = "Olicom GoCard Token-Ring PC Card (OC-3220)"
ProductHardwareOCTX3221Description = "Olicom GoCard Token-Ring PC Card (OC-3221)"
ProductHardwareOCTX3230Description = "Olicom GoCard TR/Modem 144 PC Card (OC-3230)"
ProductHardwareOCTX3232Description = "Olicom GoCard TRN/Modem 336 PC Card (OC-3232)"
ProductHardwareOCTX3250Description = "Olicom GoCard 3250 Token-Ring 16/4 CardBus PC Card"
ProductSoftwareDescription = "Olicom Token-Ring Adapter NDIS 3.1 Driver"
ProductHardwareTitle = $(ProductHardware$(Option)Title)
ProductHardwareDescription = $(ProductHardware$(Option)Description)
ProductHardwareDescrShort = "Olicom Token-Ring Adapter"
FunctionTitle = "Olicom Token-Ring Adapter Setup"
IOBaseAddrList = ^(IOBaseAddrChoices, 1)
IOBaseAddrValues = ^(IOBaseAddrChoices, 2)
RcvBufCountList = ^(RxBufferCountChoices, 1)
RcvBufCountValues = ^(RxBufferCountChoices, 2)
XmitBufCountList = ^(TxBufferCountChoices, 1)
XmitBufCountValues = ^(TxBufferCountChoices, 2)
LegacyWakeUpList = ^(LegacyWakeUpChoices, 1)
LegacyWakeUpValues = ^(LegacyWakeUpChoices, 2)
IOBasePCMCIAList = ^(IOBasePCMCIAChoices, 1)
IOBasePCMCIAValues = ^(IOBasePCMCIAChoices, 2)
MemWinList = ^(MemWinChoices, 1)
MemWinValues = ^(MemWinChoices, 2)
InterruptList = ^(InterruptChoices, 1)
InterruptValues = ^(InterruptChoices, 2)
InterruptStyleList = ^(InterruptStyleChoices, 1)
InterruptStyleValues = ^(InterruptStyleChoices, 2)
InterruptRoutingList = ^(InterruptRoutingChoices, 1)
InterruptRoutingValues = ^(InterruptRoutingChoices, 2)
RingSpeedList = ^(RingSpeedChoices, 1)
RingSpeedValues = ^(RingSpeedChoices, 2)
RSList = ^(RSChoices, 1)
RSValues = ^(RSChoices, 2)
ComPortList = ^(ComPortChoices, 1)
ComPortValues = ^(ComPortChoices, 2)
ComPortListNT = ^(ComPortChoicesNT, 1)
ComPortValuesNT = ^(ComPortChoicesNT, 2)
IOBasePCMCIAControllerList = ^(IOBasePCMCIAControllerChoices, 1)
IOBasePCMCIAControllerValues = ^(IOBasePCMCIAControllerChoices, 2)
WaitstateList = ^(WaitstateChoices, 1)
WaitstateValues = ^(WaitstateChoices, 2)
DatasizeList = ^(DatasizeChoices, 1)
DatasizeValues = ^(DatasizeChoices, 2)
DatasizeLabels = ^(DatasizeChoices, 3)
; Parameter defaults
IOBasePCMCIADefault = 8
MemWinDefault = 25
ComPortDefault = 3
InterruptDefault = 1
RcvBufCountDefault = 27
XmitBufCountDefault = 25
LegacyWakeUpDefault = 3
FrameSizeDefault = 4472
; Bus/slot defaults for PCI auto-detect
BusNoDefault = 0
SlotNoDefault = 0
SlotNoUnknown = 1024
[DialogConstantsENG]
Help = "&Help"
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"
ContextMinimumID = 6000
ContextContentsID = 6000
ContextPCMCIASetupID = 6001
ContextPCMCIAAdvancedID = 6002
ContextMaximumID = 6020
[date]
Now = {} ? $(!LIBHANDLE) GetSystemDate
[AskSourceDlgText]
DlgText = "Please enter the full path of the Olicom 16/4 driver "+
"setup files. Then choose Continue."
;-----------------------------------------------------------------------
; ADAPTER PARAMETER DIALOG
; ------------------------
; This section sets up the adapter parameter dialog. All textstrings
; presented in this dialog are defined here.
;
;-----------------------------------------------------------------------
[OCTK16ParameterDlgENG]
DlgType = "RadioCombination"
DlgTemplate = "OCTK16"
Caption = $(FunctionTitle)
DlgText = "Please select values for the following fields:"
Free = "&Bus..."
Combo1Label = "&I/O Base Address:"
Combo2Label = "&Receive Buffers:"
Combo3Label = "&Transmit Buffers:"
Combo4Label = "Ring &Speed:"
Label1 = "&Early Token Release:"
Radio1 = "Yes"
Radio2 = "No"
Label2 = "&Frame Status:"
Radio3 = "Yes"
Radio4 = "No"
Edit1Label = "&Network Address:"
Edit2Label = "&Max Frame Size:"
Combo1List = $(IOBaseAddrList)
Combo1Out = $(IOBaseAddrIndex)
Combo2List = $(RcvBufCountList)
Combo2Out = $(RcvBufCountIndex)
Combo3List = $(XmitBufCountList)
Combo3Out = $(XmitBufCountIndex)
Combo4List = $(RSList)
Combo4Out = $(RSIndex)
ComboListItemsIn = {Combo1List, Combo2List, Combo3List, Combo4List}
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out}
EditTextLim = { 17, 5 }
EditTextIn = { $(NetworkAddress), $(FrameSizeValue) }
RadioOptionGreyed = {}
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO, NO, NO}
HelpContext = $(ContextContentsID)
;-----------------------------------------------------------------------
; PCI PARAMETER MAIN DIALOG
; -------------------------
; This section sets up the adapter parameter dialog. All textstrings
; presented in this dialog are defined here.
;
;-----------------------------------------------------------------------
[PCIParameterDlgENG]
DlgType = "RadioCombination"
DlgTemplate = "PCMCIA"
Caption = $(FunctionTitle)
DlgText = "Please select values for the following fields:"
Free = "&Bus"
Combo1Label = "&Receive Buffers:"
Combo2Label = "&Transmit Buffers:"
Combo3Label = "Ring &Speed:"
Label1 = "&Early Token Release:"
Radio1 = "Yes"
Radio2 = "No"
Label2 = "&Frame Status:"
Radio3 = "Yes"
Radio4 = "No"
Edit1Label = "&Network Address:"
Edit2Label = "&Max Frame Size:"
Combo1List = $(RcvBufCountList)
Combo1Out = $(RcvBufCountIndex)
Combo2List = $(XmitBufCountList)
Combo2Out = $(XmitBufCountIndex)
Combo3List = $(RSList)
Combo3Out = $(RSIndex)
ComboListItemsIn = {Combo1List, Combo2List, Combo3List}
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
EditTextLim = { 17, 5 }
EditTextIn = { $(NetworkAddress), $(FrameSizeValue) }
RadioOptionGreyed = {}
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO}
HelpContext = $(ContextContentsID)
;-----------------------------------------------------------------------
; PCI3 PARAMETER MAIN DIALOG
; -------------------------
; This section sets up the adapter parameter dialog. All textstrings
; presented in this dialog are defined here.
;
;-----------------------------------------------------------------------
[PCI3ParameterDlgENG]
DlgType = "RadioCombination"
DlgTemplate = "OCTK16"
Caption = $(FunctionTitle)
DlgText = "Please select values for the following fields:"
Free = "&Bus..."
Combo1Label = "&Wake-on-LAN:"
Combo2Label = "&Receive Buffers:"
Combo3Label = "&Transmit Buffers:"
Combo4Label = "Ring &Speed:"
Label1 = "&Early Token Release:"
Radio1 = "Yes"
Radio2 = "No"
Label2 = "&Frame Status:"
Radio3 = "Yes"
Radio4 = "No"
Edit1Label = "&Network Address:"
Edit2Label = "&Max Frame Size:"
Combo1List = $(LegacyWakeUpList)
Combo1Out = $(LegacyWakeUpIndex)
Combo2List = $(RcvBufCountList)
Combo2Out = $(RcvBufCountIndex)
Combo3List = $(XmitBufCountList)
Combo3Out = $(XmitBufCountIndex)
Combo4List = $(RSList)
Combo4Out = $(RSIndex)
ComboListItemsIn = {Combo1List, Combo2List, Combo3List, Combo4List}
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out}
EditTextLim = { 17, 5 }
EditTextIn = { $(NetworkAddress), $(FrameSizeValue) }
RadioOptionGreyed = {}
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO, NO, NO}
HelpContext = $(ContextContentsID)
;-----------------------------------------------------------------------
; PCMCIA PARAMETER MAIN DIALOG
; ----------------------------
; This section sets up the adapter parameter dialog. All textstrings
; presented in this dialog are defined here.
;
;-----------------------------------------------------------------------
[PCMCIAParameterDlgENG]
DlgType = "RadioCombination"
DlgTemplate = "PCMCIA"
Caption = $(FunctionTitle)
DlgText = "Please select values for the following fields:"
Free = "&PC Card..."
Combo1Label = "&Receive Buffers:"
Combo2Label = "&Transmit Buffers:"
Combo3Label = "Ring &Speed:"
Label1 = "&Early Token Release:"
Radio1 = "Yes"
Radio2 = "No"
Label2 = "&Frame Status:"
Radio3 = "Yes"
Radio4 = "No"
Edit1Label = "&Network Address:"
Edit2Label = "&Max Frame Size:"
Combo1List = $(RcvBufCountList)
Combo1Out = $(RcvBufCountIndex)
Combo2List = $(XmitBufCountList)
Combo2Out = $(XmitBufCountIndex)
Combo3List = $(RingSpeedList)
Combo3Out = $(RingSpeedIndex)
ComboListItemsIn = {Combo1List, Combo2List, Combo3List}
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
EditTextLim = { 17, 5 }
EditTextIn = { $(NetworkAddress), $(FrameSizeValue) }
RadioOptionGreyed = {}
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO}
HelpContext = $(ContextContentsID)
;-----------------------------------------------------------------------
; PCMCIA COMBO Cards PARAMETER MAIN DIALOG
; ----------------------------------------
; This section sets up the adapter parameter dialog. All textstrings
; presented in this dialog are defined here.
;
;-----------------------------------------------------------------------
[COMBOParameterDlgENG]
DlgType = "RadioCombination"
DlgTemplate = "PCMCIA"
Caption = $(FunctionTitle)
DlgText = "Please select values for the following fields:"
Free = "&PC Card..."
Combo1Label = "&Receive Buffers:"
Combo2Label = "&Transmit Buffers:"
Combo3Label = "Ring &Speed:"
Label1 = "&Early Token Release:"
Radio1 = "Yes"
Radio2 = "No"
Label2 = "&Frame Status:"
Radio3 = "Yes"
Radio4 = "No"
Edit1Label = "&Network Address:"
Edit2Label = "&Max Frame Size:"
Combo1List = $(RcvBufCountList)
Combo1Out = $(RcvBufCountIndex)
Combo2List = $(XmitBufCountList)
Combo2Out = $(XmitBufCountIndex)
Combo3List = $(RingSpeedList)
Combo3Out = $(RingSpeedIndex)
ComboListItemsIn = {Combo1List, Combo2List, Combo3List}
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
EditTextLim = { 17, 5 }
EditTextIn = { $(NetworkAddress), $(FrameSizeValue) }
RadioOptionGreyed = {}
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO}
HelpContext = $(ContextContentsID)
;-----------------------------------------------------------------------
; MORE PCMCIA PARAMETER DIALOG
; ----------------------------
; This section sets up the PCMCIA parameter dialog. All textstrings
; presented in this dialog are defined here.
;
;-----------------------------------------------------------------------
[PCMCIAMoreDlgENG]
DlgType = "RadioCombination"
DlgTemplate = "PCMCIAM"
Caption = "PC Card Setup"
DlgText = "Please select values for the following fields:"
Free = "&Advanced..."
Combo1Label = "I/O &Base Address:"
Combo2Label = "&Memory Window:"
Combo3Label = "&Interrupt:"
Combo1List = $(IOBasePCMCIAList)
Combo1Out = $(IOBasePCMCIAIndex)
Combo2List = $(MemWinList)
Combo2Out = $(MemWinIndex)
Combo3List = $(InterruptList)
Combo3Out = $(InterruptIndex)
ComboListItemsIn = {Combo1List, Combo2List, Combo3List}
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
RadioOptionGreyed = {}
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO, NO}
HelpContext = $(ContextPCMCIASetupID)
;-----------------------------------------------------------------------
; CARDBUS PARAMETER DIALOG
; ------------------------
; This section sets up the Cardbus parameter dialog. All textstrings
; presented in this dialog are defined here.
;
;-----------------------------------------------------------------------
[CardbusDlgENG]
DlgType = "RadioCombination"
DlgTemplate = "CARDBUS"
Caption = "PC Card Setup"
DlgText = "Please select values for the following fields:"
Free = "&Cancel"
Combo1Label = "I/O &Base Address:"
Combo2Label = "&Memory Window:"
Combo3Label = "&Interrupt:"
Combo4Label = "Interrupt &style:"
Combo5Label = "Interrupt &routing:"
Combo1List = $(IOBasePCMCIAList)
Combo1Out = $(IOBasePCMCIAIndex)
Combo2List = $(MemWinList)
Combo2Out = $(MemWinIndex)
Combo3List = $(InterruptList)
Combo3Out = $(InterruptIndex)
Combo4List = $(InterruptStyleList)
Combo4Out = $(InterruptStyleIndex)
Combo5List = $(InterruptRoutingList)
Combo5Out = $(InterruptRoutingIndex)
ComboListItemsIn = {Combo1List, Combo2List, Combo3List, Combo4List, Combo5List}
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out}
RadioOptionGreyed = {}
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO, NO}
HelpContext = $(ContextPCMCIASetupID)
;-----------------------------------------------------------------------
; MORE COMBO PARAMETER DIALOG
; ---------------------------
; This section sets up the PCMCIA parameter dialog. All textstrings
; presented in this dialog are defined here.
;
;-----------------------------------------------------------------------
[COMBOMoreDlgENG]
DlgType = "RadioCombination"
DlgTemplate = "COMBOM"
Caption = "PC Card Setup"
DlgText = "Please select values for the following fields:"
Free = "&Advanced..."
Combo1Label = "I/O &Base Address:"
Combo2Label = "&Memory Window:"
Combo3Label = "&Interrupt:"
Combo4Label = "&Com Port:"
Combo1List = $(IOBasePCMCIAList)
Combo1Out = $(IOBasePCMCIAIndex)
Combo2List = $(MemWinList)
Combo2Out = $(MemWinIndex)
Combo3List = $(InterruptList)
Combo3Out = $(InterruptIndex)
Combo4List = $(ComPortList)
Combo4Out = $(ComPortIndex)
ComboListItemsIn = {Combo1List, Combo2List, Combo3List, Combo4List}
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out}
RadioOptionGreyed = {}
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO, NO}
HelpContext = $(ContextPCMCIASetupID)
;-----------------------------------------------------------------------
; PCMCIA ADVANCED SETTINGS DIALOG
; -------------------------------
; This section sets up the PCMCIA adavanced settings dialog. All
; textstrings presented in this dialog are defined here.
;
;-----------------------------------------------------------------------
[PCMCIAAdvancedDlgENG]
DlgType = "RadioCombination"
DlgTemplate = "PCMCIAADV"
Caption = "PC Card Advanced Settings"
DlgText = "Please select values for the following fields:"
Combo1Label = "PC Card &Enabler:"
Combo2Label = "&Additional Waitstates:"
Radio1Label = "&Datasize:"
Radio1Button1 = *($(DatasizeLabels),1)
Radio1Button2 = *($(DatasizeLabels),2)
Combo1List = $(IOBasePCMCIAControllerList)
Combo1Out = $(IOBasePCMCIAControllerIndex)
Combo2List = $(WaitstateList)
Combo2Out = $(WaitstateIndex)
ComboListItemsIn = {Combo1List, Combo2List}
ComboListItemsOut = {Combo1Out, Combo2Out}
RadioIn = { $(DatasizeIndex) }
RadioOptionGreyed = {}
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO, NO}
HelpContext = $(ContextPCMCIAAdvancedID)
;---------------------------------------------------------------------------
; 1. Identify
;
; DESCRIPTION: To verify that this INF deals with the same type of options
; as we are choosing currently.
;
; INPUT: None
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL
; $($R1): Option Type (COMPUTER ...)
; $($R2): Diskette description
;---------------------------------------------------------------------------
[Identify]
read-syms Identification
set Status = STATUS_SUCCESSFUL
set Identifier = $(OptionType)
set Media = #("Source Media Descriptions", 1, 1)
Return $(Status) $(Identifier) $(Media)
;------------------------------------------------------------------------
; 2. ReturnOptions:
;
; DESCRIPTION: To return the option list supported by this INF and the
; localised text list representing the options.
;
;
; INPUT: $($0): Language used. ( ENG | FRN | ... )
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE
; STATUS_FAILED
; STATUS_NOTSUPPORTED
;
; $($R1): Option List
; $($R2): Option Text List
;------------------------------------------------------------------------
[ReturnOptions]
set Status = STATUS_FAILED
set OptionList = {}
set OptionTextList = {}
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) in $(LanguageList)
ifstr(i) $($1) == ""
goto returnoptions
endif
set PlatformList = ^(PlatformsSupported, 1)
Ifcontains(i) $($1) in $(PlatformList)
goto returnoptions
else
set Status = STATUS_NOTSUPPORTED
goto finish_ReturnOptions
endif
else
set Status = STATUS_NOLANGUAGE
goto finish_ReturnOptions
endif
returnoptions = +
set OptionList = ^(Options, 1)
set OptionTextList = ^(OptionsText$($0), 1)
set Status = STATUS_SUCCESSFUL
finish_ReturnOptions = +
Return $(Status) $(OptionList) $(OptionTextList)
;------------------------------------------------------------------------
;
; InstallOption:
;
; This section is shelled to by main installation processing
; or by NCPASHEL.INF during reconfig, removal, update, etc.
;
;
; FUNCTION: To copy files representing Options
; To configure the installed option
; To update the registry for the installed option
;
; INPUT: $($0): Language to use
; $($1): OptionID to install
; $($2): SourceDirectory
; $($3): AddCopy (YES | NO)
; $($4): DoCopy (YES | NO)
; $($5): DoConfig (YES | NO)
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE |
; STATUS_USERCANCEL |
; STATUS_FAILED
;
;------------------------------------------------------------------------
[InstallOption]
StartWait
set SrcDir = ""
set Option = $($1)
set SrcDir = $($2)
set AddCopy = $($3)
set DoCopy = $($4)
set DoConfig = $($5)
ifstr(i) $(SrcDir) == ""
Set SrcDir = "A:\"
Endif
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) NOT-IN $(LanguageList)
Return STATUS_NOLANGUAGE
endif
Debug-Output "INF: STF_CWDDIR is: "$(!STF_CWDDIR)
Debug-Output "INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
set-subst LF = "\n"
read-syms GeneralConstants
read-syms FileConstants
read-syms DialogConstants$(!STF_LANGUAGE)
ifstr(i) $(!NTN_Origination) == "NCPA"
set Continue = "OK"
endif
read-syms FileConstants$(!STF_LANGUAGE)
detect date
set-title $(FunctionTitle)
set to = Begin
set from = Begin
set CommonStatus = STATUS_SUCCESSFUL
SetHelpFile $(HelpfileName) $(ContextMinimumID) $(ContextMaximumID)
;
; AdpType simplifies adapter type branching
;
set AdpType = ""
ifcontains(i) $(Option) in {"OCTX3117","OCTX3118","OCTX3133","OCTX3129"}
set AdpType = "Legacy"
else-ifcontains(i) $(Option) in {"OCTX3136","OCTX3137"}
set AdpType = "PCI1"
else-ifcontains(i) $(Option) in {"OCTX3139","OCTX3140","OCTX3141"}
set AdpType = "PCI2"
else-ifcontains(i) $(Option) in {"OCTX3540"}
set AdpType = "PCI3"
else-ifcontains(i) $(Option) in {"OCTX3250"}
set AdpType = "Cardbus"
else-ifcontains(i) $(Option) in {"OCTX3220","OCTX3221"}
set AdpType = "PCMCIA"
else-ifcontains(i) $(Option) in {"OCTX3230","OCTX3232"}
set AdpType = "Combo"
endif
;
; OCT3X requires special setting for buffer counts and ring speed
;
ifcontains(i) $(AdpType) in {"PCI2","PCI3","CardBus"}
set RcvBufCountList = ^(Oct3RxBufferCountChoices, 1)
set RcvBufCountValues = ^(Oct3RxBufferCountChoices, 2)
set RcvBufCountDefault = 0
set XmitBufCountList = ^(Oct3TxBufferCountChoices, 1)
set XmitBufCountValues = ^(Oct3TxBufferCountChoices, 2)
set XmitBufCountDefault = 0
ifcontains(i) $(AdpType) in {"PCI3"}
set RSList = ^(Oct3RS100Choices, 1)
set RSValues = ^(Oct3RS100Choices, 2)
else
set RSList = ^(Oct3RSChoices, 1)
set RSValues = ^(Oct3RSChoices, 2)
endif
set IOBasePCMCIAList = ^(IOBaseCardBusChoices, 1)
set IOBasePCMCIAValues = ^(IOBaseCardBusChoices, 2)
set InterruptList = ^(CardBusInterruptChoices, 1)
set InterruptValues = ^(CardBusInterruptChoices, 2)
endif
EndWait
Begin = +
;
; Get the Windows NT version. We will not install on NT v3.1x
;
set CurrentVersionValue = ""
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
Ifstr(i) $(KeyNt) != ""
GetRegValue $(KeyNt) "CurrentVersion" CurrentVersionValue
Debug-Output "INF: WinNT CurrentVersion ="$(CurrentVersionValue)
CloseRegKey $(KeyNt)
Endif
ifstr(i) (*($(CurrentVersionValue),4)) == ($(NT310VersionConstant))
Debug-Output "INF: Running on WindowsNT 3.10"
set Error = "Windows NT v3.10 is not support by this product"
goto fatal
endif
ifstr(i) (*($(CurrentVersionValue),4)) == ($(NT350VersionConstant))
Debug-Output "INF: Running on WindowsNT 3.50"
set Error = "Windows NT v3.50 is not support by this product"
goto fatal
endif
set NTComboSupport = $(FALSE)
ifstr(i) (*($(CurrentVersionValue),4)) == ($(NT40VersionConstant))
set NTComboSupport = $(TRUE)
endif
Ifstr(i) $(!NTN_InstallMode) == deinstall
set StartLabel = removeadapter
else-Ifstr(i) $(!NTN_InstallMode) == Update
set StartLabel = UpgradeSoftware
else-Ifstr(i) $(!NTN_InstallMode) == bind
set StartLabel = bindingadapter
else-Ifstr(i) $(!NTN_InstallMode) == configure
set StartLabel = configureadapter
Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
Debug-Output "INF: Cannot configure the driver software."
Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error: cannot get an error string."
goto ShellCodeError
endif
set Error = $($R0)
set from = end
set to = end
goto nonfatalinfo
endif
else
set StartLabel = installadapter
set OEM_ABANDON_OPTIONS = {}
set OEM_ABANDON_SOFTWARE = FALSE
set OEM_ABANDON_ON = TRUE
endif
set IOBaseAddrIndex = *($(IOBaseAddrList), 1)
set RcvBufCountIndex = *($(RcvBufCountList), $(RcvBufCountDefault))
set XmitBufCountIndex = *($(XmitBufCountList), $(XmitBufCountDefault))
set FrameSizeValue = $(FrameSizeDefault))
set NetworkAddress = *($(EditTextOut), 1)
set Rad1 = 1
set Rad2 = 3
set RadioIn = {$(Rad1), $(Rad2) }
set EarlyRelease = 1
set FrameStatus = 1
set IOBasePCMCIAIndex = *($(IOBasePCMCIAList), $(IOBasePCMCIADefault))
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters\SerialOct3xnd3" $(MAXIMUM_ALLOWED) SerialHandle
ifstr $(SerialHandle) == $(KeyNull)
set ComPortIndex = *($(ComPortList), $(ComPortDefault))
set AllowComPort = $(TRUE)
else
set ComPortIndex = *($(ComPortList), 6)
set AllowComPort = $(FALSE)
endif
CloseRegKey $(SerialHandle)
set InterruptIndex = *($(InterruptList), $(InterruptDefault))
set InterruptStyleIndex = *($(InterruptStyleList), $(InterruptDefault))
set InterruptRoutingIndex = *($(InterruptRoutingList), $(InterruptDefault))
set MemWinIndex = *($(MemWinList), $(MemWinDefault))
set IOBasePCMCIAControllerIndex = *($(IOBasePCMCIAControllerList), 1)
ifcontains(i) $(AdpType) in {"PCMCIA"}
set IOBasePCMCIAControllerList = >($(IOBasePCMCIAControllerList),"Windows NT Enabler")
set IOBasePCMCIAControllerValues = >($(IOBasePCMCIAControllerValues),0)
set IOBasePCMCIAControllerIndex = *($(IOBasePCMCIAControllerList), 3)
endif
ifcontains(i) $(AdpType) in {"Combo"}
ifstr(i) $(NTComboSupport) == $(TRUE)
set IOBasePCMCIAControllerList = >($(IOBasePCMCIAControllerList),"Windows NT Enabler")
set IOBasePCMCIAControllerValues = >($(IOBasePCMCIAControllerValues),0)
set IOBasePCMCIAControllerIndex = *($(IOBasePCMCIAControllerList), 3)
endif
endif
set WaitstateIndex = *($(WaitstateList), 1)
set DatasizeIndex = 1
set RingSpeedIndex = *($(RingSpeedList), 1)
set RSIndex = *($(RSList), 1)
Shell "" DebugConfiguration "After parameter querying"
set RcvBufCountValue = *($(RcvBufCountList), $(RcvBufCountDefault))
set XmitBufCountValue = *($(XmitBufCountList), $(XmitBufCountDefault))
set LegacyWakeUpValue = *($(LegacyWakeUpValues), $(LegacyWakeUpDefault))
set FrameSizeValue = $(FrameSizeDefault)
set BusNumber = $(BusNoDefault)
set SlotNumber = $(SlotNoDefault)
set ForcePciSlot = 1
Shell $(UtilityInf), GetBusTypeNum
set BusInterfaceType = $($R1)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error."
goto ShellCodeError
endif
Set from = $(fatal)
Set to = $(fatal)
Goto $(StartLabel)
;-----------------------------------------------
; Installation Section
;-----------------------------------------------
;
; Get the current values of all the parameters
;
installadapter = +
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
CloseRegKey $(KeyProduct)
ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
$(ProductVersion)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error: cannot get an error string."
goto ShellCodeError
endif
goto end
else
set OldVersionExisted = $(TRUE)
endif
endif
Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Goto ShellCodeError
Else-Ifstr(i) $($R0) == STATUS_FAILED
Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
Goto fatal
Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
Goto successful
Endif
Set SrcDir = $($R1)
install "Install-Dll"
Goto adapteroptions
;-----------------------------------------------
; Configuration Section
;-----------------------------------------------
;
; Get the current values of all the parameters
;
configureadapter = +
Ifstr(i) $(KeyProduct) == $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) == $(KeyNull)
set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
Debug-Output "INF: Cannot find component product key"
goto fatalregistry
Endif
Endif
Debug-Output "INF: Shelling to FindService"
Shell $(UtilityInf) FindService, $(KeyProduct)
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: FindService shell failure"
Goto ShellCodeError
Endif
Ifstr(i) $($R0) != NO_ERROR
Debug-Output "INF: FindService Shell error: "$($R0)
Goto fatalregistry
endif
Set KeyParameters = $($R2)
CloseRegKey $($R1)
Ifstr $(KeyParameters) == $(KeyNull)
set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
Debug-Output "INF: Cannot find component service"
goto fatalregistry
endif
set OldVersionExisted = $(TRUE)
set ValueName = ""
set ValueData = ""
set ValueStr = ""
set ValueList = {}
EnumRegValue $(KeyParameters) ValueList
ForListDo $(ValueList)
set ValueItem = $($)
set ValueName = *($(ValueItem),1)
set ValueData = *($(ValueItem),4)
ifstr(i) $(ValueName) == "RecBufCount"
set RcvBufCountValue = $(ValueData)
else-ifstr(i) $(ValueName) == "RxBuffers"
set RcvBufCountValue = $(ValueData)
else-ifstr(i) $(ValueName) == "IoBase"
set IOBaseAddrValue = $(ValueData)
else-ifstr(i) $(ValueName) == "TxBufferCount"
set XmitBufCountValue = $(ValueData)
else-ifstr(i) $(ValueName) == "TxBuffers"
set XmitBufCountValue = $(ValueData)
else-ifstr(i) $(ValueName) == "LegacyWakeUp"
set LegacyWakeUpValue = $(ValueData)
else-ifstr(i) $(ValueName) == "TransmitBufferSize"
set FrameSizeValue = $(ValueData)
else-ifstr(i) $(ValueName) == "MaxFrameSize"
set FrameSizeValue = $(ValueData)
else-ifstr(i) $(ValueName) == "BusNumber"
set BusNumber = $(ValueData)
else-ifstr(i) $(ValueName) == "SlotNumber"
set SlotNumber = $(ValueData)
else-ifstr(i) $(ValueName) == "EarlyReleaseType"
set EarlyRelease = $(ValueData)
else-ifstr(i) $(ValueName) == "FrameStatusType"
set FrameStatus = $(ValueData)
else-Ifstr(i) $(ValueName) == "NetworkAddress"
set NetworkAddress = $(ValueData)
else-ifstr(i) $(ValueName) == "IoBaseAddress"
set IOBasePCMCIAValue = $(ValueData)
else-ifstr(i) $(ValueName) == "IoBaseAddress_1"
set IOBasePCMCIAValue_1 = $(ValueData)
else-ifstr(i) $(ValueName) == "PCCARDAttributeMemoryAddress"
set MemWinValue = $(ValueData)
else-ifstr(i) $(ValueName) == "InterruptNumber"
set InterruptValue = $(ValueData)
else-ifstr(i) $(ValueName) == "InterruptStyle"
set InterruptStyleValue = $(ValueData)
else-ifstr(i) $(ValueName) == "InterruptRouting"
set InterruptRoutingValue = $(ValueData)
else-ifstr(i) $(ValueName) == "ComPortBase"
set ComPortValue = $(ValueData)
ifstr(i) $(ComPortValue) != 0
set AllowComPort = $(TRUE)
endif
else-ifstr(i) $(ValueName) == "PcmciaCtrlBase"
set IOBasePCMCIAControllerValue = $(ValueData)
else-ifstr(i) $(ValueName) == "WaitStates"
set WaitstateValue = $(ValueData)
else-ifstr(i) $(ValueName) == "DataSize"
set DatasizeValue = $(ValueData)
else-ifstr(i) $(ValueName) == "RingSpeed"
set RingSpeedValue = $(ValueData)
else-ifstr(i) $(ValueName) == "BusType"
set BusInterfaceType = $(ValueData)
else-ifstr(i) $(ValueName) == "ForcePciSlot"
set ForcePciSlot = $(ValueData)
endif
EndForListDo
;
; For combo cards with NT enabler we must
; use the second I/O window
;
ifstr(i) $(IOBasePCMCIAValue_1) != ""
set IOBasePCMCIAValue = $(IOBasePCMCIAValue_1)
endif
;
; Combo-lists and radio-buttons use a special list of parameter-names
; when dialogs are executed. The following section converts the actual
; values into the corresponding names (indexes). If a value is undefined,
; the first entry in the index-list is used.
;
set RcvBufCountIndex = *($(RcvBufCountList), ~($(RcvBufCountValues),$(RcvBufCountValue)))
ifstr(i) $(RcvBufCountIndex) == ""
set RcvBufCountIndex = *($(RcvBufCountList), $(RcvBufCountDefault))
endif
set XmitBufCountIndex = *($(XmitBufCountList), ~($(XmitBufCountValues),$(XmitBufCountValue)))
ifstr(i) $(XmitBufCountIndex) == ""
set XmitBufCountIndex = *($(XmitBufCountList), $(XmitBufCountDefault))
endif
set LegacyWakeUpIndex = *($(LegacyWakeUpList), ~($(LegacyWakeUpValues),$(LegacyWakeUpValue)))
ifstr(i) $(LegacyWakeUpIndex) == ""
set LegacyWakeUpIndex = *($(LegacyWakeUpList), $(LegacyWakeUpDefault))
endif
set IOBaseAddrIndex = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrValue)))
ifstr(i) $(IOBaseAddrIndex) == ""
set IOBaseAddrIndex = *($(IOBaseAddrList), 1)
endif
ifcontains(i) $(AdpType) in {"Legacy","PCI1","PCI2","PCI3","Cardbus"}
set RSIndex = *($(RSList), ~($(RSValues),$(RingSpeedValue)))
ifstr(i) $(RSIndex) == ""
set RSIndex = *($(RSList), 1)
endif
else
set RingSpeedIndex = *($(RingSpeedList), ~($(RingSpeedValues),$(RingSpeedValue)))
ifstr(i) $(RingSpeedIndex) == ""
set RingSpeedIndex = *($(RingSpeedList), 1)
endif
endif
Ifstr(i) $(EarlyRelease) == "Yes"
set EarlyRelease = 1
set Rad1 = 1
else-ifstr(i) $(EarlyRelease) == 1
set Rad1 = 1
else
set Rad1 = 2
endif
Ifstr(i) $(FrameStatus) == "Yes"
set FrameStatus = 1;
set Rad2 = 3
else-ifstr(i) $(FrameStatus) == 1
set Rad2 = 3
else
set Rad2 = 4
endif
set RadioIn = {$(Rad1), $(Rad2) }
set IOBasePCMCIAIndex = *($(IOBasePCMCIAList), ~($(IOBasePCMCIAValues),$(IOBasePCMCIAValue)))
ifstr(i) $(IOBasePCMCIAIndex) == ""
set IOBasePCMCIAIndex = *($(IOBasePCMCIAList), 1)
endif
set MemWinIndex = *($(MemWinList), ~($(MemWinValues),$(MemWinValue)))
ifstr(i) $(MemWinIndex) == ""
set MemWinIndex = *($(MemWinList), $(MemWinDefault))
endif
set InterruptIndex = *($(InterruptList), ~($(InterruptValues),$(InterruptValue)))
ifstr(i) $(InterruptIndex) == ""
set InterruptIndex = *($(InterruptList), $(InterruptDefault))
endif
set InterruptStyleIndex = *($(InterruptStyleList), ~($(InterruptStyleValues),$(InterruptStyleValue)))
ifstr(i) $(InterruptStyleIndex) == ""
set InterruptStyleIndex = *($(InterruptStyleList), $(InterruptDefault))
endif
set InterruptRoutingIndex = *($(InterruptRoutingList), ~($(InterruptRoutingValues),$(InterruptRoutingValue)))
ifstr(i) $(InterruptIndex) == ""
set InterruptRoutingIndex = *($(InterruptRoutingList), $(InterruptDefault))
endif
set ComPortIndex = *($(ComPortList), ~($(ComPortValues),$(ComPortValue)))
ifstr(i) $(ComPortIndex) == ""
set ComPortIndex = *($(ComPortList), 6)
endif
set IOBasePCMCIAControllerIndex = *($(IOBasePCMCIAControllerList), ~($(IOBasePCMCIAControllerValues),$(IOBasePCMCIAControllerValue)))
ifstr(i) $(IOBasePCMCIAControllerIndex) == ""
set IOBasePCMCIAControllerIndex = *($(IOBasePCMCIAControllerList), 1)
endif
set WaitstateIndex = *($(WaitstateList), ~($(WaitstateValues),$(WaitstateValue)))
ifstr(i) $(WaitstateIndex) == ""
set WaitstateIndex = *($(WaitstateList), 2)
endif
set DatasizeIndex = *($(DatasizeList), ~($(DatasizeValues),$(DatasizeValue)))
ifstr(i) $(DatasizeIndex) == ""
set DatasizeIndex = *($(DatasizeList), 1)
endif
;
; This section runs the dialogs. From the main dialog (adapter parameter
; setup) it is possible to enter the PCMCIA dialog if requested. When
; exiting the PCMCIA dialog the user is returned to the main dialog.
;
adapteroptions = +
set from = adapteroptions
ifstr(i) $(!NTN_InstallMode) == "install"
;
; Default parameters for installation.
; User will NOT be asked to change/verify configuration during
; normal or unattended installation, unless we are installing on
; NT v3.50.
;
ifcontains(i) $(AdpType) in {"PCI1","PCI2","PCI3"}
set BusInterfaceType = 5
else-ifcontains(i) $(AdpType) in {"Cardbus"}
; Required to make checked version work
ifstr(i) $(CheckedBuild) == 1
set BusInterfaceType = 1
else
set BusInterfaceType = 5
endif
else-ifcontains(i) $(Option) in {"OCTX3117","OCTX3118"}
; ISA
set BusInterfaceType = 1
else-ifstr(i) $(Option) == "OCTX3133"
; EISA
set BusInterfaceType = 2
else-ifstr(i) $(Option) == "OCTX3129"
; MCA
set BusInterfaceType = 3
else
; PCMCIA
set BusInterfaceType = 1
endif
ifstr(i) $(!AutoNetBusNumber) != ""
set BusNumber = $(!AutoNetBusNumber)
else
set BusNumber = 0
endif
goto unattended
endif
set OldNetAddress = $(NetworkAddress)
;
; Load DLL containing dialogs and verification routines
;
LoadLibrary "Olicom Driver Disk" $(DialogDllName) DialogHandle
adapteroptions1 = +
;
; Read main dialog setup and show dialog
;
ifcontains(i) $(AdpType) in {"Legacy"}
read-syms OCTK16ParameterDlg$(!STF_LANGUAGE)
else-ifcontains(i) $(AdpType) in {"PCI1"}
read-syms PCIParameterDlg$(!STF_LANGUAGE)
else-ifcontains(i) $(AdpType) in {"PCI2","PCI3"}
read-syms PCI3ParameterDlg$(!STF_LANGUAGE)
else-ifcontains(i) $(AdpType) in {"PCMCIA"}
read-syms PCMCIAParameterDlg$(!STF_LANGUAGE)
else-ifcontains(i) $(AdpType) in {"Cardbus"}
read-syms PCMCIAParameterDlg$(!STF_LANGUAGE)
set Combo3List = $(RSList)
set Combo3Out = $(RSIndex)
else-ifcontains(i) $(AdpType) in {"Combo"}
read-syms COMBOParameterDlg$(!STF_LANGUAGE)
endif
set RadioIn = {$(Rad1), $(Rad2) }
ui start "InputDlg" $(DialogHandle)
ui pop 1
;
; Save new settings because this dialog might be called again.
; If CANCEL was pressed these values will not be used
;
ifcontains(i) $(AdpType) in {"Legacy"}
set IOBaseAddrIndex = $(Combo1Out)
set RcvBufCountIndex = $(Combo2Out)
set XmitBufCountIndex = $(Combo3Out)
set RSIndex = $(Combo4Out)
else-ifcontains(i) $(AdpType) in {"PCI1"}
set RcvBufCountIndex = $(Combo1Out)
set XmitBufCountIndex = $(Combo2Out)
set RSIndex = $(Combo3Out)
else-ifcontains(i) $(AdpType) in {"PCI2","PCI3"}
set LegacyWakeUpIndex = $(Combo1Out)
set RcvBufCountIndex = $(Combo2Out)
set XmitBufCountIndex = $(Combo3Out)
set RSIndex = $(Combo4Out)
else-ifcontains(i) $(AdpType) in {"Cardbus"}
set RcvBufCountIndex = $(Combo1Out)
set XmitBufCountIndex = $(Combo2Out)
set RSIndex = $(Combo3Out)
else
set RcvBufCountIndex = $(Combo1Out)
set XmitBufCountIndex = $(Combo2Out)
set RingSpeedIndex = $(Combo3Out)
endif
ifcontains "1" in $(RadioOut)
set EarlyRelease = 1
set Rad1 = 1
else-ifcontains "2" in $(RadioOut)
set EarlyRelease = 0
set Rad1 = 2
endif
ifContains "3" in $(RadioOut)
set FrameStatus = 1
set Rad2 = 3
else-ifcontains "4" in $(RadioOut)
set FrameStatus = 0
set Rad2 = 4
endif
set NetworkAddress = *($(EditTextOut),1)
set FrameSizeValue = *($(EditTextOut),2)
ifstr(i) $(DLGEVENT) == "CONTINUE"
;
; parameters have already been stored at this stage
;
goto nextstep
else-ifstr(i) $(DLGEVENT) == "EXIT"
set CommonStatus = STATUS_USERCANCEL
Debug-Output "INF: Action: exit. Bye."
FreeLibrary $(DialogHandle)
goto end
else-ifstr(i) $(DLGEVENT) == "FREEBUTTON1" ; BUS... (non PCMCIA)
adapteroptions2 = +
;
; Read PCMCIA dialog setup and show dialog
;
ifcontains(i) $(AdpType) in {"PCMCIA"}
read-syms PCMCIAMoreDlg$(!STF_LANGUAGE)
else-ifcontains(i) $(AdpType) in {"Cardbus"}
read-syms CardbusDlg$(!STF_LANGUAGE)
else-ifcontains(i) $(AdpType) in {"Combo"}
ifstr $(AllowComPort) == $(TRUE)
read-syms COMBOMoreDlg$(!STF_LANGUAGE)
ifstr(i) $(IOBasePCMCIAControllerIndex) == "Windows NT Enabler"
set Combo4List = $(ComPortListNT)
endif
else
read-syms PCMCIAMoreDlg$(!STF_LANGUAGE)
endif
else-ifcontains(i) $(AdpType) in {"Legacy"}
Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardwareDescrShort) $(BusInterfaceType) $(BusNumber)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto Shell_Code_Error
endif
ifstr(i) $($R0) == ERROR
Shell $(UtilityInf), GetBusTypeNum
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto Shell_Code_Error
endif
set BusInterfaceType = $($R1)
set BusNumber = 0
else
set BusInterfaceType = $($R1)
set BusNumber = $($R2)
endif
set BusTypeConfigured = 1
goto adapteroptions1
else-ifcontains(i) $(AdpType) in {"PCI1","PCI2","PCI3"}
set DlgType = "MessageBox"
set STF_MB_TITLE = "PCI Bus Parameters"
set STF_MB_TEXT = "Bus parameters are configured automatically for PCI adapters. Do you want to force the PCI slot number?"
set STF_MB_TYPE = 4
set STF_MB_ICON = 2
ifstr $(ForcePciSlot) == "1"
set STF_MB_DEF = 1
else
set STF_MB_DEF = 2
endif
ui start "PciBusParameters"
ifstr $(DLGEVENT) == "YES"
set ForcePciSlot = 1
Shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) STATUS +
"This PCI adapter is currently configured for bus number "$(BusNumber)" and slot number "$(SlotNumber)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto Shell_Code_Error
endif
else-ifstr $(DLGEVENT) == "NO"
set ForcePciSlot = 0
endif
set BusTypeConfigured = 1
goto adapteroptions1
endif
ui start "InputDlg" $(DialogHandle)
ui pop 1
ifcontains(i) $(AdpType) in {"Cardbus"}
ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
;
; For CardBus this option should work as Cancel
;
goto adapteroptions1
endif
endif
;
; Save new settings because this dialog might be called again.
; If CANCEL was pressed these values will not be used
;
set IOBasePCMCIAIndex = $(Combo1Out)
set MemWinIndex = $(Combo2Out)
set InterruptIndex = $(Combo3Out)
ifcontains(i) $(AdpType) in {"Cardbus"}
set InterruptStyleIndex = $(Combo4Out)
set InterruptRoutingIndex = $(Combo5Out)
else
set ComPortIndex = $(Combo4Out)
ifstr(i) $(DLGEVENT) == "CONTINUE"
;
; parameters have already been stored at this stage
;
goto adapteroptions1
else-ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
;
; Read PCMCIA Advanced dialog setup and show dialog
;
read-syms PCMCIAAdvancedDlg$(!STF_LANGUAGE)
ui start "InputDlg" $(DialogHandle)
ui pop 1
;
; Save new settings because this dialog might be called again.
; If CANCEL was pressed these values will not be used
;
set IOBasePCMCIAControllerIndex = $(Combo1Out)
set WaitstateIndex = $(Combo2Out)
set DatasizeIndex = *($(RadioOut),1)
ifstr(i) $(IOBasePCMCIAControllerIndex) == "Windows NT Enabler"
ifstr(i) $(ComPortIndex) == "Disabled"
set ComPortIndex = *($(ComPortList), $(ComPortDefault))
else-ifstr(i) $(ComPortIndex) == "COM4"
set ComPortIndex = *($(ComPortList), $(ComPortDefault))
endif
endif
goto adapteroptions2
else
Debug-Output "INF: Action: unknown: "$(DLGEVENT)
FreeLibrary $(DialogHandle)
goto end
endif
else
Debug-Output "INF: Action: unknown: "$(DLGEVENT)
FreeLibrary $(DialogHandle)
goto end
endif
nextstep =+
ifcontains(i) $(AdpType) in {"PCI1","PCI2","PCI3","Cardbus"}
set BusTypeConfigured = 1 ; Avoid BusType/BusNumber Dialog box for PCI/CardBus
endif
ifstr(i) $(!NTN_InstallMode) == "install"
ifint $(BusTypeConfigured) == 0
ifcontains(i) $(AdpType) in {"Legacy"}
Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardwareDescrShort) $(BusInterfaceType) $(BusNumber)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto Shell_Code_Error
endif
ifstr(i) $($R0) == ERROR
Shell $(UtilityInf), GetBusTypeNum
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto Shell_Code_Error
endif
set BusInterfaceType = $($R1)
set BusNumber = 0
else
set BusInterfaceType = $($R1)
set BusNumber = $($R2)
endif
endif
endif
endif
ifstr $(NetworkAddress) != ""
;
; If network address has been entered then verify that it is a
; valid address (not a multicast or broadcast address)
;
set FLibraryErrCtl = 1
LibraryProcedure DlgResult $(DialogHandle) VerifyAddress $(NetworkAddress)
set FLibraryErrCtl = 0
ifstr $(DlgResult) != "STATUS_SUCCESS"
FreeLibrary $(DialogHandle)
set Error = $(DlgResult)
goto nonfatal
endif
endif
set FLibraryErrCtl = 1
set RcvBufCountValue = *($(RcvBufCountValues), ~($(RcvBufCountList),$(RcvBufCountIndex)))
set XmitBufCountValue = *($(XmitBufCountValues), ~($(XmitBufCountList),$(XmitBufCountIndex)))
set RingSpeedValue = *($(RingSpeedValues), ~($(RingSpeedList),$(RingSpeedIndex)))
set RSValue = *($(RSValues), ~($(RSList),$(RSIndex)))
ifcontains(i) $(AdpType) in {"Legacy","PCI1","PCI2","PCI3","Cardbus"}
ifstr $(RcvBufCountValue) == 0
LibraryProcedure DlgResult $(DialogHandle) CheckMaxFrameSize $(FrameSizeValue) $(XmitBufCountValue) 32 $(RSValue)
else
LibraryProcedure DlgResult $(DialogHandle) CheckMaxFrameSize $(FrameSizeValue) $(XmitBufCountValue) $(RcvBufCountValue) $(RSValue)
endif
else
LibraryProcedure DlgResult $(DialogHandle) CheckMaxFrameSize $(FrameSizeValue) $(XmitBufCountValue) $(RcvBufCountValue) $(RingSpeedValue)
endif
set FLibraryErrCtl = 0
ifstr $(DlgResult) != "STATUS_SUCCESS"
FreeLibrary $(DialogHandle)
set Error = $(DlgResult)
goto nonfatal
endif
FreeLibrary $(DialogHandle)
unattended =+
ifint $(OldVersionExisted) == $(TRUE)
ifstr(i) $(!NTN_InstallMode) == configure
goto writeparameters
endif
endif
StartWait
ifstr(i) $(!NTN_InstallMode) == "install"
Ifstr(i) $(DoCopy) == "YES"
Ifstr(i) $(SrcDir) == ""
read-syms AskSourceDlgText
Shell $(subroutineinf) DoAskSourceEx $(SrcDir) $(DlgText)
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Goto ShellCodeError
Else-Ifstr(i) $($R0) == STATUS_FAILED
Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
Goto fatal
Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
Goto successful
Endif
Set SrcDir = $($R1)
Endif
Endif
install "Install-Option"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
endif
endif
Ifint $(OldVersionExisted) != $(FALSE)
Goto installhardware
Endif
Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName), +
$(ProductSoftwareName), +
$(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
$(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
$(NetEventDLL), ""
Set OEM_ABANDON_SOFTWARE = TRUE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "INF: Registry error: add software components"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto fatalregistry
endif
set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
Set SoftServiceKey = $($R3)
Set SoftParameterKey = $($R4)
Set SoftLinkageKey = $($R5)
set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error."
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "INF: Registry error: add value list."
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
goto fatalregistry
endif
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error."
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "INF: Registry error: add value list."
goto fatalregistry
endif
;
; Insert hardware component in registry
;
installhardware =+
set HardwareInstalled = $(FALSE)
ifcontains(i) $(AdpType) in {"PCI1","PCI2","PCI3"}
;
; If We are installing a PCI adapter so go get PCI information
;
; NOTE: PCI configuration (BusNumber, SlotNumber will not be
; changed in normal configuration
;
set HardwareInstalled = $(TRUE)
set VendorID = 4237 ; Olicom Vendor ID: 108Dh
ifcontains(i) $(Option) in {"OCTX3139","OCTX3140"}
set DeviceID = 4 ; OC-3139/OC-3140
else-ifcontains(i) $(Option) in {"OCTX3141"}
set DeviceID = 7 ; OC-3141
else-ifcontains(i) $(Option) in {"OCTX3540"}
set DeviceID = 8 ; OC-3540
else
set DeviceID = 1 ; OC-3136/OC-3137
endif
; Get PCI information
Shell $(UtilityInf), GetPCIInformation, $(VendorID) $(DeviceID)
set AdapterList = $($R0)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R0) == {}
;
; Adapter list is empty. No adapters of this type was found
;
ifstr(i) $(!STF_GUI_UNATTENDED) != "YES"
;
; Unattended install: We will NOT install adapter
; Attended install : We will ask user if he wants to install
; adapter anyway.
;
shell $(subroutineinf) SetupMessage $(!STF_LANGUAGE) FATAL +
"No PCI adapters found"
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set Error = $($R0)
goto fatal
endif
EndWait
goto abandon
endif
else
;
; Adapter(s) has be found. We will try to find out if the (or
; these) adapter hasn't been installed already.
;
set FoundNew = "NO"
ForListDo $(AdapterList)
; Run through the Adapter list
; Get Bus number from list:
set BusNumber = *($($),1)
; Get SLot Number from list:
set SlotNumber = *($($),2)
; Check registry
Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNumber), +
$(SlotNumber), $(ProductHardwareDescription), $(ProductHardwareName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr $($R0) != "NO_ERROR"
set Error = $($R0)
goto fatal
endif
set AlreadyInstalled = $($R1)
ifstr(i) $(AlreadyInstalled) == "NO"
ifstr(i) $(Option) == "OCTX3137"
Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNumber), +
$(SlotNumber), $(ProductHardwareOCTX3136Description), $(ProductHardwareName)
set AlreadyInstalled = $($R1)
else-ifstr(i) $(Option) == "OCTX3136"
Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNumber), +
$(SlotNumber), $(ProductHardwareOCTX3137Description), $(ProductHardwareName)
set AlreadyInstalled = $($R1)
else-ifstr(i) $(Option) == "OCTX3140"
Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNumber), +
$(SlotNumber), $(ProductHardwareOCTX3139Description), $(ProductHardwareName)
set AlreadyInstalled = $($R1)
else-ifstr(i) $(Option) == "OCTX3139"
Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNumber), +
$(SlotNumber), $(ProductHardwareOCTX3140Description), $(ProductHardwareName)
set AlreadyInstalled = $($R1)
endif
endif
ifstr(i) $(AlreadyInstalled) == "NO"
;
; This adapter in the AdapterList has not been install yet
;
Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
ifint $($R4) != -1
Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
endif
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: Cannot add hardware component"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "INF: Registry error: add hardware component"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
goto fatalregistry
endif
set KeyProduct = $($R1)
set KeyAdapterRules = $($R2)
set KeyParameters = $($R3)
set AdapterNumber = $($R4)
set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error"
goto ShellCodeError
endif
CloseRegKey $(KeyProduct)
Set KeyProduct = ""
set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error."
goto ShellCodeError
endif
CloseRegKey $(KeyAdapterRules)
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "INF: Registry error: add value list."
CloseRegKey $(KeyParameters)
goto fatalregistry
endif
;
; Set up parameter list for AddValueList routine
;
Set NewValueList = {{IoBase,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
{MediaType,$(NoTitle),$(!REG_VT_DWORD),2},+
{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
{SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNumber)},+
{ForcePciSlot,$(NoTitle),$(!REG_VT_DWORD),$(ForcePciSlot)},+
{FixedIntMod,$(NoTitle),$(!REG_VT_DWORD),0},+
{RxBuffers,$(NoTitle),$(!REG_VT_DWORD),$(RcvBufCountValue)},+
{TxBuffers,$(NoTitle),$(!REG_VT_DWORD),$(XmitBufCountValue)},+
{MaxFrameSize,$(NoTitle),$(!REG_VT_DWORD),$(FrameSizeValue)},+
{EarlyReleaseType,$(NoTitle),$(!REG_VT_DWORD),$(EarlyRelease)},+
{FrameStatusType,$(NoTitle),$(!REG_VT_DWORD),$(FrameStatus)}}
ifstr $(NetworkAddress) != ""
set NewValueList = >($(NewValueList),{NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)})
endif
set NewValueList = >($(NewValueList),{RingSpeed,$(NoTitle),$(!REG_VT_DWORD),$(RSValue)})
ifcontains(i) $(AdpType) in {"PCI2","PCI3"}
set NewValueList = >($(NewValueList),{LegacyWakeUp,$(NoTitle),$(!REG_VT_DWORD),$(LegacyWakeUpValue)})
endif
;---------------------------------------
; Add keyword to prevent driver from
; entering promiscuous mode
;
;set NewValueList = >($(NewValueList),{AllowTrace,$(NoTitle),$(!REG_VT_DWORD),0})
;
;---------------------------------------
;
; Now update registry
;
Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters)
endif
set FoundNew = "YES"
endif
EndForListDo
ifstr(i) $(FoundNew) == "NO"
ifstr(i) $(!STF_GUI_UNATTENDED) != "YES"
;
; No new (uninstalled) adapters found - show message
;
shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), STATUS,+
"No new PCI adapters found"
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set Error = $($R0)
goto fatal
endif
endif
endif
endif
endif
ifstr(i) $(HardwareInstalled) == $(FALSE)
;
; Install non-PCI device (or NT 3.50)
;
Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
ifint $($R4) != -1
Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
endif
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: Cannot add hardware component"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "INF: Registry error: add hardware component"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
goto fatalregistry
endif
set KeyProduct = $($R1)
set KeyAdapterRules = $($R2)
set KeyParameters = $($R3)
set AdapterNumber = $($R4)
set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
{Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
{ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error"
goto ShellCodeError
endif
CloseRegKey $(KeyProduct)
Set KeyProduct = ""
set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
{bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error."
goto ShellCodeError
endif
CloseRegKey $(KeyAdapterRules)
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "INF: Registry error: add value list."
CloseRegKey $(KeyParameters)
goto fatalregistry
endif
endif
;
; Write Adapter Parameters to registry
;
writeparameters = +
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error."
goto ShellCodeError
endif
Ifstr(i) $(KeyParameters) == $(KeyNull)
Debug-Output "INF: *** KeyParameters is NULL at writeparameters"
Endif
set DoWrite = "NO"
ifcontains(i) $(AdpType) in {"PCI1","PCI2","PCI3"}
ifstr(i) $(!NTN_InstallMode) == "Configure"
set DoWrite = "YES"
endif
else
set DoWrite = "YES"
endif
Ifstr(i) $(DoWrite) == "YES"
;
; Convert selections from combo-lists and radio-buttons into actual
; parameter values
;
set IOBaseAddrValue = *($(IOBaseAddrValues), ~($(IOBaseAddrList),$(IOBaseAddrIndex)))
set RcvBufCountValue = *($(RcvBufCountValues), ~($(RcvBufCountList),$(RcvBufCountIndex)))
set XmitBufCountValue = *($(XmitBufCountValues), ~($(XmitBufCountList),$(XmitBufCountIndex)))
set LegacyWakeUpValue = *($(LegacyWakeUpValues), ~($(LegacyWakeUpList),$(LegacyWakeUpIndex)))
set IOBasePCMCIAValue = *($(IOBasePCMCIAValues), ~($(IOBasePCMCIAList),$(IOBasePCMCIAIndex)))
set MemWinValue = *($(MemWinValues), ~($(MemWinList),$(MemWinIndex)))
set InterruptValue = *($(InterruptValues), ~($(InterruptList),$(InterruptIndex)))
set InterruptStyleValue = *($(InterruptStyleValues), ~($(InterruptStyleList),$(InterruptStyleIndex)))
set InterruptRoutingValue = *($(InterruptRoutingValues), ~($(InterruptRoutingList),$(InterruptRoutingIndex)))
set RingSpeedValue = *($(RingSpeedValues), ~($(RingSpeedList),$(RingSpeedIndex)))
set RSValue = *($(RSValues), ~($(RSList),$(RSIndex)))
set ComPortValue = *($(ComPortValues), ~($(ComPortList),$(ComPortIndex)))
set IOBasePCMCIAControllerValue = *($(IOBasePCMCIAControllerValues), ~($(IOBasePCMCIAControllerList),$(IOBasePCMCIAControllerIndex)))
set WaitstateValue = *($(WaitstateValues), ~($(WaitstateList),$(WaitstateIndex)))
set DatasizeValue = *($(DatasizeValues), ~($(DatasizeList),$(DatasizeIndex)))
ifcontains(i) $(AdpType) in {"Combo"}
set BusInterfaceType = 1
set BusNumber = 0
Endif
ifcontains(i) $(AdpType) in {"PCMCIA"}
set BusInterfaceType = 1
set BusNumber = 0
Endif
ifcontains(i) $(AdpType) in {"Combo"}
;
; If we're installing a ComboCard, update settings for Serial\parameters\serialoct3xnd3 as well
; SERIALCOMM will be created automatically by serial.sys
;
ifint $(ComPortValue) != 0
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters\SerialOct3xnd3" $(MAXIMUM_ALLOWED) SerialHandle
Ifstr $(SerialHandle) == $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters" $(MAXIMUM_ALLOWED) SerialKey
CreateRegKey $(SerialKey) {"SerialOct3xnd3",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" SerialHandle
CloseRegKey $(SerialKey)
endif
ifint $(ComPortValue) != 24
set NewValueList = {{DosDevices, $(NoTitle),$(!REG_VT_SZ), $(ComPortIndex)},+
{ForceFifoEnable, $(NoTitle),$(!REG_VT_DWORD), 0},+
{ForceShare, $(NoTitle),$(!REG_VT_DWORD), 1},+
{Interrupt, $(NoTitle),$(!REG_VT_DWORD), $(InterruptValue)},+
{PortAddress, $(NoTitle),$(!REG_VT_DWORD), $(ComPortValue)}}
Else
set-add ComportBaseAddress = $(ComPortValue), $(IOBasePCMCIAValue)
set NewValueList = {{DosDevices, $(NoTitle),$(!REG_VT_SZ), $(ComPortIndex)},+
{ForceFifoEnable, $(NoTitle),$(!REG_VT_DWORD), 0},+
{ForceShare, $(NoTitle),$(!REG_VT_DWORD), 1},+
{Interrupt, $(NoTitle),$(!REG_VT_DWORD), $(InterruptValue)},+
{PortAddress, $(NoTitle),$(!REG_VT_DWORD), $(ComportBaseAddress)}}
Endif
Shell $(UtilityInf), AddValueList, $(SerialHandle), $(NewValueList)
CloseRegKey $(SerialHandle)
;
; Update settings comm port in SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports section
;
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" $(MAXIMUM_ALLOWED) SerialHandle
Ifstr $(SerialHandle) == $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion" $(MAXIMUM_ALLOWED) SerialKey
CreateRegKey $(SerialKey) {"Ports",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" SerialHandle
CloseRegKey $(SerialKey)
endif
SetRegValue $(SerialHandle) {$(ComPortIndex)":",$(NoTitle),$(!REG_VT_SZ), "9600,n,8,1"}
CloseRegKey $(SerialHandle)
;
; Update settings in HARDWARE\DEVICEMAP\SERIALCOMM section
;
OpenRegKey $(!REG_H_LOCAL) "" "HARDWARE\DEVICEMAP\SERIALCOMM" $(MAXIMUM_ALLOWED) SerialHandle
Ifstr $(SerialHandle) == $(KeyNull)
OpenRegKey $(!REG_H_LOCAL) "" "HARDWARE\DEVICEMAP" $(MAXIMUM_ALLOWED) SerialKey
CreateRegKey $(SerialKey) {"SERIALCOMM",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" SerialHandle
CloseRegKey $(SerialKey)
endif
SetRegValue $(SerialHandle) {"SerialOct3xnd3",$(NoTitle),$(!REG_VT_SZ),$(ComPortIndex)}
CloseRegKey $(SerialHandle)
Else
;
; Be nice and delete the COM stuff if user really wants so
; SERIALCOMM will be deleted automatically
;
ifstr(i) $(AllowComPort) == $(TRUE)
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters" $(MAXIMUM_ALLOWED) SerialHandle
DeleteRegTree $(SerialHandle) "SerialOct3xnd3"
CloseRegKey $(SerialHandle)
OpenRegKey $(!REG_H_LOCAL) "" "HARDWARE\DEVICEMAP\SERIALCOMM" $(MAXIMUM_ALLOWED) SerialHandle
DeleteRegValue $(SerialHandle) "SerialOct3xnd3"
CloseRegKey $(SerialHandle)
endif
Endif
Endif
;
; If using NT enabler for combo cards we must request
; one additional I/O window
;
set PcmciaIoLength = 31
ifcontains(i) $(AdpType) in {"Combo"}
ifstr(i) $(NTComboSupport) == $(TRUE)
ifint $(IOBasePCMCIAControllerValue) == 0
set IOBasePCMCIAValue_1 = $(IOBasePCMCIAValue)
set PcmciaIoLength_1 = $(PcmciaIoLength)
set IOBasePCMCIAValue = $(ComPortValue)
set PcmciaIoLength = 8
endif
endif
endif
;
; Set up parameter list for AddValueList routine
;
Set NewValueList = {{IoBase,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
{MediaType,$(NoTitle),$(!REG_VT_DWORD),2},+
{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
{SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNumber)},+
{ForcePciSlot,$(NoTitle),$(!REG_VT_DWORD),$(ForcePciSlot)},+
{FixedIntMod,$(NoTitle),$(!REG_VT_DWORD),0},+
{RxBuffers,$(NoTitle),$(!REG_VT_DWORD),$(RcvBufCountValue)},+
{TxBuffers,$(NoTitle),$(!REG_VT_DWORD),$(XmitBufCountValue)},+
{MaxFrameSize,$(NoTitle),$(!REG_VT_DWORD),$(FrameSizeValue)},+
{EarlyReleaseType,$(NoTitle),$(!REG_VT_DWORD),$(EarlyRelease)},+
{FrameStatusType,$(NoTitle),$(!REG_VT_DWORD),$(FrameStatus)},+
{LegacyWakeUp,$(NoTitle),$(!REG_VT_DWORD),$(LegacyWakeUpValue)},+
{IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBasePCMCIAValue)},+
{IoLength,$(NoTitle),$(!REG_VT_DWORD),$(PcmciaIoLength)},+
{PCCARDAttributeMemoryAddress,$(NoTitle),$(!REG_VT_DWORD),$(MemWinValue)},+
{PCCARDAttributeMemorySize, $(NoTitle),$(!REG_VT_DWORD),4096},+
{PCCARDAttributeMemoryOffset, $(NoTitle),$(!REG_VT_DWORD),0},+
{InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(InterruptValue)},+
{ComPortBase,$(NoTitle),$(!REG_VT_DWORD),$(ComPortValue)},+
{PcmciaCtrlBase,$(NoTitle),$(!REG_VT_DWORD),$(IOBasePCMCIAControllerValue)},+
{WaitStates,$(NoTitle),$(!REG_VT_DWORD),$(WaitstateValue)},+
{DataSize,$(NoTitle),$(!REG_VT_DWORD),$(DatasizeValue)}}
ifstr $(NetworkAddress) != ""
set NewValueList = >($(NewValueList),{NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)})
endif
ifcontains(i) $(AdpType) in {"Cardbus"}
set NewValueList = >($(NewValueList),{CardBusType,$(NoTitle),$(!REG_VT_DWORD),1})
set NewValueList = >($(NewValueList),{InterruptStyle,$(NoTitle),$(!REG_VT_DWORD),$(InterruptStyleValue)})
set NewValueList = >($(NewValueList),{InterruptRouting,$(NoTitle),$(!REG_VT_DWORD),$(InterruptRoutingValue)})
endif
ifcontains(i) $(AdpType) in {"Legacy","PCI1","PCI2","PCI3","Cardbus"}
set NewValueList = >($(NewValueList),{RingSpeed,$(NoTitle),$(!REG_VT_DWORD),$(RSValue)})
else
set NewValueList = >($(NewValueList),{RingSpeed,$(NoTitle),$(!REG_VT_DWORD),$(RingSpeedValue)})
ifcontains(i) $(AdpType) in {"Combo"}
ifstr(i) $(NTComboSupport) == $(TRUE)
ifint $(IOBasePCMCIAControllerValue) == 0
set NewValueList = >($(NewValueList),{Pcmcia,$(NoTitle),$(!REG_VT_DWORD),1})
set NewValueList = >($(NewValueList),{ModemFunction,$(NoTitle),$(!REG_VT_DWORD),1})
set NewValueList = >($(NewValueList),{IoBaseAddress_1,$(NoTitle),$(!REG_VT_DWORD),$(IOBasePCMCIAValue_1)})
set NewValueList = >($(NewValueList),{IoLength_1,$(NoTitle),$(!REG_VT_DWORD),$(PcmciaIoLength_1)})
else
set NewValueList = >($(NewValueList),{Pcmcia,$(NoTitle),$(!REG_VT_DWORD),0})
endif
else
set NewValueList = >($(NewValueList),{Pcmcia,$(NoTitle),$(!REG_VT_DWORD),0})
endif
else
ifint $(IOBasePCMCIAControllerValue) == 0
set NewValueList = >($(NewValueList),{Pcmcia,$(NoTitle),$(!REG_VT_DWORD),1})
else
set NewValueList = >($(NewValueList),{Pcmcia,$(NoTitle),$(!REG_VT_DWORD),0})
endif
endif
endif
;---------------------------------------
; Add keyword to prevent driver from
; entering promiscuous mode
;
;set NewValueList = >($(NewValueList),{AllowTrace,$(NoTitle),$(!REG_VT_DWORD),0})
;
;---------------------------------------
;
; Now update registry
;
Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters)
endif
;
; If the network address has been deleted then also delete it from
; the registry.
;
ifstr $(OldNetAddress) != ""
ifstr $(NetworkAddress) == ""
DeleteRegValue $(KeyParameters) NetworkAddress
endif
endif
;
; Update power management entries
;
ifcontains(i) $(AdpType) not-in {"PCI2","PCI3"}
; delete power management entries
DeleteRegValue $(KeyParameters) LegacyWakeUp
endif
;
; If we're not installing a PCMCIA Card, remove PCMCIA specific settings
;
ifcontains(i) $(AdpType) in {"Legacy","PCI1","PCI2","PCI3"}
DeleteRegValue $(KeyParameters) IoBaseAddress
DeleteRegValue $(KeyParameters) IoLength
DeleteRegValue $(KeyParameters) IoBaseAddress_1
DeleteRegValue $(KeyParameters) IoLength_1
DeleteRegValue $(KeyParameters) ModemFunction
DeleteRegValue $(KeyParameters) PCCARDAttributeMemoryAddress
DeleteRegValue $(KeyParameters) PCCARDAttributeMemorySize
DeleteRegValue $(KeyParameters) PCCARDAttributeMemoryOffset
DeleteRegValue $(KeyParameters) InterruptNumber
DeleteRegValue $(KeyParameters) ComPortBase
DeleteRegValue $(KeyParameters) PcmciaCtrlBase
DeleteRegValue $(KeyParameters) Pcmcia
DeleteRegValue $(KeyParameters) WaitStates
DeleteRegValue $(KeyParameters) DataSize
endif
ifcontains(i) $(AdpType) in {"PCMCIA","Cardbus"}
DeleteRegValue $(KeyParameters) ComPortBase
DeleteRegValue $(KeyParameters) IoBaseAddress_1
DeleteRegValue $(KeyParameters) IoLength_1
DeleteRegValue $(KeyParameters) ModemFunction
endif
ifcontains(i) $(AdpType) in {"Cardbus"}
DeleteRegValue $(KeyParameters) IoLength
DeleteRegValue $(KeyParameters) Pcmcia
DeleteRegValue $(KeyParameters) PcmciaCtrlBase
DeleteRegValue $(KeyParameters) WaitStates
DeleteRegValue $(KeyParameters) DataSize
endif
ifcontains(i) $(AdpType) in {"Combo"}
ifint $(IOBasePCMCIAControllerValue) != 0
DeleteRegValue $(KeyParameters) IoBaseAddress_1
DeleteRegValue $(KeyParameters) IoLength_1
DeleteRegValue $(KeyParameters) ModemFunction
endif
endif
ifcontains(i) $(AdpType) not-in {"PCI1","PCI2","PCI3","Cardbus"}
DeleteRegValue $(KeyParameters) SlotNumber
endif
CloseRegKey $(KeyParameters)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error."
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "INF: Registry error: Add value list"
goto fatalregistry
endif
;
; Add some keywords to the PCMCIA database in the registry
;
ifcontains(i) $(AdpType) in {"PCMCIA","Combo"}
set PCMCIADatabaseKeyName = $(!NTN_ServiceBase)"\Pcmcia\DataBase"
OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseKeyName) $(MAXIMUM_ALLOWED) PCMCIADatabaseKey
ifstr $(PCMCIADatabaseKey) != $(NULL)
CreateRegKey $(PCMCIADatabaseKey) {"Olicom", 0, 0} "" $(MAXIMUM_ALLOWED) "" PCMCIADatabaseManuKey
ifstr $(PCMCIADatabaseManuKey) == $(NULL)
set PCMCIADatabaseManuKeyName = $(PCMCIADatabaseKeyName)"\Olicom"
OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseManuKeyName) $(MAXIMUM_ALLOWED) PCMCIADatabaseManuKey
endif
CreateRegKey $(PCMCIADatabaseManuKey) {"TR16/4", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseManuCardKey
ifstr $(PCMCIADatabaseManuCardKey) == $(NULL)
set PCMCIADatabaseManuCardKeyName = $(PCMCIADatabaseKeyName)"\Olicom\TR16/4"
OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseManuCardKeyName) $(MAXIMUM_ALLOWED) PCMCIADatabaseManuCardKey
endif
SetRegValue $(PCMCIADatabaseManuCardKey) {Driver, 0, $(!REG_VT_SZ),"oct3xnd3"}
SetRegValue $(PCMCIADatabaseManuCardKey) {DeviceType, 0, $(!REG_VT_SZ),"NET"}
SetRegValue $(PCMCIADatabaseManuCardKey) {AttributeMemorySize, 0, $(!REG_VT_DWORD),4096}
CloseRegKey $(PCMCIADatabaseManuCardKey)
CreateRegKey $(PCMCIADatabaseManuKey) {"TR 16/4 II", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseManuCardKey
ifstr $(PCMCIADatabaseManuCardKey) == $(NULL)
set PCMCIADatabaseManuCardKeyName = $(PCMCIADatabaseKeyName)"\Olicom\TR 16/4 II"
OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseManuCardKeyName) $(MAXIMUM_ALLOWED) PCMCIADatabaseManuCardKey
endif
SetRegValue $(PCMCIADatabaseManuCardKey) {Driver, 0, $(!REG_VT_SZ),"oct3xnd3"}
SetRegValue $(PCMCIADatabaseManuCardKey) {DeviceType, 0, $(!REG_VT_SZ),"NET"}
SetRegValue $(PCMCIADatabaseManuCardKey) {AttributeMemorySize, 0, $(!REG_VT_DWORD),4096}
CloseRegKey $(PCMCIADatabaseManuCardKey)
CreateRegKey $(PCMCIADatabaseManuKey) {"GoCard Token-Ring 16/4+Modem 14400", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseManuCardKey
ifstr $(PCMCIADatabaseManuCardKey) == $(NULL)
set PCMCIADatabaseManuCardKeyName = $(PCMCIADatabaseKeyName)"\Olicom\GoCard Token-Ring 16/4+Modem 14400"
OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseManuCardKeyName) $(MAXIMUM_ALLOWED) PCMCIADatabaseManuCardKey
endif
SetRegValue $(PCMCIADatabaseManuCardKey) {Driver, 0, $(!REG_VT_SZ),"oct3xnd3"}
SetRegValue $(PCMCIADatabaseManuCardKey) {DeviceType, 0, $(!REG_VT_SZ),"NET"}
SetRegValue $(PCMCIADatabaseManuCardKey) {AttributeMemorySize, 0, $(!REG_VT_DWORD),4096}
CloseRegKey $(PCMCIADatabaseManuCardKey)
CreateRegKey $(PCMCIADatabaseManuKey) {"GoCard TRN/Modem 336", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseManuCardKey
ifstr $(PCMCIADatabaseManuCardKey) == $(NULL)
set PCMCIADatabaseManuCardKeyName = $(PCMCIADatabaseKeyName)"\Olicom\GoCard TRN/Modem 336"
OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseManuCardKeyName) $(MAXIMUM_ALLOWED) PCMCIADatabaseManuCardKey
endif
SetRegValue $(PCMCIADatabaseManuCardKey) {Driver, 0, $(!REG_VT_SZ),"oct3xnd3"}
SetRegValue $(PCMCIADatabaseManuCardKey) {DeviceType, 0, $(!REG_VT_SZ),"NET"}
SetRegValue $(PCMCIADatabaseManuCardKey) {AttributeMemorySize, 0, $(!REG_VT_DWORD),4096}
CloseRegKey $(PCMCIADatabaseManuCardKey)
Endif
Endif
Endif
;-------------------------------------------------------------------------
; Add keywords to prevent MS Network Monitor Agent to trap Windows NT 4.0
;
;OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) NMAServicesKey
;CreateRegKey $(NMAServicesKey) {"bh", 0, 0} "" $(MAXIMUM_ALLOWED) 0 NMAbhKey
;ifstr $(NMAbhKey) == $(NULL)
; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\bh" $(MAXIMUM_ALLOWED) NMAbhKey
;endif
;CreateRegKey $(NMAbhKey) {"Parameters", 0, 0} "" $(MAXIMUM_ALLOWED) 0 NMAParametersKey
;ifstr $(NMAParametersKey) == $(NULL)
; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\bh\Parameters" $(MAXIMUM_ALLOWED) NMAParametersKey
;endif
;CreateRegKey $(NMAParametersKey) {"ForcePMode", 0, 0} "" $(MAXIMUM_ALLOWED) 0 NMAForcePModeKey
;ifstr $(NMAForcePModeKey) == $(NULL)
; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\bh\Parameters\ForcePMode" $(MAXIMUM_ALLOWED) NMAForcePModeKey
;endif
;SetRegValue $(NMAForcePModeKey) {Oct3xnd31, 0, $(!REG_VT_DWORD), 1}
;SetRegValue $(NMAForcePModeKey) {Oct3xnd32, 0, $(!REG_VT_DWORD), 1}
;SetRegValue $(NMAForcePModeKey) {Oct3xnd33, 0, $(!REG_VT_DWORD), 1}
;SetRegValue $(NMAForcePModeKey) {Oct3xnd34, 0, $(!REG_VT_DWORD), 1}
;SetRegValue $(NMAForcePModeKey) {Oct3xnd35, 0, $(!REG_VT_DWORD), 1}
;CloseRegKey $(NMAForcePModeKey)
;CloseRegKey $(NMAParametersKey)
;CloseRegKey $(NMAbhKey)
;CloseRegKey $(NMAServicesModeKey)
;
;-------------------------------------------------------------------------
EndWait
goto successful
bindingadapter =+
set Error = "Binding: Sorry, not yet implemented."
goto fatal
;-----------------------------------------------
; Remove Adapter Section
;-----------------------------------------------
;
; Remove all adapter information from the registry
;
removeadapter = +
Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
else
;
; Remove associated Com port if required
;
ifcontains(i) $(AdpType) in {"Combo"}
Split-String $(!NTN_RegBase), "\", CardInfo
set AdapterNumber = *($(CardInfo),11)
set ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)$(AdapterNumber)"\Parameters"
OpenRegKey $(!REG_H_LOCAL) "" $(ParamKeyName) $(!REG_KEY_READ) KeyComPortBase
GetRegValue $(KeyComPortBase) "ComPortBase" ComPortBaseInfo
set ComPortBase = *($(ComPortBaseInfo), 3);
CloseRegKey $(KeyComPortBase)
ifstr(i) $(ComPortBase) != 0
OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters" $(MAXIMUM_ALLOWED) SerialHandle
DeleteRegTree $(SerialHandle) "SerialOct3xnd3"
CloseRegKey $(SerialHandle)
OpenRegKey $(!REG_H_LOCAL) "" "HARDWARE\DEVICEMAP\SERIALCOMM" $(MAXIMUM_ALLOWED) SerialHandle
DeleteRegValue $(SerialHandle) "SerialOct3xnd3"
CloseRegKey $(SerialHandle)
endif
endif
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(ProductSoftwareName), $(!NTN_RegBase)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
goto end
UpgradeSoftware = +
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error"
goto ShellCodeError
endif
set !UG_Filename = $($R0)
install "Install-Update"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
goto fatal
endif
SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
CloseRegKey $(KeyProduct)
else
goto fatalregistry
endif
goto end
successful = +
goto end
abandon = +
ForListDo $(OEM_ABANDON_OPTIONS)
Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
$(ProductSoftwareName), $($)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
EndForListDo
Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName), FALSE
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "INF: ShellCode error"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
goto fatalregistry
endif
endif
goto end
warning = +
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(to)
else-ifstr(i) $($R1) == "CANCEL"
goto $(from)
else
goto "end"
endif
nonfatalinfo = +
Set Severity = STATUS
Set CommonStatus = STATUS_USERCANCEL
goto nonfatalmsg
nonfatal = +
Set Severity = NONFATAL
goto nonfatalmsg
nonfatalmsg = +
ifstr(i) $(Error) == ""
Set Severity = NONFATAL
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(from)
else
goto "end"
endif
fatalregistry = +
Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
fatal = +
ifstr(i) $(Error) == ""
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto setfailed
ShellCodeError = +
set DlgType = "MessageBox"
set STF_MB_TITLE = "Error: "$(FunctionTitle)
set STF_MB_TEXT = "Shell Code Error"
set STF_MB_TYPE = 1
set STF_MB_ICON = 3
set STF_MB_DEF = 1
ui start "Error Message"
goto setfailed
setfailed = +
set CommonStatus = STATUS_FAILED
ifstr(i) $(OEM_ABANDON_ON) == TRUE
set OEM_ABANDON_ON = FALSE
goto abandon
endif
goto end
end = +
goto term
term = +
Return $(CommonStatus)
[Install-Option]
set STF_VITAL = ""
ifstr(i) $(AddCopy) == "YES"
AddSectionFilesToCopyList Files-Net $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
ifcontains(i) $(AdpType) in {"Combo"}
AddSectionFilesToCopyList Files-Modem $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
endif
endif
Debug-Output "INF: [Install-Option] DoCopy = "$(DoCopy)
ifstr(i) $(DoCopy) == "YES"
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
endif
Exit
[Install-Update]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
AddSectionFilesToCopyList Files-Net $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
ifcontains(i) $(AdpType) in {"Combo"}
AddSectionFilesToCopyList Files-Modem $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
endif
AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
exit
[Install-Dll]
set STF_VITAL = ""
ifstr(i) $(AddCopy) == "YES"
AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
endif
ifstr(i) $(DoCopy) == "YES"
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
else
; get minimum needed files for configuration
LibraryProcedure STATUS,$(!NCPA_HANDLE), CopySingleFile $(!STF_HWND) $(SrcDir)\OCT3X.DLL $(!STF_WINDOWSSYSPATH)\OCT3X.DLL
LibraryProcedure STATUS,$(!NCPA_HANDLE), CopySingleFile $(!STF_HWND) $(SrcDir)\OCT3X.HLP $(!STF_WINDOWSSYSPATH)\OCT3X.HLP
endif
exit
[Source Media Descriptions]
1 = "Olicom Driver Disk"
[ProductType]
STF_PRODUCT = Winnt
STF_PLATFORM = I386
[Files-Inf]
1, oemsetup.inf, SIZE=999, RENAME=$(!UG_Filename)
[Files-Net]
1, oct3xnd3.sys, SIZE=999
[Files-Modem]
1, serial.sys, SIZE=999
1, ocmdm144.inf, SIZE=999, DESTINATION=$(!STF_WINDOWSPATH)\INF
1, ocmdm336.inf, SIZE=999, DESTINATION=$(!STF_WINDOWSPATH)\INF
[Files-Dll]
1, oct3x.dll, SIZE=999
1, oct3x.hlp, SIZE=999
[Files-dummy]
Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.