Oemsetup.inf Driver File Contents (800UA.zip)

;//  Copyright 1996-2000,  AdvanceNet Systems, Inc.
;Provided by AME


[Options]
   ATM_NIC_1
   LANE                                               ; don't change this option name!
   PPP                                                ; don't change this option name!


[OptionsTextENG]
   ATM_NIC_1                 = "<WipDeviceDesc>"
   LANE                      = "RFC1483 LAN Services"
   PPP                       = "Remote PPP over ATM Services"


[VendorSpecs]
   ;===========================================================================
   ;
   ;  NOTE TO NIC VENDORS:
   ;     The definitions immediately following MUST be customized by each vendor!!!
   ;
   ;       1. "NicManufacturer" is the name of your company.  Short names or
   ;          acronyms are the best choice for the various dialog boxes from
   ;          which your name will be displayed.
   ;       2. "NicProductFullName" is the name by which your ATM NIC product 
   ;          will be shown to customers on the network control panel.
   ;       3. "NicProductName" is a one-word name by which your ATM NIC product 
   ;          will be known.  Please use only alpha-numeric characters; this
   ;          name CANNOT include spaces, underscores, or any other special
   ;          characters.  This name must be unique within the family of hardware
   ;          supported by WinATM drivers.
   ;       4. "AtmDriver" is the filename of the ATM driver (.SYS file) that
   ;          supports your NIC.
   ;
   ;===========================================================================

   NicManufacturer           = "<WipProviderName>"
   NicProductFullName        = "<WipDeviceDesc>"
   NicProductName            = "ADSLModem"
   AtmDriver                 = "amemodem.sys"

   AtmDriverMajorVersion     = "1"
   AtmDriverMinorVersion     = "20"

   VendorNicParmList         = {{Inf_EsiRequired,   $(NoTitle), $(!REG_VT_SZ), "0"},+
                                {Inf_atmUniVersion, $(NoTitle), $(!REG_VT_SZ), "20"},+
                                {Inf_numEndpoints,  $(NoTitle), $(!REG_VT_SZ), "64"}}
   VendorLaneParmList        = {{524323,            $(NoTitle), $(!REG_VT_SZ), "vpi=8/vci=35/aal=5/encap=ethllcnfs/scat=ubr/pr=max"},+
                                {PVCList,           $(NoTitle), $(!REG_VT_SZ), "524323"}}
   VendorWaneParmList        = {{dummy,             $(NoTitle), $(!REG_VT_SZ), ""}}


[CopyFilesList_root]
   1, "firmware.bin",        DESTINATION=$(!STF_WINDOWSPATH)
   1, "init.bin",            DESTINATION=$(!STF_WINDOWSPATH)
;   1, "Amecsa.hlp",          DESTINATION=$(!STF_WINDOWSSYSPATH)
;   1, "AmeCSA.cpl",          DESTINATION=$(!STF_WINDOWSSYSPATH)

[CopyFilesList_winnt]
   1, $(DriverSysFile),      DESTINATION=$(!STF_WINDOWSSYSPATH)"\drivers"


;==============================================================================
;
;  NOTE TO NIC VENDORS:
;     Do not modify this file below this point!  It is not only hazardous to
;     correct operation of WinATM Lite, but it could be a violation of our
;     copyright.  Please contact AdvanceNet Systems for more information,
;
;==============================================================================

[CopyFilesList_LANE]
   1, "ame1483n.sys",       DESTINATION=$(!STF_WINDOWSSYSPATH)"\drivers"


[CopyFilesList_WANE]
   1, "amepppn.sys",        DESTINATION=$(!STF_WINDOWSSYSPATH)"\drivers"


;// return codes used herein
   ; STATUS_SUCCESSFUL
   ; STATUS_FAILED
   ; STATUS_NOLANGUAGE
   ; STATUS_USERCANCEL
   ; STATUS_NOT_FOUND
   ; STATUS_REBOOT


[Identify]
   set Status = STATUS_SUCCESSFUL
   set identifier = NetAdapter
   set media = #("Source Media Descriptions", 1, 1)
   return $(Status) $(identifier) $(media)


[LanguagesSupported]
   ENG


[ReturnOptions]
   set LanguageList = ^(LanguagesSupported, 1)
   ifcontains(i) $($0) in $(LanguageList)
      set Status = STATUS_SUCCESSFUL
      set OptionList = ^(Options, 1)
      set OptionTextList = ^(OptionsText$($0), 1)
   else
      set Status = STATUS_NOLANGUAGE
      set OptionList = {}
      set OptionTextList = {}
   endif
   return $(Status) $(OptionList) $(OptionTextList)


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


[CopyFiles_NIC]
   set !STF_OVERWRITE  = "OLDER"
   CreateDir $(!STF_WINDOWSPATH)"\DSLMODEM"
   ;// dummy destination directory - superceeded by [CopyFilesList_xxx]
   AddSectionFilesToCopyList CopyFilesList_root     $(SourceDir)           "."
   AddSectionFilesToCopyList CopyFilesList_winnt    $(SourceDir)	   "."
   CopyFilesInCopyList
   Exit


[CopyFiles_LANE]
   set !STF_OVERWRITE  = "OLDER"
   ;// dummy destination directory - superceeded by [CopyFilesList_xxx]
   AddSectionFilesToCopyList CopyFilesList_LANE     $(SourceDir)	  "."
   CopyFilesInCopyList
   Exit


[CopyFiles_WANE]
   set !STF_OVERWRITE  = "OLDER"
   ;// dummy destination directory - superceeded by [CopyFilesList_xxx]
   AddSectionFilesToCopyList CopyFilesList_WANE     $(SourceDir)	  "."
   CopyFilesInCopyList
   Exit


[Source Media Descriptions]
   1 = "<WipDeviceDesc> Setup Disk #1", TAGFILE = winatm.001

[AtmNicSymbols]
   Manufacturer              = $(NicManufacturer)
   ProductName               = "WinATM_"$(NicProductName)
   DriverSysFile             = $(AtmDriver)
   MajorVer                  = $(AtmDriverMajorVersion)
   MinorVer                  = $(AtmDriverMinorVersion)

   AdapterTitle              = $(NicProductFullName)" ATM/ADSL Adapter"
   AdapterDesc               = $(Manufacturer)" "$(AdapterTitle)
   DriverTitle               = $(NicProductFullName)" ATM/ADSL Transport/Driver"
   DriverDesc                = "Driver and transport protocol for "$(AdapterDesc)
   AdapterServiceBase        = "WinATM_dev"

   UpperClass                = "WinATM_Transport"
   AdapterBindformSuffix     = " yes yes simple"
   DriverBindformSuffix      = " yes yes simple"
   DriverSoftwareTypeDef     = "transport"
   DriverUseDef              = ""

   VendorParmList            = $(VendorNicParmList)
   AdvanceNetParmList        = {{Inf_InstallState,  $(NoTitle), $(!REG_VT_SZ), "0"},+
                                {Inf_atmUniVersion, $(NoTitle), $(!REG_VT_SZ), "20"},+
                                {Inf_numEndpoints,  $(NoTitle), $(!REG_VT_SZ), "64"}}


[LaneSymbols]
   Manufacturer              = $(AdvanceNet)
   ProductName               = "WinATM_LANE"
   DriverSysFile             = "ame1483n.sys"
   MajorVer                  = "1"
   MinorVer                  = "20"

   AdapterTitle              = "RFC1483 LAN Services"
   AdapterDesc               = $(AdvanceNet)" "$(AdapterTitle)
   DriverTitle               = $(AdapterTitle)" Driver"
   DriverDesc                = "Driver for "$(AdapterDesc)
   AdapterServiceBase        = "WinATM_dev"

   UpperClass                = "ndisDriver"
   AdapterBindformSuffix     = " yes yes container"
   DriverBindformSuffix      = " yes no container"
   DriverSoftwareTypeDef     = "driver"
   DriverUseDef              = "driver"

   VendorParmList            = $(VendorLaneParmList)
   AdvanceNetParmList        = {{dummy,$(NoTitle),$(!REG_VT_SZ),""}}


[WaneSymbols]
   Manufacturer              = $(AdvanceNet)
   ProductName               = "WATM_PPP"
   DriverSysFile             = "amepppn.sys"
   MajorVer                  = "1"
   MinorVer                  = "20"

   AdapterTitle              = "Remote PPP over ATM Services"
   AdapterDesc               = $(Manufacturer)" "$(AdapterTitle)
   DriverTitle               = $(AdapterTitle)" Driver"
   DriverDesc                = "Driver for "$(AdapterDesc)
   AdapterServiceBase        = $(ProductName)                   ;; required because of bug in ndiswan.sys bind parameters

   UpperClass                = ""
   AdapterBindformSuffix     = " yes yes container"
   DriverBindformSuffix      = " yes no container"
   DriverSoftwareTypeDef     = "driver"
   DriverUseDef              = "driver"

   VendorParmList            = $(VendorWaneParmList)
   AdvanceNetParmList        = {{dummy,$(NoTitle),$(!REG_VT_SZ),""}}


[CommonSymbols]
   InterfaceProductName      = "WinATM"
   DriverImage               = "\SystemRoot\System32\drivers\"$(DriverSysFile)
   NicDriverService          = "WinATM_"$(NicProductName)
   LaneDriverService         = "WinATM_LANE"
   WaneDriverService         = "WATM_PPP"
   DriverService             = $(ProductName)
   DriverService2            = """"$(DriverService)""""
   InterfaceService          = "WinATM_Interface"
   InterfaceService2         = """"$(InterfaceService)""""

   AdapterClass              = $(ProductName)"_Adapter"
   DriverClass               = $(ProductName)"_Driver"
   AdapterTypeDef            = $(ProductName)" "$(AdapterClass)
   AdapterClassDef           = {$(AdapterClass)" basic"}
   DriverTypeDef             = $(ProductName)"_Sys "$(UpperClass)" "$(DriverClass)
   DriverClassDef            = {$(DriverClass)" basic"}
   DriverBindableDef         = {$(DriverClass)" "$(AdapterClass)" non exclusive 100"}
   InterfaceTypeDef          = "WinATM WinATM_Interface"
   InterfaceClassDef         = {"WinATM_Interface basic", "WinATM_Transport basic"}
   InterfaceBindableDef      = {"WinATM_Interface WinATM_Transport non exclusive 100"}
   InterfaceBindformSuffix   = " yes yes simple"

   ProductKeyName            = "SOFTWARE\"$(Manufacturer)"\"$(ProductName)"\CurrentVersion"
   InterfaceKeyName          = "SOFTWARE\"$(AdvanceNet)"\"$(InterfaceProductName)"\CurrentVersion"
   ServicesRoot              = "SYSTEM\CurrentControlSet\Services\"
   KeyNull                   = ""

   KeyWinATMService          = $(KeyNull)
   KeyWinATMLinkage          = $(KeyNull)
   KeyProduct                = $(KeyNull)
   KeyDependentService       = $(KeyNull)
   KeyLaneService            = $(KeyNull)
   KeyWaneService            = $(KeyNull)
   SoftProductKey            = $(KeyNull)
   SoftNetRuleKey            = $(KeyNull)
   SoftServiceKey            = $(KeyNull)
   SoftParameterKey          = $(KeyNull)
   SoftLinkageKey            = $(KeyNull)
   KeyNetcard                = $(KeyNull)
   KeyAdapterRules           = $(KeyNull)
   KeyParameters             = $(KeyNull)
   KeyTapiDevice             = $(KeyNull)
   KeySoftwareWindows        = $(KeyNull)

   FlagAbandonAdapter        = FALSE
   FlagAbandonDriver         = FALSE
   FlagAbandonInterface      = FALSE
   AbandonedOption           = ""

   ProCaption                = $(AdapterTitle)" Setup"
   ProText1                  = "Copying:"
   ProText2                  = "To:"
   ProCancel                 = "Cancel"
   ProCancelCap              = $(AdapterTitle)" Setup Message"
   ProCancelMsg              = $(AdapterTitle)" is not completely installed.  Are you sure you want "+
                               "to cancel copying files?"


[StringsENG]
   StringInstallAtmFirst     = "An ATM/ADSL adapter must first be installed on your system."
   StringDoBind              = "No ATM/ADSL adapter device is bound in the Windows NT network model.  If you recently installed an ATM adapter, then select the 'Bindings' button or tab of the control panel networking applet to correct this problem.  After doing that, please retry adding RFC1483 LAN or Remote PPP Services."
   StringInstallNext         = "TIP:  After the ATM/ADSL adapter is bound, install RFC1483 LAN or Remote PPP Services (using 'Add Adapter') to use your existing networking protocols with ATM."
   StringConfirmAtmRemoval   = "You are attempting to remove an ATM/ADSL adapter while at least one instance of RFC1483 LAN or Remote PPP Services exists on your system.  Any instance of RFC1483 LAN or Remote PPP Services that depends on the ATM/ADSL adapter being removed will become inoperable.  Do you wish to continue with this removal?"
   StringReboot1             = "Please reboot your system - Windows NT networking control panel has become confused because you just deleted the adapter that you are now attempting to add."
   StringInstallRAS          = "If you have not already done so, install Microsoft's Remote Access Services (using 'Add Software' or 'Add Services') before rebooting your system."
   StringConfigRAS           = "Also, you must configure Remote Access Services to add 'WATM_PPP' as a port device before rebooting your system."


;==============================================================================
;
;  This is the main entry point for Install, Remove, and Config operations.
;
;==============================================================================

[InstallOption]
   set OEM_DEBUG = OFF                                     ; set to either ON or OFF
   ;
   ;// this section is called with the following input parameters:
   ;      $0 = Language to use (such as "ENG")
   ;      $1 = OptionID to install
   ;      $2 = SourceDirectory
   ;      $3 = AddCopy  (YES | NO)
   ;      $4 = DoCopy   (YES | NO)
   ;      $5 = DoConfig (YES | NO)
   ;
   ;// this section is called with the following globals already initialized:
   ;      !STF_WINDOWSPATH        = Windows Nt Directory
   ;      !STF_WINDOWSSYSPATH     = Windows NT System32 Directory
   ;      STF_CONTEXTINFNAME      = path and filename of this INF file
   ;      !NTN_InstallMode        = user action:  "install", "deinstall", "configure", or "update"
   ;      !NTN_RegBase            = the registry key name for this product

   set Option      = $($1)
   set SourceDir   = $($2)
   set DoCopy      = $($4)

   Split-String $(STF_CONTEXTINFNAME) "\" inftoks
   QueryListSize numtoks $(inftoks)
   set thisInf = *($(inftoks),$(numtoks))

   ; build local symbol table
   set Status = STATUS_FAILED
   set AdvanceNet = "AdvanceNet"
   Read-Syms VendorSpecs
   ifstr $(Option) == "LANE"
      Read-Syms LaneSymbols
   else
      ifstr $(Option) == "PPP"
         Read-Syms WaneSymbols
      else
         Read-Syms AtmNicSymbols
      endif
   endif
   Read-Syms CommonSymbols
   Read-Syms StringsENG

   ; we will need access to the WinATM_Interface key
   OpenRegKey $(!REG_H_LOCAL) "" $(ServicesRoot)"WinATM_Interface" $(!REG_KEY_ALL_ACCESS) KeyWinATMService

   ifstr $(OEM_DEBUG) == ON
      shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" +
      "Option="$(Option)"  SourceDir="$(SourceDir)"  DoCopy="$(DoCopy)$(!LF)+
      "thisInf="$(thisInf)"  NTN_InstallMode="$(!NTN_InstallMode)$(!LF)+
      "NTN_RegBase="$(!NTN_RegBase)
   endif

   ifstr $(!NTN_InstallMode) == "install"

      ;=======================================================================
      ;
      ;  Perform Install operation
      ;
      ;=======================================================================

      detect date

      ; copy files
      ; removed for NT4.0 bug - ifstr(i) $(DoCopy) == "YES"
         ifstr $(Option) == "LANE"
            install "CopyFiles_LANE"
         else
            ifstr $(Option) == "PPP"
               install "CopyFiles_WANE"
            else
               install "CopyFiles_NIC"
            endif
         endif
         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
            Shell "utility.inf" RegistryErrorString "UNABLE_COPY_FILE"
            Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "FATAL", $($R0)
            set Status = STATUS_FAILED
            goto end
         endif
      ; removed for NT4.0 bug - endif

      ; NOTE:  if NIC is being installed, then we jump from here to install_interface
      ifstr $(Option) != "LANE"
         ifstr $(Option) != "PPP"
            goto install_interface
         endif
      endif

      ; if lane or wane is being installed, make sure there is a bound ATM adapter already installed.
      ifstr $(KeyWinATMService) == $(KeyNull)
         shell "subroutn.inf", SetupMessage, $(!STF_LANGUAGE), "FATAL", $(StringInstallAtmFirst)
         set Status = STATUS_FAILED
         goto end
      endif
      OpenRegKey $(KeyWinATMService) "" "Linkage" $(!REG_KEY_ALL_ACCESS) KeyWinATMLinkage
      GetRegValue $(KeyWinATMLinkage) "Bind" BindListInfo
      set BindList =  *($(BindListInfo), 4)
	   set DefaultAtmDevice = *($(BindList), 1)
      ifstr $(DefaultAtmDevice) == ""
         shell "subroutn.inf", SetupMessage, $(!STF_LANGUAGE), "FATAL", $(StringDoBind)
         set Status = STATUS_FAILED
         goto end
      endif
      set AtmDeviceParm = {{devName,$(NoTitle),$(!REG_VT_SZ),$(DefaultAtmDevice)}}
		goto install_driver

install_interface = +

   ; check if WinATM interface is already installed on system
   Ifstr $(KeyWinATMService) != $(KeyNull)
      goto install_driver
   endif

   ; add software registry keys
   set FlagAbandonInterface = TRUE
   Shell "utility.inf", AddSoftwareComponent, +
      $(AdvanceNet), $(InterfaceProductName), $(InterfaceService), +
      $(InterfaceProductName), $(thisInf), +
      "NULL", "kernel", "", {}, ""
   set SoftProductKey      = $($R1)
   set SoftNetRuleKey      = $($R2)
   set SoftServiceKey      = $($R3)
   set SoftParameterKey    = $($R4)
   set SoftLinkageKey      = $($R5)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; add required registry values to the current version key
   set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),"service"},+
         {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),"0"},+
         {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),"0"},+
         {Title,$(NoTitle),$(!REG_VT_SZ),"WinATM Interface"},+
         {Description,$(NoTitle),$(!REG_VT_SZ),"Interface for WinATM"},+
         {hidden,$(NoTitle),$(!REG_VT_DWORD),1},+
         {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
   Shell  "utility.inf", AddValueList, $(SoftProductKey), $(NewValueList)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; add required registry values to the NetRules key
   set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(InterfaceTypeDef)},+
         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(InterfaceClassDef)}, +
         {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(InterfaceBindableDef)}, +
         {bindform,$(NoTitle),$(!REG_VT_SZ),$(InterfaceService2)$(InterfaceBindformSuffix)}, +
         {use,$(NoTitle),$(!REG_VT_SZ),"service"}}
   Shell  "utility.inf", AddValueList, $(SoftNetRuleKey), $(NewValueList)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   CloseRegKey  $(SoftProductKey)
   CloseRegKey  $(SoftNetRuleKey)
   CloseRegKey  $(SoftServiceKey)
   CloseRegKey  $(SoftParameterKey)
   CloseRegKey  $(SoftLinkageKey)
   set SoftProductKey = $(KeyNull)
   set SoftNetRuleKey = $(KeyNull)
   set SoftServiceKey = $(KeyNull)
   set SoftParameterKey = $(KeyNull)
   set SoftLinkageKey = $(KeyNull)

install_driver = +

   ; check if this driver already installed on system
   OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(!REG_KEY_ALL_ACCESS) KeyProduct
   Ifstr $(KeyProduct) != $(KeyNull)
      goto install_adapter
   endif

   ; add software registry keys
   set FlagAbandonDriver = TRUE
   Shell "utility.inf", AddSoftwareComponent, +
      $(Manufacturer), $(ProductName), $(DriverService), +
      $(ProductName), $(thisInf), +
      $(DriverImage), "kernelautostart"
   set SoftProductKey      = $($R1)
   set SoftNetRuleKey      = $($R2)
   set SoftServiceKey      = $($R3)
   set SoftParameterKey    = $($R4)
   set SoftLinkageKey      = $($R5)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) == SERVICE_ALREADY_EXISTS
      shell "subroutn.inf", SetupMessage, $(!STF_LANGUAGE), "FATAL", $(StringReboot1)
      set Status = STATUS_FAILED
      goto abandon_installed_components
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; add required registry values to the current version key
   set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(DriverSoftwareTypeDef)},+
         {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(MajorVer)},+
         {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(MinorVer)},+
         {Title,$(NoTitle),$(!REG_VT_SZ),$(DriverTitle)},+
         {Description,$(NoTitle),$(!REG_VT_SZ),$(DriverDesc)},+
         {hidden,$(NoTitle),$(!REG_VT_DWORD),1},+
         {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
   Shell  "utility.inf", AddValueList, $(SoftProductKey), $(NewValueList)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; add required registry values to the NetRules key
   set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(DriverTypeDef)},+
         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(DriverClassDef)}, +
         {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(DriverBindableDef)}, +
         {bindform,$(NoTitle),$(!REG_VT_SZ),$(DriverService2)$(DriverBindformSuffix)}, +
         {use,$(NoTitle),$(!REG_VT_SZ),$(DriverUseDef)}, +
         {InfName,$(NoTitle),$(!REG_VT_SZ),$(thisInf)}, +
         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
   Shell  "utility.inf", AddValueList, $(SoftNetRuleKey), $(NewValueList)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; if lane or wane is being installed, additional registry entries must be set here.
   ; NOTE: if NIC is being installed, we jump from here to install_adapter
   ifstr $(Option) != "LANE"
      ifstr $(Option) != "PPP"
         goto install_adapter
      endif
   endif

   ; for lane or wane, set additional registry entries
   ; add the group to the service key
   set NewValueList = {{Group,$(NoTitle),$(!REG_VT_SZ),"NDIS"}}
   shell  "utility.inf", AddValueList, $(SoftServiceKey), $(NewValueList)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; add the OtherDependencies values to the linkage key
   set NewValueList = {{OtherDependencies,$(NoTitle),$(!REG_VT_MULTI_SZ),{$(NicDriverService)}}}
   shell  "utility.inf", AddValueList, $(SoftLinkageKey), $(NewValueList)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

install_adapter = +

   ; call utility to install hardware device.
   set FlagAbandonAdapter = TRUE
   Shell "utility.inf", AddHardwareComponent, $(AdapterServiceBase), $(thisInf), $(ProductKeyName)
   set KeyNetcard = $($R1)
   set KeyAdapterRules = $($R2)
   set KeyParameters = $($R3)
   set AdapterNumber = $($R4)
   set NicService = $($R5)
   ifint $(AdapterNumber) != -1
      set AbandonedOption = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(AdapterNumber)
   endif

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; add required registry values to the adapter key
   set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
         {Title,$(NoTitle),$(!REG_VT_SZ),"["$(AdapterNumber)"] "$(AdapterTitle)},+
         {Description,$(NoTitle),$(!REG_VT_SZ),$(AdapterDesc)},+
         {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductName)},+
         {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
   Shell  "utility.inf", AddValueList, $(KeyNetcard), $(NewValueList)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; add required registry values to the adapter NetRules key
   set NicService2 = """"$(NicService)""""
   set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(AdapterTypeDef)},+
         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(AdapterClassDef)}, +
         {bindform,$(NoTitle),$(!REG_VT_SZ),$(NicService2)$(AdapterBindformSuffix)}, +
         {InfName,$(NoTitle),$(!REG_VT_SZ),$(thisInf)}, +
         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
   Shell  "utility.inf", AddValueList, $(KeyAdapterRules), $(NewValueList)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; add AdvanceNet's parameters to the adapter parameters key
   Shell  "utility.inf", AddValueList, $(KeyParameters), $(AdvanceNetParmList)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; add vendor's parameters to the adapter parameters key
   Shell  "utility.inf", AddValueList, $(KeyParameters), $(VendorParmList)

   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; if NIC is being installed, put up msgs for user
   ; NOTE:  if NIC is being installed, then we jump from here to install_cleanup
   ifstr $(Option) != "LANE"
      ifstr $(Option) != "PPP"
         ;shell "subroutn.inf", SetupMessage, $(!STF_LANGUAGE), "STATUS", $(StringInstallNext)
         goto install_cleanup
      endif
   endif

   ; if lane or wane is being installed, set devName in adapter parameters key.
   Shell  "utility.inf", AddValueList, $(KeyParameters), $(AtmDeviceParm)
   ifint $($ShellCode) != $(!SHELL_CODE_OK)
      goto ShellCodeError
   endif
   ifstr $($R0) != NO_ERROR
      set RegistryErrorIndex  = $($R0) 
      goto fatal_registry_error
   endif

   ; if wane is being installed, take care of TAPI stuff.
   ifstr $(Option) == "PPP"

      ; add required registry values to the adapter's parameter key
      set NewValueList = {{NtAdapterNumber,$(NoTitle),$(!REG_VT_SZ),$(AdapterNumber)}}
      Shell  "utility.inf", AddValueList, $(KeyParameters), $(NewValueList)

      ifint $($ShellCode) != $(!SHELL_CODE_OK)
         goto ShellCodeError
      endif
      ifstr $($R0) != NO_ERROR
         set RegistryErrorIndex  = $($R0)
         goto fatal_registry_error
      endif

      ; create the HARDWARE\DEVICEMAP\TAPI DEVICES\WATM_PPP key

      Shell "" OpenTapiKeyHW $(ProductName)
      set KeyTapiDevice = $($R0)
      ifstr $(KeyTapiDevice) == $(KeyNull)
         set RegistryErrorIndex = UNABLE_OPEN_HARDWARE_SECTION
         goto fatal_registry_error
      endif

      set TapiAddress = {$(AdapterNumber)" 1 0", $(AdapterNumber)" 2 0", $(AdapterNumber)" 3 0",+
                         $(AdapterNumber)" 4 0", $(AdapterNumber)" 5 0", $(AdapterNumber)" 6 0",+
                         $(AdapterNumber)" 7 0", $(AdapterNumber)" 8 0", $(AdapterNumber)" 9 0"}

      set NewValueList = {{Address,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TapiAddress)},+
                          {"Media Type",$(NoTitle),$(!REG_VT_SZ),"ISDN"}}
      Shell  "utility.inf", AddValueList, $(KeyTapiDevice), $(NewValueList)

      ifint $($ShellCode) != $(!SHELL_CODE_OK)
         goto ShellCodeError
      endif
      ifstr $($R0) != NO_ERROR
         set RegistryErrorIndex  = $($R0) 
         goto fatal_registry_error
      endif

      ;Shell  "subroutn.inf", SetupMessage, $(!STF_LANGUAGE), "STATUS", $(StringInstallRAS)
      ;Shell  "subroutn.inf", SetupMessage, $(!STF_LANGUAGE), "STATUS", $(StringConfigRAS)
   endif

install_cleanup = +

   set Status = STATUS_SUCCESSFUL
   goto end                                                ; successful exit from install operation
   endif  ; end of install operation

   ifstr $(!NTN_InstallMode) == "deinstall"

      ;=======================================================================
      ;
      ;  Perform Removal operation
      ;
      ;=======================================================================

      ; warn user if NIC is being removed while lane or wane instances exist
      ifstr $(Option) != "LANE"
         ifstr $(Option) != "PPP"
            OpenRegKey $(!REG_H_LOCAL) "" $(ServicesRoot)$(LaneDriverService) $(!REG_KEY_ALL_ACCESS) KeyLaneService
            OpenRegKey $(!REG_H_LOCAL) "" $(ServicesRoot)$(WaneDriverService) $(!REG_KEY_ALL_ACCESS) KeyWaneService
            ifstr $(KeyLaneService) != $(KeyNull)
               shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "WARNING", $(StringConfirmAtmRemoval)
               ifstr(i) $($R1) == "OK"
                  goto remove_adapter
               endif
               set Status = STATUS_USERCANCEL
               goto end
            endif
            ifstr $(KeyWaneService) != $(KeyNull)
               shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "WARNING", $(StringConfirmAtmRemoval)
               ifstr(i) $($R1) == "OK"
                  goto remove_adapter
               endif
               set Status = STATUS_USERCANCEL
               goto end
            endif
         endif
      endif

remove_adapter = +

   Shell "utility.inf", RemoveHardwareComponent, $(Manufacturer), $(ProductName), $(!NTN_RegBase)

   ; if adapter's driver was removed, then remove the driver's service key
   set DriverRemoved = "NO"
   OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(!REG_KEY_ALL_ACCESS) KeyProduct
   ifstr $(KeyProduct) == $(KeyNull)
      set DriverRemoved = "YES"
      DeleteRegTree $(!REG_H_LOCAL) $(ServicesRoot)$(DriverService)
   endif

   ifstr $(OEM_DEBUG) == ON
      shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" "DriverRemoved = "$(DriverRemoved)
   endif

   ifstr $(Option) == "LANE"
      goto remove_cleanup
   endif
   ifstr $(Option) == "PPP"
      goto remove_cleanup
   endif

   ; determine if this was the last ATM adapter in system and branch appropriately
   ifstr $(DriverRemoved) == "YES"
      GetRegValue $(KeyWinATMService) "DependOnService" ServiceListInfo
      set ServiceList =  *($(ServiceListInfo), 4)
      set DependencyExists = "NO"
      ForListDo ServiceList
         set DependentService = $($)
         OpenRegKey $(!REG_H_LOCAL) "" $(ServicesRoot)$(DependentService) $(!REG_KEY_ALL_ACCESS) KeyDependentService
         ifstr $(KeyDependentService) != $(KeyNull)
            set DependencyExists = "YES"
         endif
         CloseRegKey $(KeyDependentService)
         set KeyDependentService = $(KeyNull)
      EndForListDo
      ifstr $(DependencyExists) == "YES"
         goto remove_cleanup
      endif
   endif

   ; remove needed registry values from the Windows "RUN" key for the user GUI

   OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" $(!REG_KEY_ALL_ACCESS) KeySoftwareWindows
   DeleteRegValue $(KeySoftwareWindows) "AME_CSA"
   CloseRegKey $(KeySoftwareWindows)

remove_interface = +

   shell "utility.inf", RemoveService, $(InterfaceService), "YES"
   shell "utility.inf", RemoveSoftwareComponent, $(AdvanceNet), $(InterfaceProductName), FALSE

remove_cleanup = +

   set Status = STATUS_SUCCESSFUL
   goto end                                                ; successful exit from deinstall operation
   endif  ; end of removal operation

   ;==========================================================================
   ;
   ;  Punt on Configure and Update operations
   ;
   ;==========================================================================

   ifstr $(!NTN_InstallMode) == "configure"
      ; shell "subroutn.inf", SetupMessage, $(!STF_LANGUAGE), "STATUS", $(StringUseAtmControl)
      set Status = STATUS_USERCANCEL
      goto end
   endif

   ifstr $(!NTN_InstallMode) == "update"
      ; shell "subroutn.inf", SetupMessage, $(!STF_LANGUAGE), "STATUS", $(StringUseAtmControl)
      set Status = STATUS_USERCANCEL
      goto end
   endif

   ; if we get to here, then we were passed an invalid operation code
   set Status = STATUS_FAILED

end = +

   FlushRegKey $(!REG_H_LOCAL)
   ifstr $(KeyWinATMService) != $(KeyNull)
      CloseRegKey $(KeyWinATMService)
   endif
   ifstr $(KeyWinATMLinkage) != $(KeyNull)
      CloseRegKey $(KeyWinATMLinkage)
   endif
   ifstr $(KeyProduct) != $(KeyNull)
      CloseRegKey $(KeyProduct)
   endif
   ifstr $(KeyDependentService) != $(KeyNull)
      CloseRegKey $(KeyDependentService)
   endif
   ifstr $(KeyLaneService) != $(KeyNull)
      CloseRegKey $(KeyLaneService)
   endif
   ifstr $(KeyWaneService) != $(KeyNull)
      CloseRegKey $(KeyWaneService)
   endif
   ifstr $(SoftProductKey) != $(KeyNull)
      CloseRegKey $(SoftProductKey)
   endif
   ifstr $(SoftNetRuleKey) != $(KeyNull)
      CloseRegKey $(SoftNetRuleKey)
   endif
   ifstr $(SoftServiceKey) != $(KeyNull)
      CloseRegKey $(SoftServiceKey)
   endif
   ifstr $(SoftParameterKey) != $(KeyNull)
      CloseRegKey $(SoftParameterKey)
   endif
   ifstr $(SoftLinkageKey) != $(KeyNull)
      CloseRegKey $(SoftLinkageKey)
   endif
   ifstr $(KeyNetcard) != $(KeyNull)
      CloseRegKey $(KeyNetcard)
   endif
   ifstr $(KeyAdapterRules) != $(KeyNull)
      CloseRegKey $(KeyAdapterRules)
   endif
   ifstr $(KeyParameters) != $(KeyNull)
      CloseRegKey $(KeyParameters)
   endif
   ifstr $(KeyTapiDevice) != $(KeyNull)
      CloseRegKey $(KeyTapiDevice)
   endif


   ;* the following KLUDGE prevents an NCPA applet runtime error. *
   ;
   ; When an unsuccessful return code is passed back to NCPA after
   ; a deinstall, NCPA dies. -- 7/96
   ;
   ifstr $(!NTN_InstallMode) == "deinstall"
      set Status = STATUS_SUCCESSFUL
   endif  ; end of kludge

   ifstr $(OEM_DEBUG) == ON
      shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" "Returning: "$(Status)
   endif
   return $(Status)
   exit

   ;==========================================================================
   ;
   ;  miscellaneous support routines
   ;
   ;==========================================================================

ShellCodeError = +
   set DlgType = "MessageBox"
   ifstr(i) $(ShellCodeErrorTitle) == ""
      set ShellCodeErrorTitle = "Setup Shell Error"
   endif
   ifstr(i) $(ShellCodeErrorText) == ""
      set ShellCodeErrorText = "Error while processing INF file"
   endif
   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"
   set Status = STATUS_FAILED
   goto abandon_installed_components

;********************

fatal_registry_error = +
   Shell "utility.inf" RegistryErrorString $(RegistryErrorIndex)
   Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "FATAL", $($R0)
   set Status = STATUS_FAILED
   goto abandon_installed_components

;********************

abandon_installed_components = +

   Ifstr(i) $(FlagAbandonAdapter) == TRUE
      Shell "utility.inf", RemoveHardwareComponent, $(Manufacturer), $(ProductName), $(AbandonedOption)
   endif

   Ifstr(i) $(FlagAbandonDriver) == TRUE
      shell "utility.inf", RemoveSoftwareComponent, $(Manufacturer), $(ProductName), FALSE
      shell "utility.inf", RemoveService, $(DriverService), "YES"
   endif

   Ifstr(i) $(FlagAbandonInterface) == TRUE
      shell "utility.inf", RemoveSoftwareComponent, $(AdvanceNet), $(InterfaceProductName), FALSE
      shell "utility.inf", RemoveService, $(InterfaceService), "YES"
   endif
   goto end

;********************

[OpenTapiKeyHW]

   set TapiDeviceName   = $($0)
   set KeyNull          = ""
   set KeyDeviceMap     = $(KeyNull)
   set KeyTapiDevices   = $(KeyNull)
   set KeyResults       = $(KeyNull)

   OpenRegKey $(!REG_H_LOCAL) "" "HARDWARE\DEVICEMAP" $(!REG_KEY_ALL_ACCESS) KeyDeviceMap
   ifStr $(KeyDeviceMap) == $(KeyNull)
      Goto  OpenTapiKey_cleanup
   endif

   OpenRegKey $(KeyDeviceMap) "" "TAPI DEVICES" $(!REG_KEY_ALL_ACCESS) KeyTapiDevices
   ifStr $(KeyTapiDevices) == $(KeyNull)
      CreateRegKey $(KeyDeviceMap) {"TAPI DEVICES", 0, GenericClass} "" $(!REG_KEY_SET_VALUE) "" KeyTapiDevices
      ifStr $(KeyTapiDevices) == $(KeyNull)
         Goto  OpenTapiKey_cleanup
      endif
   endif

   OpenRegKey $(KeyTapiDevices) "" $(TapiDeviceName) $(!REG_KEY_ALL_ACCESS) KeyResults
   ifStr $(KeyResults) == $(KeyNull)
      CreateRegKey $(KeyTapiDevices) {$(TapiDeviceName), 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" KeyResults
   endif

OpenTapiKey_cleanup = +
   ifstr $(KeyDeviceMap) != $(KeyNull)
      CloseRegKey $(KeyDeviceMap)
   endif
   ifstr $(KeyTapiDevices) != $(KeyNull)
      CloseRegKey $(KeyTapiDevices)
   endif
   Return $(KeyResults)

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: web4, load: 0.75