oemsetup.inf Driver File Contents (gnic_novell_090297.zip)

; Internal Version 1.00
;***********************************************************************
;
; OEMSETUP.INF
;
;  Novell NetWare PCI card INF for PEI G-NIC driver
;
;
;***********************************************************************

[Identification]
   OptionType = NetAdapter

[PlatformsSupported]
   PCI
   "Jazz-Internal Bus"

[LanguagesSupported]
   ENG

[FileConstants]

UtilityInf     = "UTILITY.INF"
ParamInf       = "NCPARAM.INF"
subroutineinf   = "SUBROUTN.INF"
NwSubsInf      = "NWSUBS.INF"
Exit_Code      = 0

NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"

Manufacturer           = "PEI"
ClientProvider         = "Novell"
ProductMajorVersion    = "1"
ProductMinorVersion    = "0"
ProductVersion         = $(ProductMajorVersion)"."$(ProductMinorVersion)
DriverName             = "OdiLoad"
OdiModules             = "ODI_Modules"
NE3200_1BYTE = 511034


NetRuleHardwareType          = "nwDriver nwAdapter"
NetRuleHardwareBindForm      = " yes yes container"
ProductKeyName = $(!NTN_SoftwareBase)"\"$(ClientProvider)"\"$(DriverName)"\CurrentVersion"
;
; ParamKeyname not used - not updated
; ParamKeyName  = $(!NTN_ServiceBase)"\"$(ProductHardware$(Option)Name)"\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)\netware

[ODIParameters]
   ODINodeAddress = ""
   ODIDriverAdditionalParms = {}
   ODICustomList = {}
   ODITokenRing        = ""
   ODITokenRingSnap    = ""
   ;
   ; File specific Parameters:
   ;   ISA LAN Driver file:
   ;       ODISlotList = {}
   ;       ODIDefaultSlot = ""
   ;    MCA and EISA LAN Driver files:
   ;       ODISlotList = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
   ;       ODIDefaultSlot = "2"
   ;
   ODISlotList = {}
   ODIDefaultSlot = ""

[date]
   Now = {} ? $(!LIBHANDLE) GetSystemDate


[Identify]

   read-syms Identification

   set Status      = STATUS_SUCCESSFUL
   set Identifier  = $(OptionType)
   set Media       = #("Source Media Descriptions", 1, 1)

   Return $(Status) $(Identifier) $(Media)

[ReturnOptions]

   read-syms ODIStrings$(!STF_LANGUAGE)

   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 = {}

   ForListDo $(OptionList)
       set OptionTempString = " ODI "#($($),Title,1)$(AdapterForNetWare)
       set OptionTextList = >($(OptionTextList), $(OptionTempString) )
   EndForListDo

   set Status       = STATUS_SUCCESSFUL

Debug-Output "OEMNADOD.INF-[finish_ReturnOptions]:"
Debug-Output "OEMNADOD.INF-          Status = "$(Status)
Debug-Output "OEMNADOD.INF-      OptionList = "$(OptionList)
Debug-Output "OEMNADOD.INF-  OptionTextList = "$(OptionTextList)

finish_ReturnOptions = +
   Return $(Status) $(OptionList) $(OptionTextList)

[InstallOption]

   set Option  = $($1)
   set SrcDir  = $($2)
   set AddCopy  = $($3)
   set DoCopy  = $($4)
   set DoConfig = $($5)

   set LanguageList = ^(LanguagesSupported, 1)
   Ifcontains(i) $($0) NOT-IN $(LanguageList)
       Return STATUS_NOLANGUAGE
   endif

   set-subst LF = "\n"
   read-syms GeneralConstants
   read-syms FileConstants
   read-syms ODIParameters
   read-syms DialogConstants$(!STF_LANGUAGE)
   read-syms ODIStrings$(!STF_LANGUAGE)
   ifstr(i) $(!NTN_Origination) == "NCPA"
       set Continue = "OK"
   endif
   read-syms FileConstants$(!STF_LANGUAGE)

   detect date

;  set-title  $(Function$(Option)Title)

   set to  = Begin
   set from = Begin
   set CommonStatus = STATUS_SUCCESSFUL


   EndWait

Begin = +

   set CurrentInstallMode = ""
   Ifstr(i) $(!NTN_InstallMode) == deinstall
       set StartLabel = removeadapter
       goto skipmakingthelists
   else-Ifstr(i) $(!NTN_InstallMode) == Update
       set StartLabel = UpgradeSoftware
       set CurrentInstallMode = configure
       set DoCopy = YES
       set AddCopy = YES
   else-Ifstr(i) $(!NTN_InstallMode) == bind
       set StartLabel = bindingadapter
       goto skipmakingthelists
   else-Ifstr(i) $(!NTN_InstallMode) == configure
       set StartLabel = configureadapter
       set CurrentInstallMode = configure
   else
       set DoCopy = YES
       set AddCopy = YES
       set StartLabel = installadapter
       set OEM_ABANDON_OPTIONS = {}
       set OEM_ABANDON_SOFTWARE = FALSE
       set OEM_ABANDON_ON = TRUE
   endif

   set ParameterListNames = ^(DefaultParameterLists, 1)    ; NWIRQList, NWMEMList1, etc.
   set ListNames = ^(ODIListNamesSection, 1)                   ; List1, list2, ..., list6
   set ODIKeywordList = ^(ChoicesNamesList, 1)             ; Int, mem, Port, etc.
   set ODITitleList = ^(ChoicesNamesList, 2)                   ; Interrupt Number, Port, etc.
   set MSParameterList = ^(ChoicesNamesList, 3)                ; InterruptNumber, IOBaseAddress, etc.

   set DriverListNames = {}
   set ODINumberofDriverLists = 0
   ForListDo ^($(Option),0 )
       ifcontains(i) $($) IN $(ListNames)
           set DriverListNames = >($(DriverListNames), $($))
       else-ifstr(i) $($) == "CUSTOM"
           set ODICustomList = #($(Option), Custom, 1)
       endif
   EndForListDo

   QueryListSize ODINumberofDriverLists $(DriverListNames)

;
; DriverListNames now contains the List names the selected ODI driver has (i.e. {List1, List2})
; ODINumberofDriverLists now contains the number of lists used
;

   Debug-Output "DriverListNames = "$(DriverListNames)
   Debug-Output "Size of DriverListNames = "$(ODINumberofDriverLists)

   ForListDo $(DriverListNames)
       set $($)Keyword = #($(Option), $($), 1)
       ifstr $($($)Keyword) != ""
           set $($)Default = #($(Option), $($), 3)

           ifcontains(i) $($($)Keyword) IN $(ODIKeywordList)
               set $($)Title = *($(ODITitleList), ~($(ODIKeywordList), $($($)Keyword)))
               set ThisListName = #($(Option), $($), 2)
               set MSParameterName$(#) = *($(MSParameterList), ~($(ODIKeywordList), $($($)Keyword)))
               set FinalList = {}

               ifcontains(i) $(ThisListName) IN $(ParameterListNames)
                   ifstr(i) #($(Option), $($), 4) == "ALL"
                       set FinalList = ^($(ThisListName), 1)
                   else
                       set CountUpTo = #($(Option), $($), 5)

                       ifstr(i) $(CountUpTo) == "END"
                           set CountUpTo = $(MAXIMUM_ALLOWED)
                       endif

                       set StartNumber = #($(Option), $($), 4))

                       ForListDo ^($(ThisListName), 1)
                           ifint $(#) >= $(StartNumber)
                               ifint $(#) <= $(CountUpTo)
                                   set FinalList = >($(FinalList), $($))
                               endif
                           endif
                       EndForListDo
                   endif
               else
                   ;
                   ; User passed in the list
                   ;
                   Debug-Output "User passed in a list"
                   set $($)Title = #($(Option), $($), 2)
                   set FinalList = #($(Option), $($), 4)
               endif
           else
               ;
               ; User passed in a new keyword
               ;
               Debug-Output "User passed in a new keyword"
               set $($)Title = #($(Option), $($), 2)
               set MSParameterName$(#) = ""
               set FinalList = #($(Option), $($), 4)
           endif
       set $($)List = $(FinalList)
       endif
   Debug-Output "List"$(#)"Title = "$($($)Title)
   Debug-Output "List"$(#)"Default = "$($($)Default)
   Debug-Output "List"$(#)"Keyword = "$($($)Keyword)
   Debug-Output "List"$(#)"List = "$($($)List)
   Debug-Output "MSParameterName"$(#)" = "$(MSParameterName$(#))
   EndForListDo

skipmakingthelists = +

   Debug-Output "Starting skipmakingthelist"
   set ODILANDriverTitle = #($(Option), Title, 1)
   Split-String #($(Option), DriverName, 2) "." SplitFileNameList
   set ODILANDriverName = *($(SplitFileNameList), 1)
   set ODIMediaType = #($(Option), MediaType, 1)
   set ODICardType = #($(Option), CardType, 1)
   set ODICardId = #($(Option), CardId, 1)
   ifstr(i) $(ODICardType) == "PCI"
       set ODIVendor = #($(Option), Vendor, 1)
   endif
   ifstr(i) #($(Option), CanShareSlot, 1) == "YES"
       set SkipDescriptionCheck = "NO"
   else
       set SkipDescriptionCheck = "YES"
   endif
   Debug-Output "ODILANDriverName = "$(ODILANDriverName)
   Debug-Output "ODIMediaType = "$(ODIMediaType)

   ifstr(i) $(ODIMediaType) == "ETHERNET"
       set NdisMediaType = "1"
   else-ifstr(i) $(ODIMediaType) == "TOKEN-RING"
       set NdisMediaType = "2"
   else-ifstr(i) $(ODIMediaType) == "FDDI"
       set NdisMediaType = "4"
   else
       Debug-Output "OEMNADOD.INF: Unknown media type "$(ODIMediaType)
       set NdisMediaType = ""
   endif

   set from = $(fatal)
   set to = $(fatal)
   goto $(StartLabel)

installadapter = +

   install "Install-Option"

   goto adapteroptions

configureadapter = +
   Debug-Output "Starting configureadapter."
   Ifstr $(KeyProduct) == $(KeyNull)
       OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
       Ifstr $(KeyProduct) == $(KeyNull)
           set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
           Debug-Output "OEMNADOD.INF: Cannot find component product key "$(!NTN_RegBase)
           goto fatalregistry
       Endif
   Endif

   Set AdapterNumber = ""

   Shell $(UtilityInf) FindService, $(KeyProduct)
   Ifint $($ShellCode) != $(!SHELL_CODE_OK)
       Debug-Output "OEMNADOD.INF: FindService shell failure "$($ShellCode)
       Goto ShellCodeError
   Endif
   Ifstr(i) $($R0) != NO_ERROR
       Debug-Output "OEMNADOD.INF: FindService Error "$($R0)
       Goto fatalregistry
   endif

   set KeyParameters = $($R2)
   set ServiceAreaHandle = $($R1)

   Ifstr $(KeyParameters) == $(KeyNull)
       set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
       Debug-Output "OEMNADOD.INF: Cannot find component service "$(KeyProduct)
       goto fatalregistry
   endif

   set OldVersionExisted = $(TRUE)

   set ValueName = ""
   set ValueData = ""
   set ValueStr  = ""
   set ValueList = {}

   GetRegValue $(KeyParameters) ODILoadName ODILoadName
   Set CardInstanceName = *($(ODILoadName),4)

   Ifstr $(CardInstanceName) == $(KeyNull)
       set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
       Debug-Output "OEMNADOD.INF: Cannot find CardInstanceName"
       goto fatalregistry
   endif

   set KeyToFind = $(!NTN_ServiceBase)"\ODILOAD\ODI_MODULES\"$(CardInstanceName)
   OpenRegKey $(!REG_H_LOCAL) ""  $(KeyToFind) $(MAXIMUM_ALLOWED) DriverKey
   Ifstr $(DriverKey) == $(KeyNull)
       set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
       Debug-Output "OEMNADOD.INF: Cannot find component product key = "$(KeyToFind)
       goto fatalregistry
   Endif

   GetRegValue $(DriverKey) Parameters ParameterList

   ;  get the data portion
   set ParameterList = *($(ParameterList), 4)

   Debug-Output "parameter list = "$(ParameterList)

   ForListDo $(ParameterList)
       set ThisParameterList = $($)
       Split-String $($) " " SplitList
       set KeyToSearchFor = *($(SplitList), 1)
       set ValueToUse = *($(SplitList), 3)
       Debug-Output "Keytosearchfor = "$(KeyToSearchFor)
       Debug-Output "ValueToUse = "$(ValueToUse)
       ;
       ;   #1    #2     #3
       ; "Parm"  " "    "Value"
       ;
       set ValueFound = 0

       ;
       ; check frametypes for TOKEN-RING, TOKEN-RING_SNAP
       ;
       ifstr(i) $(KeyToSearchFor) == "FRAME"
           ;
           ; Don't append Frametypes to ODIAdditionalParms, so set ValueFound = 1
           ;
           set ValueFound = 1
           QueryListSize SplitListSize $(SplitList)
           ifstr(i) *($(SplitList), 3) == "TOKEN-RING"
               set LastParameter = *($(SplitList), $(SplitListSize))
               ifstr(i) $(LastParameter) == "MSB"
                   set ODITokenRing = "MSB"
               else-ifstr(i) $(LastParameter) == "LSB"
                   set ODITokenRing = "LSB"
               else
                   ;
                   ; Not there, so default to MSB
                   ;
                   set ODITokenRing = "MSB"
               endif
           else-ifstr(i) *($(SplitList), 3) == "TOKEN-RING_SNAP"
               set LastParameter = *($(SplitList), $(SplitListSize))
               ifstr(i) $(LastParameter) == "MSB"
                   set ODITokenRingSnap = "MSB"
               else-ifstr(i) $(LastParameter) == "LSB"
                   set ODITokenRingSnap = "LSB"
               else
                   ;
                   ; Not there, so default to MSB
                   ;
                   set ODITokenRingSnap = "MSB"
               endif
           endif
       ;
       ; Check for NODE parameter
       ;
       else-ifstr(i) $(KeyToSearchFor) == "NODE"
           set ODINodeAddress = $(ValueToUse)
           set ValueFound = 1
       ;
       ; Check for SLOT parameter
       ;
       else-ifstr(i) $(KeyToSearchFor) == "SLOT"
           set ODIDefaultSlot = $(ValueToUse)
           set ValueFound = 1
       ;
       ; Check for BUSNAME parameter - ignore it
       ;
       else-ifstr(i) $(KeyToSearchFor) == "BUSNAME"
           set ValueFound = 1
       ;
       ; Check for BUSTYPE parameter
       ;
       else-ifstr(i) $(KeyToSearchFor) == "BUSTYPE"
           set ValueFound = 1
           set BusInterfaceType = $(ValueToUse)
       ;
       ; Check for BUS parameter
       ;
       else-ifstr(i) $(KeyToSearchFor) == "BUS"
           set ValueFound = 1
           set BusNumber = $(ValueToUse)
       endif

       ForListDo $(DriverListNames)
           ifstr(i) $(KeyToSearchFor) == $($($)Keyword)
               set $($)Default = $(ValueToUse)
               set ValueFound = 1
               ifcontains(i) $(ValueToUse) NOT-IN $($($)List)
                   set $($)List = >($($($)List), $(ValueToUse))
               endif
           endif
       EndForListDo

       Debug-Output "Value Found = "$(ValueFound)

       ifint $(ValueFound) == 0
           set FoundInCustom = 0

           ForListDo $(ODICustomList)
               ifstr(i) $($) == $(ThisParameterList)
                   set FoundInCustom = 1
               endif
           EndForListDo

           Debug-Output "Found in Custom = "$(FoundInCustom)

           ifint $(FoundInCustom) == 0
               ifstr $(ODIDriverAdditionalParms) == {}
                   set ODIDriverAdditionalParms = $(KeyToSearchFor)" "$(ValueToUse)
               else
                   set ODIDriverAdditionalParms = >($(ODIDriverAdditionalParms), $(KeyToSearchFor)" "$(ValueToUse))
               endif
           endif
       endif
   EndForListDo

   Debug-Output "AdditionalParms = "$(ODIDriverAdditionalParms)
   Debug-Output "CustomList = "$(ODICustomList)
   Debug-Output "BusType = "$(BusInterfaceType)
   Debug-Output "Bus = "$(BusNumber)


adaptersetup =+

   goto adapteroptions
adapteroptions = +
   set from = adapteroptions

   ;
   ; Find what NLS directory is being used
   ;

   set NovellParameters = $(!NTN_SoftwareBase)"\"$(ClientProvider)"\Parameters"
       OpenRegKey $(!REG_H_LOCAL) "" $(NovellParameters) $(MAXIMUM_ALLOWED) KeyNovellParameters
   ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
       GetRegValue $(KeyNovellParameters) "NWLanguage" LanguageList
       ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
           set NLSDirName = *($(LanguageList), 4)
           LoadLibrary $(NetWareForWindowsNT) $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nwsetupr.dll" NwLibHandle
       SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nwnthelp.hlp" $(!MinimumID) $(!MaximumID)
       else
           goto fatalregistry
       endif
       CloseRegKey $(KeyNovellParameters)
   else
       goto fatalregistry
   Endif

dothedialog = +
   Debug-Output "Start dothedialog."
   ifint $(ODINumberofDriverLists) == 0
       Debug-Output "ODINumberofDriveLists == 0."
       ifstr(i) $(CurrentInstallMode) == configure
           read-syms NoParms$(!STF_LANGUAGE)
           ui start "WorkstationDLG" $(NwLibHandle)

           ifstr(i) $(DLGEVENT) == "CONTINUE"
               Debug-Output "OK hit"
           else-ifstr(i) $(DLGEVENT) == "EXIT"
           ;
           ; user selected the advanced button
           ;
               goto doadvancedsettings
           endif
       endif
   else
       Debug-Output "ODINumberofDriveLists != 0."
       read-syms LANDriverDlg$(!STF_LANGUAGE)

       set NotifyFields = {}
       set ComboListItemsIn = {}
       set ComboListItemsOut = {}
       ForListDo $(DriverListNames)
           set NotifyFields = >($(NotifyFields), "NO")
           set ComboListItemsIn = >($(ComboListItemsIn), $($)List)
           ifstr $($($)Value) == ""
               set $($)Value = $($($)Default)
           endif
           set ComboListItemsOut = >($(ComboListItemsOut), $($)Value)
       EndForListDo

       ui start "LANDriverParms" $(NwLibHandle)

       ifstr(i) $(DLGEVENT) == "CONTINUE"
           Debug-Output "Continue hit"
       else-ifstr(i) $(DLGEVENT) == "BACK"
           Debug-Output "Action: CANCEL. Bye."
           set CommonStatus = STATUS_USERCANCEL
           ui pop 1
           FreeLibrary $(NwLibHandle)
           goto end
       else-ifstr(i) $(DLGEVENT) == "EXIT"

doadvancedsettings =+
       ;
       ; user selected the advanced button
       ;
           Debug-Output "Action: ADVANCED DIALOG"
           read-syms AdvancedDialog$(!STF_LANGUAGE)
           set RadioIn = {}
           set ComboListItemsIn = {}
           set ComboListItemsOut = {}
           set ComboOut = $(ODIDefaultSlot)

           ifstr(i) $(ODIMediaType) == "TOKEN-RING"
               ifstr(i) $(ODISlotList) == {}
                   set DlgTemplate = "DLG_ADVANCEDDRIVER3"
               else
                   set ComboListItemsIn = { ODISlotList }
                   set ComboListItemsOut = { ComboOut }
                   set DlgTemplate = "DLG_ADVANCEDDRIVER1"
               endif

               ifstr(i) $(ODITokenRing) == "LSB"
                   set RadioIn = { 2 }
               else
                   set RadioIn = { 1 }
               endif

               ifstr(i) $(ODITokenRingSnap) == "LSB"
                   set RadioIn = >($(RadioIn), "4")
               else
                   set RadioIn = >($(RadioIn), "3")
               endif
           else
               ifstr(i) $(ODISlotList) == {}
                   set DlgTemplate = "DLG_ADVANCEDDRIVER4"
               else
                   set ComboListItemsIn = { ODISlotList }
                   set ComboListItemsOut = { ComboOut }
                   set DlgTemplate = "DLG_ADVANCEDDRIVER2"
               endif
           endif

           ui start "AdvancedDialog" $(NwLibHandle)
           ui pop 1

           ifstr(i) $(DLGEVENT) == "CONTINUE"
               set ODINodeAddress = *($(EditTextOut), 1)
               set ODIDefaultSlot = *($(ComboOut), 1)
               ifcontains "2" IN $(RadioOut)
                   set ODITokenRing = "LSB"
               else
                   set ODITokenRing = "MSB"
               endif
               ifcontains "4" IN $(RadioOut)
                   set ODITokenRingSnap = "LSB"
               else
                   set ODITokenRingSnap = "MSB"
               endif
           else-ifstr(i) $(DLGEVENT) == "BACK"
               Debug-Output "Action: CANCEL. Bye."
           endif

           goto dothedialog
       else
           Debug-Output "Action: unknown. Bye."
           ui pop 1
           FreeLibrary $(NwLibHandle)
           goto end
       endif

       ui pop 1


       ForListDo $(DriverListNames)
           Debug-Output "List"$(#)"Value = "$($($)Value)
       EndForListDo
   endif

   Debug-Output "FreeLibrary $(NwLibHandle)"
   FreeLibrary $(NwLibHandle)

   ifint $(OldVersionExisted) == $(TRUE)
       ifstr(i) $(CurrentInstallMode) == configure
           Debug-Output "going to writeparameters based on OldVersionExisted."
           goto writeconfigureparameters
       endif
   endif

   StartWait

   goto writeparameters

writeparameters = +
   Debug-Output "Starting writeparameters."

   Debug-Output "Calling GetPCIInformation."
   ; Use the GetPCIInformation utiltiy to find the bus number and slot number
   ; the adapter is installed in.
   set NTBusType = 5
   Shell $(UtilityInf), GetPCIInformation, $(ODIVendor) $(ODICardId)
   ifint $($ShellCode) != $(!SHELL_CODE_OK)
       EndWait
       goto ShellCodeError
   endif
   set AdapterList = $($R0)

   set ProductHardwareDescription = +
       "ODI "$(ODILANDriverTitle)$(AdapterForNetWare)

   ForListDo $(AdapterList)
       ; Steps need to be taken for multiple adapters of the same type.
       set NTBusNumber = *($($),1)
       set NTSlotNumber = *($($),2)


       Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(NTBusNumber), +
           $(NTSlotNumber), $(ProductHardwareDescription), +
           $(ODILANDriverName), $(SkipDescriptionCheck)
       ifint $($ShellCode) != $(!SHELL_CODE_OK)
           goto ShellCodeError
       endif
       ifstr $($R0) != "NO_ERROR"
           set Error = $($R0)
           goto fatal
       endif
       ifstr(i) $($R1) != "YES"

           Debug-Output "Doing Shell AddHardwareComponent."
           Shell $(UtilityInf), AddHardwareComponent, $(ODILANDriverName),+
               $(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 "OEMNADOD.INF:Cannot add hardware component "$($ShellCode)
               EndWait
               goto ShellCodeError
           endif

           set RegistryErrorIndex = $($R0)

           Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
               EndWait
               Debug-Output "OEMNADOD.INF: Registry error: add hardware component "$(RegistryErrorIndex)
               CloseRegKey $($R1)
               CloseRegKey $($R2)
               CloseRegKey $($R3)
               goto fatalregistry
           endif

           set KeyParameters = $($R3)
           set KeyAdapterRules = $($R2)
           set AdapterNumber = $($R4)

           Set-add TempAdapterNumber = $(AdapterNumber),0

           set CardInstanceName = $(ODILANDriverName)" #"$(TempAdapterNumber)

           set NewValueList = {{ClientProvider,$(NoTitle),$(!REG_VT_SZ),+
               $(ClientProvider)}, {Title,$(NoTitle),$(!REG_VT_SZ),+
               "["$($R4)"] ODI "$(ODILANDriverTitle)$(AdapterForNetWare)},+
               {Description,$(NoTitle),$(!REG_VT_SZ),+
                   $(ProductHardwareDescription)},+
               {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ODILANDriverName)},+
               {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
               {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)},+
               {OdiAdapter,$(NoTitle),$(!REG_VT_DWORD),1}}

           Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
           ifint $($ShellCode) != $(!SHELL_CODE_OK)
               Debug-Output "OEMNADOD.INF: AddValueList ShellCode error "$($ShellCode)
               EndWait
               goto ShellCodeError
           endif

           CloseRegKey $($R1)

           set TempProdName = """"$(ODILANDriverName)$(AdapterNumber)""""
           set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)

           set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),+
               $(NetRuleHardwareType)},{bindform,$(NoTitle),$(!REG_VT_SZ),+
               $(TempBindForm)}, {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}

           Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
           ifint $($ShellCode) != $(!SHELL_CODE_OK)
               Debug-Output "OEMNADOD.INF: AddValueList ShellCode error "$($ShellCode)
               EndWait
               goto ShellCodeError
           endif

           set RegistryErrorIndex = $($R0)

           Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
               EndWait
               Debug-Output "OEMNADOD.INF: AddValueList Registry error "$(RegistryErrorIndex)
               CloseRegKey $(KeyParameters)
               CloseRegKey $(KeyAdapterRules)
               goto fatalregistry
           endif

           CloseRegKey $(KeyAdapterRules)

           SetRegValue $(KeyParameters) {OdiLoadName,$(NoTitle),$(!REG_VT_SZ),$(CardInstanceName)}
           SetRegValue $(KeyParameters) {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(NTBusNumber)}
           SetRegValue $(KeyParameters) {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(NTSlotNumber)}




writeconfigureparameters = +
           ; Jump to here if the drivers is already installed and specific driver
           ; configuration was selected.

           ifstr(i) $(NdisMediaType) == ""
               set NdisMediaType = "1"
               Debug-Output "OEMNADOD.INF: Media type NOT set"
           endif

           set NewValueList = {{MediaType,$(NoTitle),$(!REG_VT_DWORD), +
               $(NdisMediaType)}}

           ForListDo $(DriverListNames)
               ifstr $(MSParameterName$(#)) != ""
                   set-hextodec DecValue = $($($)Value)
                   set ValueToAdd = {$(MSParameterName$(#)),$(NoTitle), +
                       $(!REG_VT_DWORD), $(DecValue)}
                   set NewValueList = >($(NewValueList), $(ValueToAdd))
               endif
           EndForListDo


           Debug-Output "AddValueList with KeyParameters = "$(KeyParameters)
           Debug-Output "and NewValueList = "$(NewValueList)
           Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)


           ifint $($ShellCode) != $(!SHELL_CODE_OK)
               Debug-Output "OEMNADOD.INF: AddValueList ShellCode error "$($ShellCode)
               EndWait
               goto ShellCodeError
           endif

           set RegistryErrorIndex = $($R0)

           Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
               Debug-Output "OEMNADOD.INF: AddValueList Registry error "$($ShellCode)
               EndWait
               goto fatalregistry
           endif


           set PromptForSrcRouting = "FALSE"





           Ifstr(i) $(ODIMediaType) == "ETHERNET"
               set ODIParmList = {"Frame ETHERNET_802.2", +
                          "Frame ETHERNET_802.3", +
                          "Frame ETHERNET_II", +
                          "Frame ETHERNET_SNAP" }
           else-Ifstr(i) $(ODIMediaType) == "TOKEN-RING"
               set ODIParmList = {"Frame TOKEN-RING "$(ODITokenRing), +
                   "Frame TOKEN-RING_SNAP "$(ODITokenRingSnap) }

               ;If there is an ODI stack available remove the comment on the next line
               ;set PromptForSrcRouting = "TRUE"

           else-Ifstr(i) $(ODIMediaType) == "FDDI"
               set ODIParmList = {"Frame FDDI_802.2", +
                   "Frame FDDI_SNAP" }

               ;If there is an ODI stack available remove the comment on the next line
               ;set PromptForSrcRouting = "TRUE"

           else
               set ODIParmList = {}
           endif

           Debug-Output "Framenames = "$(ODIParmList)


           ;
           ; Build List to send to ODI_MODULES\CARDNAME
           ;
           ForListDo $(DriverListNames)
               ifstr $($($)Value) == $(Present)
                   set ODIParmList = >($(ODIParmList), $($($)Keyword))
               else-ifstr $($($)Value) != $(NotPresent)
                   set ODIParmList = >($(ODIParmList), $($($)Keyword)" "$($($)Value))
               endif
           EndForListDo

           ifstr $(ODINodeAddress) != ""
               set ODIParmList = >($(ODIParmList), "Node "$(ODINodeAddress))
           endif

           ifstr $(ODIDefaultSlot) != ""
               set ODIParmList = >($(ODIParmList), "Slot "$(ODIDefaultSlot))
           endif

           ForListDo $(ODIDriverAdditionalParms)
               ifstr $($) != ""
                   set ODIParmList = >($(ODIParmList), $($))
               endif
           EndForListDo

           ForListDo $(ODICustomList)
               ifstr $($) != ""
                   set ODIParmList = >($(ODIParmList), $($))
               endif
           EndForListDo


           Debug-Output "ODIParmList = "$(ODIParmList)


           Debug-Output "Calling NwSubsInf to NwAddOdiLoadModule."
           Shell $(NwSubsInf) NwAddOdiLoadModule $(CardInstanceName) +
               $(AdapterNumber) $(ODIParmList)
           Debug-Output "Back from Calling NwSubsInf to NwAddOdiLoadModule."

           Ifint $($ShellCode) != $(!SHELL_CODE_OK)
               Debug-Output "OEMNADOD.INF: NwAddOdiLoadModule failure "$($ShellCode)
               Goto ShellCodeError
           Endif

           Set ErrorString = $($R0)
           Ifstr(i) $(ErrorString) != NO_ERROR
               Debug-Output "OEMNADOD.INF: NwAddOdiLoadModule "$(ErrorString)
               EndWait
               goto fatalregistry
           Endif

           Debug-Output "PromptForSrcRouting = "$(PromptForSrcRouting)
           Ifstr(i) $(PromptForSrcRouting) == "TRUE"
               Shell $(NwSubsInf) NwConfigureSourceRouting
           Endif

           Ifstr(i) $(!NTN_InstallMode) == install
               ; Open the driver key to add the busNumber, busType, HIN,
               ;and slotNumber
               set KeyToFind = +
                   $(!NTN_ServiceBase)"\ODILOAD\ODI_MODULES\"$(CardInstanceName)
               OpenRegKey $(!REG_H_LOCAL) ""  $(KeyToFind) $(MAXIMUM_ALLOWED) +
                   DriverKey
               set NewValueList = +
                   {{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(NTBusNumber)},+
                   {BusType,$(NoTitle),$(!REG_VT_DWORD),$(NTBusType)},+
                   {HIN,$(NoTitle),$(!REG_VT_DWORD),1},+
                   {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(NTSlotNumber)}}
           Shell  $(UtilityInf), AddValueList, $(DriverKey), $(NewValueList)
               CloseRegKey $(DriverKey)
               Set OdiAdapterInstalledOkay = "1"
           Endif

           ifstr(i) $(CurrentInstallMode) == configure
               goto endwriteparameters
           endif
       endif
   EndForListDo
endwriteparameters = +
   CloseRegKey $(KeyParameters)
   EndWait
   goto successful

bindingadapter =+
   set Error = $(BindingError)
   goto fatal

removeadapter = +
   Shell $(NwSubsInf) NwRemoveAdapter $(!NTN_RegBase)
   Ifint $($ShellCode) != $(!SHELL_CODE_OK)
       Debug-Output "OEMNADOD.INF: Shell Error NwRemoveAdapter "$($ShellCode)
   Endif

   Shell $(NwSubsInf) NwRemoveNtAdapter $(ProductKeyName) $(ClientProvider)
   Ifint $($ShellCode) != $(!SHELL_CODE_OK)
       Debug-Output "OEMNADOD.INF: NwRemoveNtAdapter "$($ShellCode)
       goto ShellCodeError
   Endif

   set RegistryErrorIndex = $($R0)

   Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
       Debug-Output "OEMNADOD.INF: NwRemoveNtAdapter "$(RegistryErrorIndex)
       Ifstr(i) $(RegistryErrorIndex) == "SHELL_CODE_ERROR"
           goto ShellCodeError
       Endif
       goto fatalregistry
   Endif

   goto end

UpgradeSoftware = +
   Ifstr(i) $(DoCopy) == "YES"
       Ifstr(i) $(SrcDir) == ""

           ;
           ;  Get source location
           ;

           Shell $(NwSubsInf), DoAskLANSource, $(!STF_CWDDIR), $(SrcDir) YES

           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 end
           Endif

           Set SrcDir = $($R1)
       Endif
   Endif

   install "Install-Option"

   Ifstr(i) $(DoConfig) == "YES"
       goto configureadapter
   else
       goto end
   endif

successful = +
   goto end

abandon = +
   ForListDo $(OEM_ABANDON_OPTIONS)
   Shell $(NwSubsInf) NwRemoveNtAdapter $(ProductKeyName) $(ClientProvider) $($)
   Ifint $($ShellCode) != $(!SHELL_CODE_OK)
       Debug-Output "OEMNADOD.INF: NwRemoveNtAdapter "$($ShellCode)
       goto ShellCodeError
   Endif

       set RegistryErrorIndex = $($R0)

       Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
           goto fatalregistry
       endif
   EndForListDo

   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 CommonStatus = STATUS_USERCANCEL
   Set Severity = STATUS
   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

fataldetect = +
   Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
   ifint $($ShellCode) != $(!SHELL_CODE_OK)
       Debug-Output "OEMNADOD.INF: ShellCode error: cannot get an error string."
       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: "$(Function$(Option)Title)
   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 = +
;  Ifstr(i) $(OdiAdapterInstalledOkay) == "1"
;      Debug-Output "Calling NwSubsInf to GetOdiAdapterList."
;      Shell $(NwSubsInf) GetOdiAdapterList
;      ifint $($R3) < 2
;          Set DlgType = "MessageBox"
;          Set STF_MB_TITLE = "NetWare ODI LAN Drivers Setup"
;          Set STF_MB_TEXT  = "The NetWare ODI Adapter was successfully installed.  "+
;                          "Your NetWare installation is COMPLETE."
;          Set STF_MB_TYPE  = 1
;          Set STF_MB_ICON  = 2
;          Set STF_MB_DEF  = 1
;          ui start "Error Message"
;      Endif
;  Endif

   ;
   ; Check if ODINSUP needs to be installed
   ;

   Shell $(NwSubsInf), CheckIfODINSUPIsNeeded

   Return $(CommonStatus)

[Install-Option]
   set STF_VITAL = ""

   ifstr(i) $(AddCopy) == "YES"
     AddSectionKeyFileToCopyList $(Option) DriverName $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
   endif

   ifstr(i) $(DoCopy) == "YES"
       set !STF_NCPA_FLUSH_COPYLIST = TRUE
       CopyFilesInCopyList
   endif

   ifstr(i) $(DoConfig) == "YES"
   endif

   Exit

;[Install-Update]
;  set STF_VITAL       = ""
;  set STF_OVERWRITE   = "VERIFYSOURCEOLDER"
;
;    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
;    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
;
;  set !STF_NCPA_FLUSH_COPYLIST = TRUE
;  CopyFilesInCopyList
;
;  exit

[Source Media Descriptions]
   1  = $(NetWareODILANDriversDisk)
[ProductType]
STF_PRODUCT  = Winnt
STF_PLATFORM = I386


[ChoicesNamesList]
   "AutoDetect",       "Auto Detect Media",    "AutoDetectMediaConnected"
   "TP",                   "TP (RJ-45 Connector)", "RJ45Connector"
   "BNC",              "BNC Connector",            "BNCConnector"
   "TP_Full_Duplex",   "Full Duplex Mode",     "TPFullDuplexMode"
   "Line_Speed",       "Line Speed",               "LineSpeed"


[ODIListNamesSection]
   List1
   List2
   List3
   List4
   List5
   List6

[KeyOnlyList]
   Num1 = $(Present)
   Num2 = $(NotPresent)

[Line_SpeedList]
   Num1 = $(NotPresent)
   Num2 = 100
   Num3 = 10

[DefaultParameterLists]
   KeyOnlyList
   Line_SpeedList

;
;See the documentation on "Building your own OEMSETUP.INF" for more information.
;


[Options]
   ODI_PEI100X

[ODI_PEI100X]
Title = "PEI G-NIC Gigabit Ethernet"
DriverName = 1, PEI100X.LAN
MediaType =  "ETHERNET"
CardType = "PCI"
CardId = 1794
Vendor = 4096
Custom = {}
CanShareSlot = "NO"



[Strings]
   ;
   ; Every string that is in quotes from this point to the end of the
   ; file will be pulled out and put into the translation teams database.
   ; There parser looks for the section [Strings] and then goes to the
   ; end of the file.  DO NOT put strings below this point in the file
   ; that should not be translated.  Likewise, all strings that need to
   ; be translated should be in quotes and below this point in the file.
   ;

[ODIStringsENG]
AdapterForNetWare = " Adapter for NetWare"
NetWareForWindowsNT = "NetWare for Windows NT"
Present = "Present"
NotPresent = "Not Present"
NetWareODILANDriversDisk = "NetWare ODI LAN Drivers Disk"
BindingError = "Binding: Sorry, not yet implemented."

[DialogConstantsENG]
Help       = "&Help"
;Exit      = "&Cancel"
OK       = "OK"
HelpContext = ""
Continue   = "&Continue"
Cancel   = "&Cancel"
Advanced = "&Advanced"
IDH_NETWAREWRKSTATIONPARMS =  901
IDH_NETWAREIPXBIND         =  902
IDH_IPXSPXPARMS            =  903
IDH_NETWORKPROTOCOL        =  904
IDH_NETWAREODISETTINGS     =  905
IDH_NETWARECLIENTINSTALL   =  906
IDH_NETWARENDISODI         =  907
IDH_NODEADDRESSOVERIDE     =  908
IDH_RESMGRCONFIG               =  951

[LANDriverDlgENG]
DlgType = "RadioCombination"
DlgTemplate = "List"$(ODINumberofDriverLists)
Caption = "ODI "$(ODILANDriverTitle)" Adapter Configuration"
EditTextIn = ""
EditTextLim = ""
CBOptionsGreyed = {}
HelpContext = $(IDH_NETWAREODISETTINGS)


[NoParmsENG]
DlgType = "RadioCombination"
DlgTemplate = "NO_PARAMETERS"
Caption = "ODI "$(ODILANDriverTitle)" Adapter Configuration"
EditTextIn = ""
EditTextLim = ""
CBOptionsGreyed = {}
HelpContext = ""
CBOptionsGreyed = {}
ComboListItemsIn = {}
ComboListItemsOut = {}
NotifyFields = {}


[AdvancedDialogENG]
DlgType = "RadioCombination"
Caption = "Advanced Settings"
EditTextIn = $(ODINodeAddress)
EditTextLim = 13
CBOptionsGreyed = {}
HelpContext = $(IDH_NODEADDRESSOVERIDE)
NotifyFields = {}


[FileConstantsENG]
ProCaption = "NetWare ODI LAN Drivers Setup"
ProCancel  = "Cancel"
ProCancelMsg = "NetWare for Windows NT is not correctly installed.  "+
               "Are you sure you want to cancel copying files?"
ProCancelCap = "Network Setup Message"
ProText1    = "Copying:"
ProText2    = "To:"


Download Driver Pack

How To Update Drivers Manually

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.

server: web1, load: 1.03