OEMSETUP.INF Driver File Contents (wireless_drivers_cd.zip)

;***********************************************************************
;
; OEMSETUP.INF
;
;               IEEE802.11b WLAN Card
;               Copyright (C) 2002, All rights reserved.
;
;***********************************************************************

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

[Identify]
	set Status              = STATUS_SUCCESSFUL
	set Identifier  = NetAdapter
	set Media               = #("Source Media Descriptions", 1, 1)

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


;***********************************************************************
;
;       End Indentify
;
;***********************************************************************



;***********************************************************************
; 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)



;=======================================================================
;
;       ReturnOptions related symbols
;
;=======================================================================

;-----------------------------------------------------------------------
; PlatformsSupported
; ------------------
; This identifies the platforms supported by the adapter card.
; Possible types are:
;
; ISA, EISA, MCA and PCMCIA
;-----------------------------------------------------------------------

[PlatformsSupported]
	ISA
	PCMCIA

;-----------------------------------------------------------------------
;
;       Languages Supported in INF File
; Possible types are:
;
; ENG, FRN, SPN, ...
;-----------------------------------------------------------------------
[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]
	PRISM2_5_PCMCIA

[OptionsTextENG]
	PRISM2_5_PCMCIA     ="IEEE802.11b WLAN Card"

;***********************************************************************
;
;       End ReturnOptions
;
;***********************************************************************


;***********************************************************************
; 4. Source Media Descriptions:
;
; DESCRIPTION:  A detect section required in all oemsetup.inf files. It
;                               consists of a lied for each floppy disk that is part of
;                               the distribution set. The format is as follows:
;
;                               LineKey = [DiskDescription, TAGFILE = TagFileName]
;
; EXAMPLE:              1 = "Driver Disk #1", TAGFILE = disk1
;
;
; INPUT:                None
;
; OUTPUT:               None
;
;***********************************************************************

[Source Media Descriptions]
	1  = "IEEE802.11b WLAN Card driver Disc"


;***********************************************************************
;
;       End Source Media Descriptions
;
;***********************************************************************




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


;------------------------------------------------------------------------
; CONSTANTS FOR USING DIALOGS
;------------------------------------------------------------------------
[IntersilPrism25FileConstants]
	GenericAdapterName      = "IEEE802.11b WLAN Card"

[FileConstants]
	GenericDriverName       = "IEEE802.11b WLAN Card Client driver"
	GenericSysName          = "WLPCND4.sys"
	GenericName             = "WLPC"
	lowercaseName           = "wlpc"

	;
	;  File names, etc.
	;
	UtilityInf                      = "UTILITY.INF"
	ParamInf                        = "NCPARAM.INF"
	subroutineinf           = "SUBROUTN.INF"
	SoftwareType            = "driver"
	Exit_Code                       = 0

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

	;
	; Product Info
	;
	Manufacturer            = "Wireless Manufacturer"
	ProductMajorVersion     = "2"
	ProductMinorVersion     = "0"
	VER_PRODUCT_MAJOR_STR       = "2"
	VER_PRODUCT_MINOR_STR       = "0"
	VER_PRODUCT_SUB_MINOR_STR   = "9"
	ProductVersion              = $(VER_PRODUCT_MAJOR_STR)"."$(VER_PRODUCT_MINOR_STR)"."$(VER_PRODUCT_SUB_MINOR_STR)
	DriverVersion               = $(VER_PRODUCT_MAJOR_STR)"."$(VER_PRODUCT_MINOR_STR)"."$(VER_PRODUCT_SUB_MINOR_STR)

	;
	; Software
	;
	ProductSoftwareName         = $(GenericName)
	ProductSoftwareImagePath    = "\SystemRoot\System32\drivers\"$(GenericSysName)
	NetRuleSoftwareType         = $(lowercaseName)"Sys ndisDriver "$(lowercaseName)"Driver"

	NetRuleSoftwareUse          = $(SoftwareType)
	NetRuleSoftwareBindForm     = """"$(lowercaseName)"Sys"" yes no container"

	NetRuleSoftwareClass        = {$(lowercaseName)"Driver basic"}
	NetRuleSoftwareBindable     = {$(lowercaseName)"Driver "$(lowercaseName)"Adapter non exclusive 100"}

	;
	; Hardware
	;
	ProductHardwareName         = $(GenericName)
	NetRuleHardwareType         = $(lowercaseName)" "$(lowercaseName)"Adapter"
	NetRuleHardwareBindForm     = " yes yes container"
	NetRuleHardwareClass        = {$(lowercaseName)"Adapter basic"}

	;
	; Registry Key
	;
	ProductKeyName                  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
	ParamKeyName                    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
	PcmciaDataBaseKeyName   = $(!NTN_ServiceBase)"\Pcmcia\Database"

	DialogDllName           = "WLPC.dll"

[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)\drivers

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


;------------------------------------------------------------------------
;
; 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]
	;
	; Set default values for
	;
	set Status      = STATUS_FAILED
	;
	; extract parameters
	;
	set Option              = $($1)
	set SrcDir              = $($2)
	set AddCopy     = $($3)
	set DoCopy              = $($4)
	set DoConfig    = $($5)

	; Enable debugging output
	Set !G:DebugOutputControl = 1

	;
	; Check if the language requested is supported
	;
	set LanguageList = ^(LanguagesSupported, 1)
	Ifcontains(i) $($0) NOT-IN $(LanguageList)
		Return STATUS_NOLANGUAGE
	endif

	read-syms GeneralConstants
	read-syms IntersilPrism25FileConstants
	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
	;
	;  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 ActivateDetection = FALSE

	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 ActivateDetection = TRUE
		set StartLabel = configureadapter
		;
		;       You cannot config the software component
		;
		Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
			Debug-Output "Cannot configure the PRISM II driver."
			Shell $(UtilityInf), RegistryErrorString, "CANNOT_CONFIGURE_SOFTWARE"
			ifint $($ShellCode) != $(!SHELL_CODE_OK)
				Debug-Output "ShellCode error: cannot get an error string."
				goto ShellCodeError
			endif
			set Error       = $($R0)
			set from        = end
			set to          = end
			goto nonfatalinfo
		endif
	else
;               set ActivateDetection           = TRUE
		set StartLabel                          = installadapter
		set OEM_ABANDON_OPTIONS         = {}
		set OEM_ABANDON_SOFTWARE        = FALSE
		set OEM_ABANDON_ON                      = TRUE
	endif

	install "PCMCIA-Defaults"
	install "Read-Defaults"
	install "Parm-WriteReg"

	Set from        = $(fatal)
	Set to          = $(fatal)
	Goto $(StartLabel)

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

installadapter = +
	;
	; Create/recreate the Registry's PCMCIA database entry for the CW10 adapter
	;
	Debug-Output "*** installadapter ***"
	Debug-Output "PcmciaDataBaseKeyName = "$(PcmciaDataBaseKeyName)

	set ManKeyName = "PCMCIA\11M WLAN Card v2.5"
	set ManKeyName1 = "PCMCIA\11M WLAN Card v2.5"
	set ManKeyName2 = "PCMCIA\11M WLAN Card v3.0"
	set ManKeyName3 = "PCMCIA\11M WLAN Card v3.0"

	Debug-Output "ManKeyName = "$(ManKeyName)

	set KeyPcmciaDataBase = ""
	OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaDataBaseKeyName) $(MAXIMUM_ALLOWED) KeyPcmciaDataBase

	Shell "" ExCreateRegKey $(KeyPcmciaDataBase) $(ManKeyName)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error: cannot get an error string."
		CloseRegKey $(KeyPcmciaDataBase)
		goto ShellCodeError
	endif

	OpenRegKey $(KeyPcmciaDataBase) "" $(ManKeyName) $(MAXIMUM_ALLOWED) KeyTemp
	SetRegValue $(KeyTemp) {Driver,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)}
	SetRegValue $(KeyTemp) {DeviceType,$(NoTitle),$(!REG_VT_SZ),"NET"}
	CloseRegKey $(KeyTemp)


	Shell "" ExCreateRegKey $(KeyPcmciaDataBase) $(ManKeyName1)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error: cannot get an error string."
		CloseRegKey $(KeyPcmciaDataBase)
		goto ShellCodeError
	endif

	OpenRegKey $(KeyPcmciaDataBase) "" $(ManKeyName1) $(MAXIMUM_ALLOWED) KeyTemp
	SetRegValue $(KeyTemp) {Driver,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)}
	SetRegValue $(KeyTemp) {DeviceType,$(NoTitle),$(!REG_VT_SZ),"NET"}
	CloseRegKey $(KeyTemp)

	Shell "" ExCreateRegKey $(KeyPcmciaDataBase) $(ManKeyName2)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error: cannot get an error string."
		CloseRegKey $(KeyPcmciaDataBase)
		goto ShellCodeError
	endif

	OpenRegKey $(KeyPcmciaDataBase) "" $(ManKeyName2) $(MAXIMUM_ALLOWED) KeyTemp
	SetRegValue $(KeyTemp) {Driver,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)}
	SetRegValue $(KeyTemp) {DeviceType,$(NoTitle),$(!REG_VT_SZ),"NET"}
	CloseRegKey $(KeyTemp)

	Shell "" ExCreateRegKey $(KeyPcmciaDataBase) $(ManKeyName3)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error: cannot get an error string."
		CloseRegKey $(KeyPcmciaDataBase)
		goto ShellCodeError
	endif

	OpenRegKey $(KeyPcmciaDataBase) "" $(ManKeyName3) $(MAXIMUM_ALLOWED) KeyTemp
	SetRegValue $(KeyTemp) {Driver,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)}
	SetRegValue $(KeyTemp) {DeviceType,$(NoTitle),$(!REG_VT_SZ),"NET"}
	CloseRegKey $(KeyTemp)


	CloseRegKey $(KeyPcmciaDataBase)

	Debug-Output "Driver Value set in ManKey"
	;
	; Check whether the same version of the software exists
	;

	OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct

	Ifstr $(KeyProduct) != $(KeyNull)
		;
		; Same version already existed in the local machine
		; Popup the dialog and ask the user whether he wants to continue
		;
		Debug-Output "ProductKeyName already exists = "$(ProductKeyName)
		CloseRegKey $(KeyProduct)

		ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
			Debug-Output "Cannot Install the same software again"

			Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
				$(ProductVersion)
			ifint $($ShellCode) != $(!SHELL_CODE_OK)
				Debug-Output "ShellCode error: cannot get an error string."
				goto ShellCodeError
			endif

			goto end
		else
			Debug-Output "Add a new adapter card?"

			Shell $(UtilityInf), CardExistedDlg

			ifint $($ShellCode) != $(!SHELL_CODE_OK)
				Debug-Output "ShellCode error: cannot get an error string."
				goto ShellCodeError
			endif

			ifstr(i) $($R1) != "OK"
				goto end
			endif
			set OldVersionExisted = $(TRUE)
		endif
	endif

;
;  dll load addition
;
	Debug-Output "Calling DoAskSource."

	Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO

	Ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error: cannot get an error string."
		Goto ShellCodeError
	Else-Ifstr(i) $($R0) == STATUS_FAILED
		Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
		ifint $($ShellCode) != $(!SHELL_CODE_OK)
			Debug-Output "ShellCode error: cannot get an error string."
			goto ShellCodeError
		endif
		set Error = $($R0)
		Goto fatal
	Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
		Goto successful
	Endif
	Set SrcDir = $($R1)

	Debug-Output "Done DoAskSource, calling Install-Dll."
;
;       Run Dll for updating parameters
;
	install "Install-Dll"

	Debug-Output "Done Install-Dll, going to adaptersetup."

;
;   	Create a registry entry to install utility after reboot
;
    	OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\run" $(MAXIMUM_ALLOWED) KeyRun
    	Ifstr(i) $(KeyRun) != ""
        	SetRegValue $(KeyRun) {WLPC, 0, $(!REG_VT_SZ), "rundll32 checkdll.dll,RunSetup"}
         	CloseRegKey $(KeyRun)
    	Endif

;       Don't want to show Advance properties during install.
;       goto adaptersetup
	goto skipoptions

;-----------------------------------------------
; Configuration Section
;-----------------------------------------------
;
;       Get the current values of all the parameters
;
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 "Cannot find component product key"
			goto fatalregistry
		Endif
	Endif

	;
	; Get the other parameters;  they're attached to the service parameters key
	;
	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)

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

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

	set OldVersionExisted = $(TRUE)

	install "Parm-ReadReg"


;       Shell $(ParamInf) Param_SaveValues
;       Set CurrParamSettings = $($R0)
;
;       Put up the adapter configuration dialog if necessary.
;
;       Note that $(CurrParamSettings) has the old known parameter values.
;
adaptersetup = +

;       Shell "" DebugConfiguration "before displaying dialog"

	Debug-Output "Starting adaptersetup"

	Set from = adapteroptions


adapteroptions = +

	Debug-Output "Starting adapteroptions"

	LoadLibrary "Disk 1" $(!STF_WINDOWSSYSPATH)\$(DialogDllName) hLib

	read-syms FileDependentDlg$(!STF_LANGUAGE)

	ui start "InputDlg"  $(hLib)

	set ExitButton  = $(ButtonPressed)

	Debug-Output " ButtonPressed "$(ButtonPressed)

	FreeLibrary $(hLib)

	ifstr(i) $(DLGEVENT) == "CONTINUE"
		Debug-Output "Action: Continue"

		install "Parm-UI-values"
		set ExitButton                  = $(ButtonPressed)

		ui pop 1
;               goto nextstep
	else-ifstr(i) $(DLGEVENT) == "EXIT"
		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

	Debug-Output " Combo list out "$(ComboListItemsOut)

;
;       If installing, go create the necessary keys;
;       if configuring, they're already open.
;
skipoptions =+

	Debug-Output "Starting skipoptions."

	ifint $(OldVersionExisted) == $(TRUE)
		Debug-Output "Older version existed."

		ifstr(i) $(!NTN_InstallMode) == configure
			goto writeparameters
		endif
	endif
	StartWait
	;
	; Add Software Component
	;
	ifint $(OldVersionExisted) == $(FALSE)

		Debug-Output "No older version."

		ifstr(i) $(!NTN_InstallMode) == "install"
			Ifstr(i) $(DoCopy) == "YES"

				Shell $(UtilityInf), 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 successful
				Endif

				Set SrcDir = $($R1)

			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



		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 "ShellCode error"
			goto ShellCodeError
		endif
		;
		;       At this point:
		;               $R1 contains the product version key handle;
		;               $R2 contains the NetRules subkey handle;
		;               $R3 contains the new Services key handle; and
		;               $R4 contains the Parameters key
		;               $R5 contains the Linkage Key
		;
		set RegistryErrorIndex  = $($R0)
		set KeyProduct                  = $($R1)
		Set SoftNetRulesKey             = $($R2)
		CloseRegKey $($R3)
		CloseRegKey $($R4)
		CloseRegKey $($R5)

		Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
			EndWait
			Debug-Output "Registry error: add software components"
			CloseRegKey $(KeyProduct)
			CloseRegKey $(SoftNetRulesKey)
			goto fatalregistry
		endif

		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, $(KeyProduct), $(NewValueList)
		ifint $($ShellCode) != $(!SHELL_CODE_OK)
			Debug-Output "ShellCode error."
			goto ShellCodeError
		endif

		set RegistryErrorIndex = $($R0)

		Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
			EndWait
			Debug-Output "Registry error: add value list."
			CloseRegKey $(KeyProduct)
			CloseRegKey $(SoftNetRulesKey)
			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, $(SoftNetRulesKey), $(NewValueList)
		ifint $($ShellCode) != $(!SHELL_CODE_OK)
			Debug-Output "ShellCode error."
			goto ShellCodeError
		endif

		set RegistryErrorIndex = $($R0)

		CloseRegKey $(KeyProduct)
		CloseRegKey $(SoftNetRulesKey)

		Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
			EndWait
			Debug-Output "Resgitry error: add value list."
			goto fatalregistry
		endif
	endif
;
;       Create the HARDWARE\Netcard region and its corresponding service
;
	Debug-Output "Calling AddHardwareComponent."

	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 "Cannot add hardware component"
		goto ShellCodeError
	endif
	set RegistryErrorIndex = $($R0)

	Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
		EndWait
		Debug-Output "Registry error: add hardware component"
		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 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, $($R1), $(NewValueList)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error"
		goto ShellCodeError
	endif

	CloseRegKey $($R1)

	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 "ShellCode error."
		goto ShellCodeError
	endif

	set RegistryErrorIndex = $($R0)
	Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
		EndWait
		Debug-Output "Resgitry error: add value list."
		CloseRegKey $(KeyParameters)
		CloseRegKey $(KeyAdapterRules)
		goto fatalregistry
	endif

	CloseRegKey $(KeyAdapterRules)

	;
	;       Only create Defaults key when installing driver
	;       Write defaults to registry before updating values in lists
	;
	Debug-Output "Starting Install-Defaults."

	CreateRegKey $(KeyParameters) {"defaults",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" DefaultsKey
	Ifstr(i) $(DefaultsKey) == $(KeyNull)
		Debug-Output "Registry error: Create defaults subkey"
		CloseRegKey $(KeyParameters)
		goto fatalregistry
	Endif

	Debug-Output "CreateKey successful."

	Shell  $(UtilityInf), AddValueList, $(DefaultsKey), $(PRISMValueList)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error."
		goto ShellCodeError
	endif

	set RegistryErrorIndex = $($R0)
	Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
		Debug-Output "Registry error: Add value list"
		CloseRegKey $(DefaultsKey)
		CloseRegKey $(KeyParameters)
		goto fatalregistry
	endif

	Debug-Output "Adding PRISM defaults successful."

	Shell  $(UtilityInf), AddValueList, $(DefaultsKey), $(NetTypeValueList)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error."
		goto ShellCodeError
	endif

	set RegistryErrorIndex = $($R0)
	Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
		Debug-Output "Registry error: Add value list"
		CloseRegKey $(DefaultsKey)
		CloseRegKey $(KeyParameters)
		goto fatalregistry
	endif

	Debug-Output "Adding defaults based on NetworkType, successful."

	Shell  $(UtilityInf), AddValueList, $(DefaultsKey), $(PHYTypeValueList)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error."
		goto ShellCodeError
	endif

	set RegistryErrorIndex = $($R0)
	Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
		Debug-Output "Registry error: Add value list"
		CloseRegKey $(DefaultsKey)
		CloseRegKey $(KeyParameters)
		goto fatalregistry
	endif

	Debug-Output "Adding defaults based on PHYType, successful."

	goto writeparameters

;
;       REQUIRED:       $(KeyParameters) contains service Parameters key handle
;
writeparameters = +

	Debug-Output "Starting writeparameters."

	Shell $(UtilityInf), GetBusTypeNum

;       set BusTypeNum = $($R1)
; the above was not working so hard coding the bus type to 1 which represents
;                       NdisInterfaceIsa
	set BusTypeNum          = 1
	set BusNumber           = 0
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error."
		goto ShellCodeError
	endif

;
;       Add the rest of the parameters to the Services area
;

	install "Parm-WriteReg"

	Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NetValueList)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error."
		goto ShellCodeError
	endif

	set RegistryErrorIndex = $($R0)
	Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
		Debug-Output "Registry error: Add value list"
		CloseRegKey $(KeyParameters)
		goto fatalregistry
	endif

	Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(PRISMValueList)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error."
		goto ShellCodeError
	endif

	set RegistryErrorIndex = $($R0)
	Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
		Debug-Output "Registry error: Add value list"
		CloseRegKey $(KeyParameters)
		goto fatalregistry
	endif

	Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NetTypeValueList)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error."
		goto ShellCodeError
	endif

	set RegistryErrorIndex = $($R0)
	Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
		Debug-Output "Registry error: Add value list"
		CloseRegKey $(KeyParameters)
		goto fatalregistry
	endif

	Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(PHYTypeValueList)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "ShellCode error."
		goto ShellCodeError
	endif

	set RegistryErrorIndex = $($R0)
	Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
		Debug-Output "Registry error: Add value list"
		CloseRegKey $(KeyParameters)
		goto fatalregistry
	endif

	CloseRegKey $(KeyParameters)

	EndWait

	goto successful

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

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

removeadapter = +
	Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
		; Remove Software Component
		Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
			$(ProductSoftwareName)
		ifint $($ShellCode) != $(!SHELL_CODE_OK)
			Debug-Output "ShellCode error"
			goto ShellCodeError
		endif

		set RegistryErrorIndex = $($R0)

		Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
			goto fatalregistry
		endif
		else
		Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
			$(ProductSoftwareName), $(!NTN_RegBase)
		ifint $($ShellCode) != $(!SHELL_CODE_OK)
			Debug-Output "ShellCode error"
			goto ShellCodeError
		endif

		set RegistryErrorIndex = $($R0)

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

	goto end

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

UpgradeSoftware = +
	;
	; First determine whether we want to do upgrade or update for software
	; or hardware component. Then we will determine whether the Mode is
	; update or upgrade.
	;
	; If the same version of the product existed in the registry, we do
	; update. Otherwise, we will do a upgrade
	;
	ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
		; Upgrade software component
		;
		; see whether the same version exist or not
		;
		OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct

		Ifstr $(KeyProduct) != $(KeyNull)
			GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
			set Version = *($(VersionInfo), 4)

			;
			; Update the binaries
			;
			Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)

			ifint $($ShellCode) != $(!SHELL_CODE_OK)
				Debug-Output "ShellCode error"
				goto ShellCodeError
			endif

			set !UG_Filename = $($R0)

			ifstr(i) $(!UG_Filename) != ""
				install "Install-Update"
				ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
					goto fatal
				endif
			endif

			; Upgrade the version number
			;
			SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
			SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}

			;
			; do nothing for update
			;
			ifint $(Version) != $(ProductVersion)
				;
				; If the major version number is not the same,
				; it is major upgrade. So let Upgrade the product
				;
				;
				; make other upgrade change if necessary
				;
			endif
			CloseRegKey $(KeyProduct)
		else
			;
			; Cannot Open software key, goto ERROR
			;
			goto fatalregistry
		endif
	else
		;
		; 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
	endif

	goto end
	;
	; End of Upgrade Software
	;

;
;  Escape hatches
;
successful = +
	goto end

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

	set RegistryErrorIndex = $($R0)

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

	Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
		; Remove Software Component
		Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
			$(ProductSoftwareName), FALSE
		ifint $($ShellCode) != $(!SHELL_CODE_OK)
			Debug-Output "ShellCode error"
			goto ShellCodeError
		endif

		set RegistryErrorIndex = $($R0)

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

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

;
;  Registry is broken
;
fatalregistry = +
	Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		goto ShellCodeError
	endif
	set Error = $($R0)
	goto fatal
;
;  Netcard detection failure
;
fataldetect = +
	Shell $(UtilityInf), RegistryErrorString, "CANNOT_DETECT"
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
		Debug-Output "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        = $(ShellCodeErrorTitle)
	set STF_MB_TEXT         = $(ShellCodeErrorText)
	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 = +

	Return $(CommonStatus)

[DebugConfiguration]

	Set InfName = "OEMNANDC.INF"
	Debug-Output $(InfName)" **CONFIGURATION STATE: "$($0)
	Debug-Output $(InfName)" IRQ_Level is "$(!p:IRQ_Level)
	Debug-Output $(InfName)" IOBaseAddrValue is "$(!p:IOBaseAddrValue)
	Debug-Output $(InfName)" TransceiverValue is "$(!p:TransceiverValue)
	Debug-Output $(InfName)" MappedValue is "$(!p:MappedValue)

	return


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

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

		;
		; Add the files to the copy list
		;
		;  BUGBUG: eliminate the "nt2" in the next line when Sunil fixes
		;               the other INF files
		;
		AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
		AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)

	endif

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

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

	endif

	Exit

[Install-Update]
	set STF_VITAL           = ""
	set STF_OVERWRITE       = "VERIFYSOURCEOLDER"
	;set STF_VERSION                = "YES"

	AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
	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           = ""
	AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
	set !STF_NCPA_FLUSH_COPYLIST = TRUE
	CopyFilesInCopyList
	exit

;***************************************************************
;  Parameter SECTIONS
;***************************************************************

[Parm-ReadReg]
	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)

  ; resources
		ifstr(i) $(ValueName) == "IoBaseAddress"
			set IOBaseAddrItem = $(ValueData)
		else-ifstr(i) $(ValueName) == "InterruptNumber"
			set IRQValueItem = $(ValueData)
  ; general - combo
		else-ifstr(i) $(ValueName) == "DSChannel"
			set PHYParmItem = $(ValueData)
		else-ifstr(i) $(ValueName) == "NetworkType"
			set NetTypeItem = $(ValueData)
		else-ifstr(i) $(ValueName) == "TxRate"
			set TxRateItem = $(ValueData)
		else-ifstr(i) $(ValueName) == "AuthentAlg"
			set AuthenticationItem = $(ValueData)
		else-ifstr(i) $(ValueName) == "ListenInterval"
			set ListenIntervalItem = $(ValueData)
		else-ifstr(i) $(ValueName) == "RTSThresh"
			set RTSThreshItem = $(ValueData)
		else-ifstr(i) $(ValueName) == "FragThresh"
			set FragThreshItem = $(ValueData)
		else-ifstr(i) $(ValueName) == "PSMode"
			set PSModeItem = $(ValueData)
		else-ifstr(i) $(ValueName) == "WepReq"
			set WepReqItem = $(ValueData)
  ; checkbox
		else-ifstr(i) $(ValueName) == "Pcmcia"
			set PcmciaValue = $(ValueData)
  ; edit
		else-ifstr(i) $(ValueName) == "SSID"
			set SSIDValue = $(ValueData)

		endif

	EndForListDo


	ifint $(PcmciaValue) == 1
		set Chk1 = "ON"
	else
		set Chk1 = "OFF"
	endif

	set IOBaseAddrUIVal = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrItem)))
	ifstr(i) $(IOBaseAddrUIVal) == ""
		set IOBaseAddrUIVal = *($(IOBaseAddrList), 1)
	endif

	set IRQValueUIVal = *($(IRQList), ~($(IRQValues),$(IRQValueItem)))
	ifstr(i) $(IRQValueUIVal) == ""
		set IRQValueUIVal = *($(IRQList), 1)
	endif

	set PHYParmUIVal = *($(PHYParmList), ~($(PHYParmValues),$(PHYParmItem)))
	ifstr(i) $(PHYParmUIVal) == ""
		set PHYParmUIVal = *($(PHYParmList), 1)
	endif

	set NetTypeUIVal = *($(NetTypeList), ~($(NetTypeValues),$(NetTypeItem)))
	ifstr(i) $(NetTypeUIVal) == ""
		set NetTypeUIVal = *($(NetTypeList), 1)
	endif

	set TxRateUIVal = *($(TxRateList), ~($(TxRateValues),$(TxRateItem)))
	ifstr(i) $(TxRateUIVal) == ""
		set TxRateUIVal = *($(TxRateList), 1)
	endif

	set AuthenticationUIVal = *($(AuthenticationList), ~($(AuthenticationValues),$(AuthenticationItem)))
	ifstr(i) $(AuthenticationUIVal) == ""
		set AuthenticationUIVal = *($(AuthenticationList), 1)
	endif

	set ListenIntervalUIVal = *($(ListenIntervalList), ~($(ListenIntervalValues),$(ListenIntervalItem)))
	ifstr(i) $(ListenIntervalUIVal) == ""
		set ListenIntervalUIVal = *($(ListenIntervalList), 6)
	endif

	set RTSThreshUIVal = *($(RTSThreshList), ~($(RTSThreshValues),$(RTSThreshItem)))
	ifstr(i) $(RTSThreshUIVal) == ""
		set RTSThreshUIVal = *($(RTSThreshList), 6)
	endif

	set FragThreshUIVal = *($(FragThreshList), ~($(FragThreshValues),$(FragThreshItem)))
	ifstr(i) $(FragThreshUIVal) == ""
		set FragThreshUIVal = *($(FragThreshList), 6)
	endif

	set PSModeUIVal = *($(PSModeList), ~($(PSModeValues),$(PSModeItem)))
	ifstr(i) $(PSModeUIVal) == ""
		set PSModeUIVal = *($(PSModeList), 1)
	endif

	set WepReqUIVal = *($(WepReqList), ~($(WepReqValues),$(WepReqItem)))
	ifstr(i) $(WepReqUIVal) == ""
		set WepReqUIVal = *($(WepReqList), 1)
	endif

	;  Save the settings as they were read from the Registry.
exit

[Parm-UI-values]
		set IOBaseAddrUIVal             = $(Combo1Out)
		set IRQValueUIVal               = $(Combo2Out)
		set TxRateUIVal                 = $(Combo3Out)
		set PHYParmUIVal                = $(Combo4Out)
		set NetTypeUIVal                = $(Combo5Out)
		set RTSThreshUIVal              = $(Combo6Out)
		set FragThreshUIVal             = $(Combo7Out)
		set PSModeUIVal                 = $(Combo8Out)
		set WepReqUIVal                 = $(Combo9Out)
		set AuthenticationUIVal             = $(Combo10Out)
		set ListenIntervalUIVal = $(Combo11Out)

		set SSIDValue                   = *($(EditTextOut),1)

		Set Chk = *($(CheckItemsOut), 1)
		Ifstr(i) $(Chk) == "ON"
			Set PcmciaValue = 1
			set Chk1 = "ON"
		Else
			Set PcmciaValue = 0
			set Chk1 = "OFF"
		Endif
exit
[Parm-WriteReg]

	Debug-Output "Starting Parm-WriteReg."

	set IOBaseAddrValue             = *($(IOBaseAddrValues), ~($(IOBaseAddrList),$(IOBaseAddrUIVal)))
	set IRQValue                    = *($(IRQValues), ~($(IRQList),$(IRQValueUIVal)))
	set PHYParmValue                = *($(PHYParmValues), ~($(PHYParmList),$(PHYParmUIVal)))
	set NetTypeValue                = *($(NetTypeValues), ~($(NetTypeList),$(NetTypeUIVal)))
	set TxRateValue                 = *($(TxRateValues), ~($(TxRateList),$(TxRateUIVal)))
	set AuthenticationValue             = *($(AuthenticationValues), ~($(AuthenticationList),$(AuthenticationUIVal)))
	set ListenIntervalValue = *($(ListenIntervalValues), ~($(ListenIntervalList),$(ListenIntervalUIVal)))
	set RTSThreshValue              = *($(RTSThreshValues), ~($(RTSThreshList),$(RTSThreshUIVal)))
	set FragThreshValue             = *($(FragThreshValues), ~($(FragThreshList),$(FragThreshUIVal)))
	set PSModeValue                 = *($(PSModeValues), ~($(PSModeList),$(PSModeUIVal)))
	set WepReqValue                 = *($(WepReqValues), ~($(WepReqList),$(WepReqUIVal)))


	ifstr(i) $(IRQValueUIVal) == "n/a"
;
;       If n/a then don't write InterruptNumber registry value.
;
		set NetValueList = {+
				{MediaType,             $(NoTitle),$(!REG_VT_DWORD),1},+
				{BusNumber,             $(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
				{BusType,               $(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
				{IoBaseAddress, $(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
				{IoLength,              $(NoTitle),$(!REG_VT_DWORD),64},+
				{Pcmcia,                $(NoTitle),$(!REG_VT_DWORD),$(PcmciaValue)},+
				{MajorVersion,  $(NoTitle),$(!REG_VT_SZ),2},+
				{MinorVersion,  $(NoTitle),$(!REG_VT_SZ),0},+
				}
	else
		set NetValueList = {+
				{MediaType,             $(NoTitle),$(!REG_VT_DWORD),1},+
				{BusNumber,             $(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
				{BusType,               $(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
				{IoBaseAddress, $(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
				{IoLength,              $(NoTitle),$(!REG_VT_DWORD),64},+
				{InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
				{Pcmcia,                $(NoTitle),$(!REG_VT_DWORD),$(PcmciaValue)},+
;                               {MajorVersion,  $(NoTitle),$(!REG_VT_SZ),2},+
;                               {MinorVersion,  $(NoTitle),$(!REG_VT_SZ),0},+
				}
	endif
	set PRISMValueList = {+
			{SSID,                  $(NoTitle),$(!REG_VT_SZ),       $(SSIDValue)},+
			{WEP64_KEY_1,           $(NoTitle),$(!REG_VT_SZ),       "0000000000"},+
			{WEP64_KEY_2,           $(NoTitle),$(!REG_VT_SZ),       "0000000000"},+
			{WEP64_KEY_3,           $(NoTitle),$(!REG_VT_SZ),       "0000000000"},+
			{WEP64_KEY_4,           $(NoTitle),$(!REG_VT_SZ),       "0000000000"},+
			{WEP128_KEY_1,          $(NoTitle),$(!REG_VT_SZ),       "00000000000000000000000000"},+
			{WEP128_KEY_2,          $(NoTitle),$(!REG_VT_SZ),       "00000000000000000000000000"},+
			{WEP128_KEY_3,          $(NoTitle),$(!REG_VT_SZ),       "00000000000000000000000000"},+
			{WEP128_KEY_4,          $(NoTitle),$(!REG_VT_SZ),       "00000000000000000000000000"},+
			{CurProfile,            $(NoTitle),$(!REG_VT_SZ),       "default"},+
			{RTSThresh,             $(NoTitle),$(!REG_VT_DWORD),$(RTSThreshValue)},+
			{FragThresh,    $(NoTitle),$(!REG_VT_DWORD),$(FragThreshValue)},+
;                       {Encapsulation, $(NoTitle),$(!REG_VT_DWORD),$(EthConvValue)},+
			{TxRate,                $(NoTitle),$(!REG_VT_DWORD),$(TxRateValue)},+
			{WepReq,                $(NoTitle),$(!REG_VT_DWORD),$(WepReqValue)},+
			{AuthentAlg,    $(NoTitle),$(!REG_VT_DWORD),$(AuthenticationValue)},+
			{ListenInterval,$(NoTitle),$(!REG_VT_DWORD),$(ListenIntervalValue)},+
;                       {DecryptInDriver,$(NoTitle),$(!REG_VT_DWORD),$(DecryptInDriverValue)},+
;                       {EncryptInDriver,$(NoTitle),$(!REG_VT_DWORD),$(EncryptInDriverValue)},+
;                       {WEPFactor,             $(NoTitle),$(!REG_VT_DWORD),$(WEPFactorValue)},+
;                       {PollInDriver,  $(NoTitle),$(!REG_VT_DWORD),$(PollInDriverValue)},+
;                       {IBSSInDriver,  $(NoTitle),$(!REG_VT_DWORD),$(IBSSInDriverValue)},+
			{PreambleMode,  $(NoTitle),$(!REG_VT_DWORD),$(PreambleModeValue)},+
			}
	set NetTypeValueList = {+
			{NetworkType,   $(NoTitle),$(!REG_VT_DWORD),$(NetTypeValue)},+
			{PSMode,                $(NoTitle),$(!REG_VT_DWORD),$(PSModeValue)},+
;                       {PSLevel,               $(NoTitle),$(!REG_VT_DWORD),$(PSLevelValue)},+
			}
	set PHYTypeValueList = {+
			{DSChannel,             $(NoTitle),$(!REG_VT_DWORD),$(PHYParmValue)},+
			}

;       Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
exit

;***************************************************************
;  Symbol SECTIONS
;***************************************************************

[ProductType]
	STF_PRODUCT  = Winnt
	STF_PLATFORM = I386

[Files-Inf]
	1, oemsetup.inf, SIZE=40558, RENAME=$(!UG_Filename)

[Files-PRISM2_5_PCMCIA]
	1, WLPCND4.sys, SIZE=12800

[Files-Dll]
	1, WLPC.dll , SIZE=7168
	1, CheckDLL.dll , SIZE=7168

[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:"

	FunctionTitle           = $(GenericAdapterName)" Setup"

	ProductSoftwareDescription      = $(GenericDriverName)
	ProductHardwareDescription      = $(GenericAdapterName)

	ProductSoftwareTitle            = $(GenericDriverName)
	ProductHardwareTitle            = $(GenericAdapterName)

	DialogDllName           = "WLPC.dll"

	IOBaseAddrList          = ^(IOBaseAddrChoices, 1)
	IOBaseAddrValues        = ^(IOBaseAddrChoices, 2)

;       IRQList                         = ^(IRQChoices, 1)
;       IRQValues                       = ^(IRQChoices, 2)

	DSChanList                      = ^(DSChanChoices, 1)
	DSChanValues            = ^(DSChanChoices, 2)

	STA_NetTypeList         = ^(STA_NetTypeChoices, 1)
	STA_NetTypeValues       = ^(STA_NetTypeChoices, 2)

	STA_TxRateList          = ^(STA_TxRateChoices, 1)
	STA_TxRateValues        = ^(STA_TxRateChoices, 2)

	STA_AuthenticationList      = ^(STA_AuthenticationChoices, 1)
	STA_AuthenticationValues= ^(STA_AuthenticationChoices, 2)

	STA_ListenIntervalList  = ^(STA_ListenIntervalChoices, 1)
	STA_ListenIntervalValues= ^(STA_ListenIntervalChoices, 2)

	RTSThreshList           = ^(RTSThreshChoices, 1)
	RTSThreshValues         = ^(RTSThreshChoices, 2)

	FragThreshList          = ^(FragThreshChoices, 1)
	FragThreshValues        = ^(FragThreshChoices, 2)

	STA_PSModeList          = ^(STA_PSModeChoices, 1)
	STA_PSModeValues        = ^(STA_PSModeChoices, 2)

	WepReqList                      = ^(WepReqChoices, 1)
	WepReqValues            = ^(WepReqChoices, 2)

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

;[MemoryMappedChoicesENG]
;       Map_1                           = 1, "ON"
;       Map_2                           = 0, "OFF"

[FileDependentDlgENG]
	DlgText                         = "Please select values for the follwing fields:"

	DlgType                         = "RadioCombination"
	DlgTemplate                     = "CW10"
	Caption                         = $(FunctionTitle)

	CBOptionsGreyed         = {}
	NotifyFields            = {NO, NO}
	HelpContext                     = $(!IDH_DB_OEMNADE2_INS)

	Combo1Label                     = "I/O Base:"
	Combo2Label                     = "IRQ Level:"
	Combo3Label                     = "Tx Rate:"
	Combo4Label                     = $(PHYParmLabel)
	Combo5Label                     = "Mode:"
	Combo6Label                     = "RTS Threshold:"
	Combo7Label                     = "Fragmentation Threshold"
	Combo8Label                     = "Power Saving:"
	Combo9Label                     = "Encryption:"
	Combo10Label            = "Authentication:"
	Combo11Label            = "Listen Interval:"

	Edit1Label                      = "SS ID:"

	CheckBox1                       = "PCMCIA card"

	Combo1List                      = $(IOBaseAddrList)
	Combo1Out                       = $(IOBaseAddrUIVal)

	Combo2List                      = $(IRQList)
	Combo2Out                       = $(IRQValueUIVal)

	Combo3List                      = $(TxRateList)
	Combo3Out                       = $(TxRateUIVal)

	Combo4List                      = $(PHYParmList)
	Combo4Out                       = $(PHYParmUIVal)

	Combo5List                      = $(NetTypeList)
	Combo5Out                       = $(NetTypeUIVal)

	Combo6List                      = $(RTSThreshList)
	Combo6Out                       = $(RTSThreshUIVal)

	Combo7List                      = $(FragThreshList)
	Combo7Out                       = $(FragThreshUIVal)

	Combo8List                      = $(PSModeList)
	Combo8Out                       = $(PSModeUIVal)

	Combo9List                      = $(WepReqList)
	Combo9Out                       = $(WepReqUIVal)

	Combo10List                     = $(AuthenticationList)
	Combo10Out                      = $(AuthenticationUIVal)

	Combo11List                     = $(ListenIntervalList)
	Combo11Out                      = $(ListenIntervalUIVal)

	ComboListItemsIn        = {Combo1List,Combo2List,Combo3List,+
							Combo4List, Combo5List, Combo6List,+
							Combo7List, Combo8List, Combo9List,+
							Combo10List, Combo11List+
							}
	ComboListItemsOut       = {Combo1Out,Combo2Out,Combo3Out,+
							Combo4Out, Combo5Out, Combo6Out,+
							Combo7Out, Combo8Out, Combo9Out,+
							Combo10Out, Combo11Out+
							}

	EditTextIn                      = {$(SSIDValue)}
	EditTextLim                     = {"32"}

	CheckItemsIn            = {$(Chk1)}

[IOBaseAddrChoices]
	IOBase_1                        = "4000",16384
	IOBase_2                        = "5000",20480
	IOBase_3                        = "6000",24576
	IOBase_4                        = "7000",28672
	IOBase_5                        = "8000",32768
	IOBase_6                        = "9000",36864
	IOBase_7                        = "A000",40960
	IOBase_8                        = "B000",45056
	IOBase_9                        = "C000",49152
	IOBase_10                       = "D000",53248
	IOBase_19                       = "180",384
	IOBase_11                       = "200",512
	IOBase_12                       = "240",576
	IOBase_13                       = "280",640
	IOBase_14                       = "2C0",714
	IOBase_15                       = "300",768
	IOBase_16                       = "340",832
	IOBase_17                       = "380",896
	IOBase_18                       = "3C0",960

[IRQChoices]
	IRQ_3                           = "3",3
	IRQ_4                           = "4",4
	IRQ_5                           = "5",5
	IRQ_7                           = "7",7
	IRQ_9                           = "9",9
	IRQ_10                          = "10",10
	IRQ_11                          = "11",11
	IRQ_12                          = "12",12
	IRQ_15                          = "15",15
	IRQ_na                          = "n/a",0

[IRQPciChoices]
	IRQ_pci                         = "n/a",0

[DSChanChoices]
	DSCHAN_1                        = "1",1
	DSCHAN_2                        = "2",2
	DSCHAN_3                        = "3",3
	DSCHAN_4                        = "4",4
	DSCHAN_5                        = "5",5
	DSCHAN_6                        = "6",6
	DSCHAN_7                        = "7",7
	DSCHAN_8                        = "8",8
	DSCHAN_9                        = "9",9
	DSCHAN_10                       = "10",10
	DSCHAN_11                       = "11",11

[STA_NetTypeChoices]
	NETTYPE_ADHOC           = "Ad Hoc",0
	NETTYPE_INFRA           = "Infrastructure",1

[STA_TxRateChoices]
	TXRATE_1                        = "1 Mb/s", 1
	TXRATE_2                        = "2 Mb/s", 2
	TXRATE_1_2                      = "Auto 1 or 2 Mb/s", 3
	TXRATE_55                       = "5.5 Mb/s", 4
	TXRATE_11                       = "11 Mb/s", 8
	TXRATE_ALL                      = "Fully Auto", 15

[STA_AuthenticationChoices]
	AUTHEN_OPEN                     = "Open System", 1
	AUTHEN_SHARE                    = "Shared Key", 2
	AUTHEN_AUTO                     = "Auto", 65535

[STA_ListenIntervalChoices]
	LISTENINT_1                     = "1 Beacon Per", 1
	LISTENINT_2                     = "2 Beacon Per", 2
	LISTENINT_3                     = "3 Beacon Per", 3
	LISTENINT_4                     = "4 Beacon Per", 4
	LISTENINT_5                     = "5 Beacon Per", 5
	LISTENINT_M                     = "Maximum", 1

[STA_PSModeChoices]
	PS_DIS                          = "Disabled", 1
	PS_EN                           = "Enabled", 2

[RTSThreshChoices]
	RTSTHRESH_256           = "Always", 0
	RTSTHRESH_256           = "256 Bytes", 256
	RTSTHRESH_512           = "512 Bytes", 512
	RTSTHRESH_768           = "768 Bytes", 768
	RTSTHRESH_1024          = "1024 Bytes", 1024
	RTSTHRESH_1280          = "1280 Bytes", 1280
	RTSTHRESH_DIS           = "Disabled", 2432

[FragThreshChoices]
	FRAGTHRESH_256          = "256 Bytes", 256
	FRAGTHRESH_512          = "512 Bytes", 512
	FRAGTHRESH_768          = "768 Bytes", 768
	FRAGTHRESH_1024         = "1024 Bytes", 1024
	FRAGTHRESH_1280         = "1280 Bytes", 1280
	FRAGTHRESH_DIS          = "Disabled", 2432

[WepReqChoices]
	WEP_DIS                         = "Disabled", 0
	WEP_MAN                         = "64 bits", 2
	WEP_EHN                         = "128 bits", 6

[STA_List]
	"PRISM2_5_PCMCIA"

[DS_List]
	"PRISM2_5_PCMCIA"


[ExCreateRegKey]
	Debug-Output "******************Entering [ExCreateRegKey]******************"
	set ECR_Result                  = NO_ERROR
	set ECR_BaseKeyHandle   = $($0)
	set ECR_NewPath                 = $($1)
	set KeyNull                             = ""
	set MAXIMUM_ALLOWED             = 33554432
	Debug-Output "ExCreateRegKey - ECR_BaseKeyHandle = "$(ECR_BaseKeyHandle)
	Debug-Output "					ECR_NewPath = "$(ECR_NewPath)
	Debug-Output "					MAXIMUM_ALLOWED = "$(MAXIMUM_ALLOWED)
	Debug-Output "					KeyNull = "$(KeyNull)
	OpenRegKey $(ECR_BaseKeyHandle) "" $(ECR_NewPath) $(MAXIMUM_ALLOWED) +
			ECR_BaseKey
	Debug-Output "ECR_BaseKey = "$(ECR_BaseKey)
	Debug-Output "	OpenRegKey returned "$($R0)
	Ifstr $(ECR_BaseKey) == $(KeyNull)
		Debug-Output "ECR_BaseKey == KeyNull"
	Else
		Debug-Output "ECR_BaseKey != KeyNull"
		set ECR_KeyHandle = $(ECR_BaseKey)
		goto  ECR_Return
	Endif
	set ECR_TmpPath = ""
	Split-String $(ECR_NewPath) "\" ECR_PList
	Debug-Output "ECR_PList = "$(ECR_PList)
	ForListDo $(ECR_PList)
	Ifstr(i) $($) != "\"
		Ifint $(#) == 1
			set ECR_TmpPath = $($)
		Else
			set ECR_TmpPath = $(ECR_TmpPath)"\"$($)
		Endif
		Debug-Output "Determining if "$(ECR_TmpPath)" exists"
		OpenRegKey $(ECR_BaseKeyHandle) "" $(ECR_TmpPath) $(MAXIMUM_ALLOWED) ECR_BaseKey
		Ifstr $(ECR_BaseKey) == $(KeyNull)
			Debug-Output "Creating "$(ECR_TmpPath)
			CreateRegKey $(ECR_BaseKeyHandle)  {$(ECR_TmpPath),0,GenericClass} "" $(MAXIMUM_ALLOWED) "" ECR_KeyHandle
			Ifstr(i) $(ECR_KeyHandle) == $(KeyNull)
				set ECR_Result = $($R0)
				goto ECR_Return
			Endif
		Endif
	Endif
	EndForListDo
ECR_Return = +
	return $(ECR_Result) $(ECR_KeyHandle)

;***************************************************************
;  Default SECTIONS
;***************************************************************

[PCI-Defaults]
	set PollInDriverValue   = 1
	set IRQValueUIVal               = "n/a"
	set IRQList                     = ^(IRQPciChoices, 1)
	set IRQValues                   = ^(IRQPciChoices, 2)
exit

[PCMCIA-Defaults]
	set PollInDriverValue   = 0
	set IRQValueUIVal               = "7"
	set IRQList                     = ^(IRQChoices, 1)
	set IRQValues                   = ^(IRQChoices, 2)
exit

[Read-Defaults]
	;  set the default values

	; I/O Base Address              = 0x240
	set IOBaseAddrUIVal             = "240"

	; IRQ Level = 9
;       set IRQValueUIVal               = "7"

	; PcmciaValue = 0/1
	set PcmciaValue                 = 1
	set Chk1                                = "ON"

	; Ethernet conversion mode = "Encapsulated"/"RFC1042"/"802.1h"
;       set EthConvValue                = "802.1h"
	set EthConvValue                = 1

	; Station Mode related default values
	set PSLevelValue                = 0;

	; Power Save Mode = "Disabled"/"Basic"/"Enhanced"
	set PSModeList                  = $(STA_PSModeList)
	set PSModeValues                = $(STA_PSModeValues)
	set PSModeUIVal                 = "Disabled"

	; configure as infrastructure station
	set NetTypeList                 = $(STA_NetTypeList)
	set NetTypeValues               = $(STA_NetTypeValues)
	set NetTypeUIVal                = "Infrastructure"

	; configure for 11 Mb/s default
	set TxRateList                  = $(STA_TxRateList)
	set TxRateValues                = $(STA_TxRateValues)
;       set TxRateUIVal                 = "2 Mb/s"
	set TxRateUIVal                 = "Fully Auto"

	; configure for Authentication Open System
	set AuthenticationList                      = $(STA_AuthenticationList)
	set AuthenticationValues            = $(STA_AuthenticationValues)
	set AuthenticationUIVal                     = "Auto"

	; configure for Listen interval at MAX
	set ListenIntervalList                  = $(STA_ListenIntervalList)
	set ListenIntervalValues                = $(STA_ListenIntervalValues)
	set ListenIntervalUIVal                 = "3 Beacon Per"

	; configure for RTS/CTS disabled
	set RTSThreshList               = $(RTSThreshList)
	set RTSThreshValues             = $(RTSThreshValues)
	set RTSThreshUIVal              = "Disabled"

	; configure for Fragmentation disabled
	set FragThreshList              = $(FragThreshList)
	set FragThreshValues    = $(FragThreshValues)
	set FragThreshUIVal             = "Disabled"

	; configure for WEP Disabled
	set WepReqList                  = $(WepReqList)
	set WepReqValues                = $(WepReqValues)
	set WepReqUIVal                 = "Disabled"

	; PHY parameters DS
	set PHYParmName                 = "DSChannel";
	set PHYParmList                 = $(DSChanList)
	set PHYParmValues               = $(DSChanValues)
	set PHYParmUIVal                = "6"
	set PHYParmLabel                = "DS Channel:"

	; Decryption to be done in Driver flag
	set DecryptInDriverValue                = 1;

	; Encryption to be done in Driver flag
	set EncryptInDriverValue                = 1;

	; WEP Factor value
	set WEPFactorValue              = 3;

	; IBSS to be managed by Driver flag
	set IBSSInDriverValue   = 0;

	; Set Preamble mode to Long=1
	set PreambleModeValue   = 1;

	; default SSID - to be customized by OEM customer
	set SSIDValue                   = "any"

exit
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: ftp, load: 1.75