OEMSETUP.INF Driver File Contents (migtools.exe)

;***********************************************************************
;
; OEMSETUP.INF
;
;
;		Novell network card SETUP INF file.
;	SK-NET FDDI-FE
;
;***********************************************************************

;-----------------------------------------------------------------------
; OPTION TYPE
; -----------
; This identifies the Option type we are dealing with.
; 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 and MCA
;-----------------------------------------------------------------------


;ODIDeveloper This list should contain the Bus('s) that your adapter
;supports. Delete the ones that don't apply.
;If you adapters that run on different buses that are in this file use a
;union of the Bus types.
[PlatformsSupported]
	EISA

;-----------------------------------------------------------------------
; 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.
;
;-----------------------------------------------------------------------

;ODIDeveloper These are the Drivers that are going to be on the diskette
;if you only need one you should delete all but the top option. If you need
;more than 1 add another board here. Remember this is case sensitive. (Use
;upper case).
[Options]
	ODI_SKFDDI-FE

[LanguagesSupported]
	ENG

;ODIDeveloper  These are the descriptions that will show up for the drivers
;listed above.	You should have one line for each Driver the order should be
;as above.
[OptionsTextENG]
	" ODI SK-NET FDDI-FE Adapter for NetWare"

;***********************************************************************
; CONSTANTS FOR USING DIALOGS
;***********************************************************************
[FileConstants]
;
;  File names, etc.
;
UtilityInf		= "UTILITY.INF"
ParamInf		= "NCPARAM.INF"
subroutineinf		= "SUBROUTN.INF"
NwSubsInf		= "NWSUBS.INF"
Exit_Code		= 0
;ShellCode		 = 0

;
; EventLog Message File
;
NetEventDLL		= "%SystemRoot%\System32\netevent.dll"
IoLogMsgDLL		= "%SystemRoot%\System32\IoLogMsg.dll"

; Product Info
;
Manufacturer	= "Novell"
ProductMajorVersion		= "0"
ProductMinorVersion		= "9"
ProductVersion	= $(ProductMajorVersion)"."$(ProductMinorVersion)
;
; Hardware
;
EISACompressedIDFE		= 91213
DriverName			= "OdiLoad"
OdiModules			= "ODI_Modules"

;ODIDeveloper These are your card names and the display text for the adapters.
;You should have a ProductHardwareName, and ProductHardwareTitle for each
;driver.
ProductHardwareODI_SKFDDI-FEName	= "SKFDDIFE"
ProductHardwareODI_SKFDDI-FETitle	= "ODI SK-NET FDDI-FE Adapter for NetWare"

FrameODI_SKFDDI-FEType		= "FDDI"



NetRuleHardwareType		 = "nwDriver nwAdapter"
NetRuleHardwareBindForm		 = " yes yes container"
;
; Registry Key
;
ProductKeyName	= $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(DriverName)"\CurrentVersion"
ParamKeyName	= $(!NTN_ServiceBase)"\"$(ProductHardware$(Option)Name)"\Parameters"
NWParameterList = ^(CHoicesNamesList, 1)
MSParameterList = ^(ChoicesNamesList, 2)

;
;  Dialog Parameters
;

;AdditionalKeywords = $(Additional$(Option)Keywords)


;ODIDeveloper These are the choices that will be displayed for the user to
;select. Modify these to represent the choices for each adapter.

LERCUTOFFStrings = ^(LERCUTOFF_Choices, 1)
LERCUTOFFValues	= ^(LERCUTOFF_Choices, 2)
LERCUTOFFDefault = 7

LERALARMStrings = ^(LERALARM_Choices, 1)
LERALARMValues	= ^(LERALARM_Choices, 2)
LERALARMDefault = 8


PMFPASSWDDefault = "";
TMINDefault = 5;
TMAXDefault = 165
TREQDefault = 165
TVXDefault = 2700
USERDATADefault = ""

[LERCUTOFF_Choices]
LERCUT_1 = "1E-4",4
LERCUT_2 = "1E-5",5
LERCUT_3 = "1E-6",6
LERCUT_4 = "1E-7",7
LERCUT_5 = "1E-8",8
LERCUT_6 = "1E-9",9
LERCUT_7 = "1E-10",10
LERCUT_8 = "1E-11",11
LERCUT_9 = "1E-12",12
LERCUT_10 = "1E-13",13
LERCUT_11 = "1E-14",14
LERCUT_12 = "1E-15",15

[LERALARM_Choices]
LERALARM_1 = "1E-4",4
LERALARM_2 = "1E-5",5
LERALARM_3 = "1E-6",6
LERALARM_4 = "1E-7",7
LERALARM_5 = "1E-8",8
LERALARM_6 = "1E-9",9
LERALARM_7 = "1E-10",10
LERALARM_8 = "1E-11",11
LERALARM_9 = "1E-12",12
LERALARM_10 = "1E-13",13
LERALARM_11 = "1E-14",14
LERALARM_12 = "1E-15",15




[DialogConstantsENG]
Help		= "&Help"
Exit		= "Cancel"
OK		= "OK"
HelpContext	= ""
Continue	= "Continue"
Cancel		= "Cancel"

[FileDependentDlgENG]
HelpFile		= OemNadSk.hlp
IDH_DB_OEMSK_ODI_FENT_INS	= 9300
HelpContext		= $(IDH_DB_OEMSK_ODI_FENT_INS)
MinID			= 9000
MaxID			= 9999
DlgType = "RadioCombination"
DlgTemplate = "SMTEISA"
Caption = $(Function$(Option)Title)

Combo1Label = "LERCUTOFFA"
Combo2Label = "LERCUTOFFB"
Combo3Label = "LERALARMA"
Combo4Label = "LERALARMB"
Combo5Label = "Slot/BusNumber"
Edit1Label = "PMFPASSWD"
Edit2Label = "TMIN"
Edit3Label = "TMAX"
Edit4Label = "TREQ"
Edit5Label = "TVX"
Edit6Label = "USERDATA"
CheckBox1 = "NO_MULTICAST"
Combo1List = $(LERCUTOFFStrings)
Combo1Out  = $(Choice1)
Combo2List = $(LERCUTOFFStrings)
Combo2Out  = $(Choice2)
Combo3List = $(LERALARMStrings)
Combo3Out  = $(Choice3)
Combo4List = $(LERALARMStrings)
Combo4Out  = $(Choice4)
Combo5Out  = $(Choice5)
ComboListItemsIn  = {Combo1List, Combo2List, Combo3List, Combo4List, Combo5List}
ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out}
EditTextIn = {$(PMFPASSWDValue),$(TMINValue),$(TMAXValue),$(TREQValue),$(TVXValue),$(USERDATAValue)}
EditTextLim = {8,3,3,3,5,32}
EditTextOut = {}
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO, NO, NO}



[FileConstantsENG]
ProCaption	 = "NetWare for Windows NT 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:"

;ODIDeveloper The next lines are the Titles for the Setup dialog for each
;adapter on the diskette.
;add or delete a line to equal the number of Adapters on diskette.
FunctionODI_SKFDDI-FETitle	 = "ODI SK-NET FDDI-FE Network Card Setup"


[GeneralConstants]
;
;  Program flow control variables.
;
from	  = ""
to		  = ""
;
;  Return codes; Exit_Code is set to one of these
;
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


[date]
	; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
	; Minute, Second }
	Now = {} ? $(!LIBHANDLE) GetSystemDate


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

	;
	; Check if the language requested is supported
	;
	set LanguageList = ^(LanguagesSupported, 1)
	Ifcontains(i) $($0) in $(LanguageList)
		;
		; Check if the platforms requested is supported
		;
		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

	;
	; form a list of all the options and another of the text representing
	;

returnoptions = +
	set OptionList	   = ^(Options, 1)
	set OptionTextList = ^(OptionsText$($0), 1)
	set Status		   = STATUS_SUCCESSFUL

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

;----------InstallOption-------------------------------------------------
;
; 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]
	;
	; extract parameters
	;
	set Option	 = $($1)
	set SrcDir	 = $($2)
	set AddCopy	 = $($3)
	set DoCopy	 = $($4)
	set DoConfig = $($5)


	;
	; Check if the language requested is supported
	;
	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 DialogConstants$(!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
;
;  Assume all is well.
;
	set CommonStatus = STATUS_SUCCESSFUL

	EndWait

;
;	Set up the operation-mode-based variables and gaily welcome
;	the user.  If the "install mode" variable is improperly set,
;	assume this is a new installation.
;

Begin = +
	Set BusNumList = {}
	Set Combo5List = {}

	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
	else
				set StartLabel = installadapter
				set OEM_ABANDON_OPTIONS = {}
				set OEM_ABANDON_SOFTWARE = FALSE
				set OEM_ABANDON_ON = TRUE
	endif

	Set FESlotList = {}
	Shell $(UtilityInf), EISAFindBus, $(EISACompressedIDFE), -1
	IfInt $($R0) == "NO_ERROR"
		ForListDo $($R1)
			Set BusNum	= *($($),1)
			Set SlotNum	= *($($),2)
			Set BusNumList	= >($(BusNumList),$(BusNum))
			Set Combo5List	= >($(Combo5List),$(SlotNum)" / "$(BusNum))
			Set FESlotList = >($(FESlotList),$(SlotNum))
			Set SlotValue = $(SlotNum)
		EndForListDo
	EndIf

	Set PMFPASSWDValue = $(PMFPASSWDDefault)
	Set TMINValue = $(TMINDefault)
	Set TMAXValue = $(TMAXDefault)
	Set TREQValue = $(TREQDefault)
	Set TVXValue = $(TVXDefault)
	Set USERDATAValue = $(USERDATADefault)
	Set LERCUTOFFAValue = $(LERCUTOFFDefault)
	Set LERCUTOFFBValue = $(LERCUTOFFDefault)
	Set LERALARMAValue = $(LERALARMDefault)
	Set LERALARMBValue = $(LERALARMDefault)
	set NO_MulticastValue = ""


	Set Choice1 = *($(LERCUTOFFStrings), ~($(LERCUTOFFValues), $(LERCUTOFFDefault)))
	Set Choice2 = *($(LERCUTOFFStrings), ~($(LERCUTOFFValues), $(LERCUTOFFDefault)))
	Set Choice3 = *($(LERALARMStrings), ~($(LERALARMValues), $(LERALRAMDefault)))
	Set Choice4 = *($(LERALARMStrings), ~($(LERALARMValues), $(LERALRAMDefault)))


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

;-----------------------------------------------
; Installation Section
;-----------------------------------------------

installadapter = +
	Ifstr(i) $(DoCopy) == "YES"
	   ;
	   ;  Get source location
	   ;
	   Shell $(NwSubsInf), DoAskSource, $(!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

	install "Install-Option"

	goto adapteroptions


;-----------------------------------------------
; Configuration Section
;-----------------------------------------------
;
;	Get the current values of all the parameters
;
configureadapter = +
	Ifstr $(KeyProduct) == $(KeyNull)
		OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
		Ifstr $(KeyProduct) == $(KeyNull)
			set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
			Debug-Output "OEMNADNH.INF: Cannot find component product key "$(!NTN_RegBase)
			goto fatalregistry
		Endif
	Endif

	Set AdapterNumber = ""

	;
	; Get the other parameters;	 they're attached to the service parameters key
	;
	Shell $(UtilityInf) FindService, $(KeyProduct)
	Ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "OEMNADNH.INF: FindService shell failure "$($ShellCode)
		Goto ShellCodeError
	Endif
	Ifstr(i) $($R0) != NO_ERROR
		Debug-Output "OEMNADNH.INF: FindService Error "$($R0)
		Goto fatalregistry
	endif

	set KeyParameters = $($R2)

	;
	;  We don't need the services key, so close it.
	;
	CloseRegKey $($R1)

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

	set OldVersionExisted = $(TRUE)

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

	;
	; Get the old values
	;



	EnumRegValue $(KeyParameters) ValueList

	ForListDo $(ValueList)

		set ValueItem = $($)
		set ValueName = *($(ValueItem),1)
		set ValueData = *($(ValueItem),4)
		Ifstr(i) $(ValueName) == "Slot"
			set SlotValue = $(ValueData)
		else-ifstr(i) $(ValueName) == "LERCUTOFFA"
			set LERCUTOFFAValue = $(ValueData)
		else-ifstr(i) $(ValueName) == "LERCUTOFFB"
			set LERCUTOFFBValue = $(ValueData)
		else-ifstr(i) $(ValueName) == "LERALARMA"
			set LERALARMAValue = $(ValueData)
		else-ifstr(i) $(ValueName) == "LERALARMB"
			set LERALARMBValue = $(ValueData)
		else-ifstr(i) $(ValueName) == "PMFPASSWD"
			set PMFPASSWDValue = $(ValueData)
		else-ifstr(i) $(ValueName) == "TMIN"
			set TMINValue = $(ValueData)
		else-ifstr(i) $(ValueName) == "TMAX"
			set TMAXValue = $(ValueData)
		else-ifstr(i) $(ValueName) == "TREQ"
			set TREQValue = $(ValueData)
		else-ifstr(i) $(ValueName) == "TVX"
			set TVXValue = $(ValueData)
		else-ifstr(i) $(ValueName) == "USERDATA"
			set USERDATAValue = $(ValueData)
		else-ifstr(i) $(ValueName) == "NO_MULTICAST"
			set CheckItemsIn = {"ON"}
			set NO_MulticastValue = "NO_MULTICAST"
	endif

	EndForListDo


;
;  Read the symbolic link to the ODI entry from the "OdiLoadName" value
;
	GetRegValue $(KeyParameters),"OdiLoadName", CardInstanceList
	Set CardInstanceName = *($(CardInstanceList),4)

adaptersetup =+

	goto adapteroptions
;
;	Let the user bang on the options until satisfied.
;
adapteroptions = +
	set from = adapteroptions

	set Choice1 = *($(LERCUTOFFStrings), ~($(LERCUTOFFValues), +
		$(LERCUTOFFAValue)))
	set Choice2 = *($(LERCUTOFFStrings), ~($(LERCUTOFFValues), +
		$(LERCUTOFFBValue)))
	set Choice3 = *($(LERALARMStrings), ~($(LERALARMValues), +
		$(LERALARMAValue)))
	set Choice4 = *($(LERALARMStrings), ~($(LERALARMValues), +
		$(LERALARMBValue)))
	set Choice5 = *($(Combo5List), ~($(FESlotList), +
		$(SlotValue)))
	read-syms FileDependentDlg$(!STF_LANGUAGE)


	LoadLibrary "disk3" "skdll.dll" hLib

	SetHelpFile $(HelpFile) $(MinID) $(MaxID)
	ui start "InputDlg" $(hLib)

	FreeLibrary $(hLib)

		ifstr(i) $(DLGEVENT) == "CONTINUE"
			set LERCUTOFFAValue = *($(LERCUTOFFValues), ~($(LERCUTOFFStrings), $(Combo1Out)))
			Debug-Output "List1Value = "$(List1Value)
			set LERCUTOFFBValue = *($(LERCUTOFFValues), ~($(LERCUTOFFStrings), $(Combo2Out)))
			set LERALARMAValue = *($(LERALARMValues), ~($(LERALARMStrings), $(Combo3Out)))
			set LERALARMBValue = *($(LERALARMValues), ~($(LERALARMStrings), $(Combo4Out)))
			set PMFPASSWDValue = *($(EditTextOut), 1)
			set TMINValue = *($(EditTextOut), 2)
			set TMAXValue = *($(EditTextOut), 3)
			set TREQValue = *($(EditTextOut), 4)
			set TVXValue = *($(EditTextOut), 5)
			set USERDATAValue = *($(EditTextOut), 6)
			Set Chk = *($(CheckItemsOut), 1)
			Ifstr(i) $(Chk) == "ON"
				set NO_MulticastValue = "NO_MULTICAST"
			Else
				set NO_MulticastValue = ""
			Endif
				Split-String $(Combo5Out) "/" Combo5Elements
				set SlotValue = *($(Combo5Elements),1)
				set BusNumber = *($(Combo5Elements),2)
			ui pop 1
		else-ifstr(i) $(DLGEVENT) == "CANCEL"
			set CommonStatus = STATUS_USERCANCEL
			Debug-Output "Action: exit. Bye."
			ui pop 1
			goto end
		else
			;
			; Unknow command
			;
			ui pop 1
			Debug-Output "Action: unknown. Bye."
			goto end
		endif

	Endif

;	set-hextodec List1DecValue = $(List1Value)
;	set-hextodec List2DecValue = $(List2Value)
;	set-hextodec List3DecValue = $(List3Value)

;
;	If installing, go create the necessary keys;
;	if configuring, they're already open.
;
	ifint $(OldVersionExisted) == $(TRUE)
		ifstr(i) $(!NTN_InstallMode) == configure
			goto writeparameters
		endif
	endif

	StartWait
;
;	Create the HARDWARE\Netcard region and its corresponding service
;
	Shell $(UtilityInf), AddHardwareComponent, $(ProductHardware$(Option)Name),$(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 "OEMNADNH.INF: Cannot add hardware component "$($ShellCode)
		goto ShellCodeError
	endif

	set RegistryErrorIndex = $($R0)

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

;
;	At this point:
;	  $R1  Registry key variable for HARDWARE\Netcard\(n)
;	  $R2  Registry key variable for HARDWARE\Netcard\(n)\\NetRules
;	  $R3  Registry key handle for <service>\Parameters key
;	  $R4  Adapter number assigned to adapter
;	  $R5  Service name generated by combining svc name with adapter number
;
	set KeyParameters = $($R3)
	set KeyAdapterRules = $($R2)
	set AdapterNumber = $($R4)

	Set-add TempAdapterNumber = $(AdapterNumber),0

	set CardInstanceName = $(ProductHardware$(Option)Name)" #"$(TempAdapterNumber)

	set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
					   {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
					   {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Title)},+
					   {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Name)},+
					   {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 "OEMNADNH.INF: AddValueList ShellCode error "$($ShellCode)
		goto ShellCodeError
	endif

	CloseRegKey $($R1)

	set TempProdName = """"$(ProductHardware$(Option)Name)$(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 "OEMNADNH.INF: AddValueList ShellCode error "$($ShellCode)
		goto ShellCodeError
	endif

	set RegistryErrorIndex = $($R0)

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

	CloseRegKey $(KeyAdapterRules)

	SetRegValue $(KeyParameters) {OdiLoadName,$(NoTitle),$(!REG_VT_SZ),$(CardInstanceName)}

	goto writeparameters
;
;	REQUIRED:	$(KeyParameters) contains service Parameters key handle
;
writeparameters = +
	Shell $(UtilityInf), GetBusTypeNum
	set BusTypeNum = $($R1)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "OEMNADNH.INF: GetBusTypeNum ShellCode error "$($ShellCode)
		goto ShellCodeError
	endif
;
;	Add the rest of the parameters to the Services area
;
		set NewValueList = {{SLOT,$(NoTitle),$(!REG_VT_DWORD),$(SlotValue)},+
				{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
				{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
				{MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
                                {LERCUTOFFA,$(NoTitle),$(!REG_VT_DWORD),$(LERCUTOFFAValue)},+
				{LERCUTOFFB,$(NoTitle),$(!REG_VT_DWORD),$(LERCUTOFFBValue)},+
				{LERALARMA,$(NoTitle),$(!REG_VT_DWORD),$(LERALARMAValue)},+
				{LERALARMB,$(NoTitle),$(!REG_VT_DWORD),$(LERALARMBValue)},+
				{PMFPASSWD,$(NoTitle),$(!REG_VT_EXPAND_SZ),$(PMFPASSWDValue)},+
				{TMIN,$(NoTitle),$(!REG_VT_DWORD),$(TMINValue)},+
				{TMAX,$(NoTitle),$(!REG_VT_DWORD),$(TMAXValue)},+
				{TREQ,$(NoTitle),$(!REG_VT_DWORD),$(TREQValue)},+
				{TVX,$(NoTitle),$(!REG_VT_DWORD),$(TVXValue)},+
				{USERDATA,$(NoTitle),$(!REG_VT_EXPAND_SZ),$(USERDATAValue)},+
                                {NO_MULTICAST,$(NoTitle),$(!REG_VT_DWORD),0)}}
	Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)

	ifstr $(NO_MulticastValue) == ""
		DeleteRegValue $(KeyParameters) NO_MULTICAST
	endif

	CloseRegKey $(KeyParameters)

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

	set RegistryErrorIndex = $($R0)

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

	EndWait

;
;  Add an OdiLoad Module
;
; Set this cards configuration info for OdiLoad.  Load all frame types, this is
; required for ODINSUP (ODI NDIS Support) to work.
;

	Ifstr(i) $(Frame$(Option)Type) == "ETHERNET"
		set OdiParmList = {"Frame ETHERNET_802.3", +
				   "Frame ETHERNET_802.2", +
				   "Frame ETHERNET_II", +
				   "Frame ETHERNET_SNAP"}
	else-Ifstr(i) $(Frame$(Option)Type) == "TOKEN-RING"
		set OdiParmList = {"Frame TOKEN-RING", "Frame TOKEN-RING_SNAP"}
	else-Ifstr(i) $(Frame$(Option)Type) == "FDDI"
		set OdiParmList = {"Frame FDDI_802.2", "Frame FDDI_SNAP"}
	else
		set OdiParmList = {}
	endif

	set OdiParmList = >($(OdiParmList), "LERCUTOFFA= "$(LERCUTOFFAValue))
	set OdiParmList = >($(OdiParmList), "LERCUTOFFB= "$(LERCUTOFFBValue))
	set OdiParmList = >($(OdiParmList), "LERALARMA= "$(LERALARMAValue))
	set OdiParmList = >($(OdiParmList), "LERALARMB= "$(LERALARMBValue))
	set OdiParmList = >($(OdiParmList), "TMIN= "$(TMINValue))
	set OdiParmList = >($(OdiParmList), "TMAX= "$(TMAXValue))
	set OdiParmList = >($(OdiParmList), "TREQ= "$(TREQValue))
	set OdiParmList = >($(OdiParmList), "TVX= "$(TVXValue))
	ifstr(i) $(NO_MulticastValue) != ""
	set OdiParmList = >($(OdiParmList), "NO_MULTICAST= "1)
	endif
	ifstr(i) $(USERDATAValue) != ""
	set OdiParmList = >($(OdiParmList), "USERDATA= "$(USERDATAValue))
	endif
	ifstr(i) $(PMFPASSWDValue) != ""
	set OdiParmList = >($(OdiParmList), "PMFPASSWD= "$(PMFPASSWDValue))
	endif
		set OdiParmList = >($(OdiParmList), "SLOT "$(SlotValue))

	ForListDo $(AdditionalKeywords)
		set OdiParmList = >($(OdiParmList), $($))
	EndForListDo

	Shell $(NwSubsInf) NwAddOdiLoadModule $(CardInstanceName) $(AdapterNumber) $(OdiParmList)


	Ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Shell "subroutn.inf", SetupMessage, $(!STF_LANGUAGE),+
		  "WARNING", "odiload1"
		Shell "subroutn.inf", SetupMessage, $(!STF_LANGUAGE),+
		  "WARNING", $($ShellCode)
		Debug-Output "OEMNADNH.INF: NwAddOdiLoadModule failure "$($ShellCode)
		Goto ShellCodeError
	Endif

	Set ErrorString = $($R0)
	Ifstr(i) $(ErrorString) != NO_ERROR
		Shell "subroutn.inf", SetupMessage, $(!STF_LANGUAGE),+
		  "WARNING", "odiload2"
		Shell "subroutn.inf", SetupMessage, $(!STF_LANGUAGE),+
		  "WARNING", $(ErrorString)
		Debug-Output "OEMNADNH.INF: NwAddOdiLoadModule "$(ErrorString)
		goto fatalregistry
	Endif

	goto successful

;-----------------------------------------------
; Binding section
;-----------------------------------------------
bindingadapter =+
	set Error = "Binding: Sorry, not yet implemented."
	goto fatal

;-----------------------------------------------
; Removeadapter section
;-----------------------------------------------

removeadapter = +
;
; Delete the Services\OdiLoad\Odi_Modules\xxxxxx #1 card instance and update
; IpxSpxII and ODINSUP if needed.
;

	Shell $(NwSubsInf) NwRemoveAdapter $(!NTN_RegBase)
	Ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "Shell Error NwRemoveAdapter "$($ShellCode)
	Endif
;
; Remove the NT Network Adapter Info.
;

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

	set RegistryErrorIndex = $($R0)

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

	goto end

;-----------------------------------------------
; Upgrade Software section
;-----------------------------------------------

UpgradeSoftware = +
	;
	; upgrade/update hardware component
	; There is no different between upgrade and update for hardware
	; component
	;
	; 1. Get the Service Name
	; 2. Change the NetRule section if necessary
	;
	OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
		  $(MAXIMUM_ALLOWED) NetworkCardKey
	Ifstr(i) $(NetworkCardKey) != $(KeyNull)
		;
		; Get Service name
		;
		GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
		set ServiceName = *($(ServiceNameInfo), 4)

		;
		; Change the NetRule if necessary
		;
		OpenRegKey $(NetworkCardKey) "" "NetRules" +
			$(MAXIMUM_ALLOWED) NetRuleKey
		Ifstr(i) $(NetRuleKey) != $(KeyNull)
			;
			; Make the change....
			;
		else
			;
			; Error, cannot open net rules key
			;
			goto fatalregistry
		endif

		CloseRegKey $(NetRules)
		CloseRegKey $(NetworkCardKey)
	else
		;
		; Error, cannot open network card key
		;
		goto fatalregistry
	endif
	;
	; 3. Change the service section of the hardware. i.e.,
	;	 ParameterName change, value change, etc.
	;
	OpenRegKey $(!REG_H_LOCAL) "" +
		  $(!NTN_ServiceBase)"\"$(ServiceName) +
		  $(MAXIMUM_ALLOWED) ServiceKey

	Ifstr(i) $(ServiceKey) != $(KeyNull)
		;
		; Get the ServiceKey to change the Start value
		; or Type value. Or open Parameters key to
		; change the hardware parameters if necessary.
		;
		CloseRegKey $(ServiceKey)
	else
		;
		; Error, cannot open network card key
		;
		goto fatalregistry
	endif

	goto end
	;
	; End of Upgrade Software
	;

;
;  Escape hatches
;
successful = +
	Set OdiAdapterInstalledOkay = "1"
	goto end

abandon = +
	ForListDo $(OEM_ABANDON_OPTIONS)
		Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
			$(DriverName), $($)
		ifint $($ShellCode) != $(!SHELL_CODE_OK)
			Debug-Output "OEMNADNH.INF: RemoveHardwareComponent ShellCode error "$($ShellCode)
			goto ShellCodeError
		endif

		set RegistryErrorIndex = $($R0)

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

	goto end

;
; warning display
;
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


;
; non fatal error display
;
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

;
;  Registry is broken
;
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 "OEMNADNH.INF: ShellCode error: cannot get an error string."
		goto ShellCodeError
	endif
	set Error = $($R0)
	Goto fatal
;
; fatal error display
;
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

;
;  Shelling error
;
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
	;
	; if OEM_ABANDON_ON == TRUE, then remove the registry entries
	;
	ifstr(i) $(OEM_ABANDON_ON) == TRUE
		set OEM_ABANDON_ON = FALSE
		goto abandon
	endif
	goto end

end = +
	goto term

term = +
	Ifstr(i) $(OdiAdapterInstalledOkay) == "1"
		Shell $(NwSubsInf) GetOdiAdapterList
		ifint $($R3) < 2
			Set DlgType = "MessageBox"
			Set STF_MB_TITLE = "NetWare for Windows NT Installation"
			Set STF_MB_TEXT	 = "The NetWare ODI Adapter was successfully installed.  "+
						   "Your NetWare installation is COMPLETE, unless "+
				   "you need to install ODINSUP or Configure the software."
			Set STF_MB_TYPE	 = 1
		Set STF_MB_ICON	 = 2
		Set STF_MB_DEF	 = 1
		ui start "Error Message"
	Endif
	Endif

	Return $(CommonStatus)

;***************************************************************
;  INSTALL SECTIONS
;***************************************************************
[Install-Option]
	set STF_VITAL = ""
	set STF_OVERWRITE	 = "VERIFYSOURCEOLDER"

	ifstr(i) $(AddCopy) == "YES"

		;
		; Add the files to the copy list
		;
		AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
		AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
		AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)

	endif

	ifstr(i) $(DoCopy) == "YES"

	   ;
	   ; Copy files in the copy list
	   ;
	   set !STF_NCPA_FLUSH_COPYLIST = TRUE
	   CopyFilesInCopyList

	endif

	ifstr(i) $(DoConfig) == "YES"
		;
		; Add product to registry
		;

		;
		; Finish up
	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  = "SK Driver Disk"  , TAGFILE = disk4
[ProductType]
STF_PRODUCT	 = Winnt
STF_PLATFORM = I386
[Files-Inf]
1,	oemsetup.inf,	SIZE=50000,			RENAME=$(!UG_Filename)

;ODIDeveloper these are the Driver files that will be copied from the diskette
;to the NT system
;Add or delete an entry to equal the number of drivers on the diskette.
[Files-ODI_SKFDDI-FE]
1,	SKFDDIFE.LAN,	SIZE=120000
[Files-Dll]
1, 	skdll.dll,	SIZE=8192
[Files-Hlp]
1, 	Oemnadsk.hlp,	SIZE=14000

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: web3, load: 1.79