Annotation of ntddk/src/setup/inf/ndis/ncpashel.inf, revision 1.1

1.1     ! root        1: ;**********************************************************************
        !             2: ;
        !             3: ;   NAME:    NCPASHEL.INF
        !             4: ;
        !             5: ;   PURPOSE:
        !             6: ;
        !             7: ;      This INF script is invoked by the Network Control
        !             8: ;      Panel Applet (NCPA).
        !             9: ;
        !            10: ;
        !            11: ;   COMMENTARY:
        !            12: ;
        !            13: ;      The NCPA builds a command line to invoke SETUP, instructing
        !            14: ;      it to run this file.  The other settings on the command line
        !            15: ;      tell NCPASHEL.INF what to invoke and in what mode.
        !            16: ;
        !            17: ;      The primary function of this file is to hide the distinction
        !            18: ;      between invocation by the main install SETUP and later invocation
        !            19: ;      by the NCPA.  This involves restoring the STF_XXXXX global
        !            20: ;      variables to their earlier settings, along with defining some
        !            21: ;      new ones to "fine-tune" the functions of the product-level
        !            22: ;      INF scripts.
        !            23: ;
        !            24: ;
        !            25: ;   HISTORY:
        !            26: ;
        !            27: ;      DavidHov     Created    4/4/92
        !            28: ;
        !            29: ;***********************************************************************
        !            30: ;
        !            31: ;
        !            32: ;***********************************************************************
        !            33: ;
        !            34: ;
        !            35: ;
        !            36: ;***********************************************************************
        !            37: 
        !            38: ;***********************************************************************
        !            39: ;
        !            40: ;   Variables declared by SETUP.INF, the main INF for GUI Setup.
        !            41: ;
        !            42: ;   Those marked with ** are established by the SETUP.EXE; the others
        !            43: ;   are obtained from detection or established programmatically by
        !            44: ;   SETUP.INF.
        !            45: ;
        !            46: ;   The STF_* variables documented below are the globals which can be used
        !            47: ;   by shelled INFs:
        !            48: ;
        !            49: ;*************************************************************************
        !            50: ;
        !            51: ; ** 0.  STF_HWND:           Handle to setup window (hex string)
        !            52: ;
        !            53: ; ** 1.  STF_SRCTYPE:        DOS | ARC | UNC
        !            54: ;
        !            55: ; ** 2.  STF_SRCDIR:         NT Sources, e.g. f:\i386i\
        !            56: ;
        !            57: ; ** 3.  STF_SRCBASE:        Defined only for UNC srctype, the unc share, e.g.,
        !            58: ;                            \\Orville\razzle.
        !            59: ;
        !            60: ;    4.  STF_NTDRIVE:        Destination NT Drive, e.g. d:
        !            61: ;
        !            62: ;    5.  STF_NTPATH:         Path to nt, e.g. d:\nt
        !            63: ;
        !            64: ;    6.  STF_WINDOWSPATH:    Path to windows, e.g. d:\nt\windows
        !            65: ;
        !            66: ;    7.  STF_WINDOWSSYSPATH: Path to windows system, e.g. d:\nt\windows\System32
        !            67: ;
        !            68: ; ** 8.  STF_CWDDIR:         Path to place where setup is run from.,
        !            69: ;                            e.g. d:\setup\
        !            70: ;
        !            71: ;    9.  STF_LANGUAGE:       Language to use (ENG | ...)
        !            72: ;
        !            73: ;    10. STF_INSTALL_MODE:   EXPRESS | CUSTOM
        !            74: ;
        !            75: ; ** 11. STF_INSTALL_TYPE:   SETUPRUN | SETUPBOOTED | NETDUMP | MAINTENANCE
        !            76: ;                            (SETUPRUN:     Setup is run off any source (network, cdrom,
        !            77: ;                                           ... from a running NT system)
        !            78: ;
        !            79: ;                            (SETUPBOOTED:  Setupprep runs and then copies setup on the
        !            80: ;                                           system and runs GUI Setup..)
        !            81: ;
        !            82: ;                            (SETUPTOSHARE: Copy sources to destination STF_DSTDIR)
        !            83: ;
        !            84: ;                            (MAINTENANCE: MAINTENACE mode setup)
        !            85: ;
        !            86: ;                            (used to be FRESH | UPGRADE | NETDUMP)
        !            87: ;
        !            88: ;    12. STF_UPGRADE:        YES | NO
        !            89: ;
        !            90: ;    13. STF_PLATFORM:       I386 | MIPS | Alpha
        !            91: ;
        !            92: ;    14. STF_PROCESSOR:      I386 | I486 | I586  or R2000 | R3000 | R4000 | Alpha_AXP.
        !            93: ;
        !            94: ;    15. STF_USERNAME:       Username for account. "string" (no whitespaces, < 15)
        !            95: ;
        !            96: ;    16. STF_COMPUTERNAME:   Computername to identify machine (no whitespaces, < 15)
        !            97: ;
        !            98: ;    17. STF_PRODUCT:        WINNT | LANMANNT
        !            99: ;
        !           100: ;    18. STF_UNUSEDDRIVES:   List of drives currently unused and available for
        !           101: ;                            assignment.  {E:, F:, ...., Z:}.  Use routine in
        !           102: ;                            subroutn.inf to allocate unused.
        !           103: ;
        !           104: ;    nn. STF_NCDETECT:       YES | NO   determines if netcard detection is enabled
        !           105: ;
        !           106: ;    Conditionally defined:
        !           107: ;
        !           108: ; ** 19. STF_DSTDIR:         Only defined in SETUPTOSHARE. e.g., f:\beta\nt\i386\
        !           109: ;
        !           110: ; ** 20. STF_DSTTYPE         as STF_SRCTYPE
        !           111: ;
        !           112: ; ** 21. STF_DSTBASE         as STF_SRCBASE
        !           113: ;
        !           114: ;    Others Sunil didn't mention:
        !           115: ;
        !           116: ; ** 22. STF_SRCINFPATH      path to invoked (outermost) INF
        !           117: ;
        !           118: ; ** 23. STF_CONTEXTINFNAME  path to currently executing INF
        !           119: ;
        !           120: ; ** 24. STF_SYS_INIT        NO
        !           121: ;
        !           122: ;***********************************************************************
        !           123: ;
        !           124: ;***********************************************************************
        !           125: ;  Variables required for NCPA support
        !           126: ;***********************************************************************
        !           127: ;
        !           128: ;   1) NTN_RegBase              Universal Registry key name prefix.
        !           129: ;                               BUGBUG:  Archaic?
        !           130: ;
        !           131: ;   2) NTN_ServiceBase          Top of Services Tree
        !           132: ;   3) NTN_ServiceKeyName       Name of service; no spaces/delimiters
        !           133: ;                               allowed; may be NULL for new installations
        !           134: ;   4) NTN_RegProduct           name of HARDWARE or SOFTWARE Registry
        !           135: ;                               key for component; will be null ("") for
        !           136: ;                               new installations.
        !           137: ;
        !           138: ;   5) NTN_InstallMode          "install", "deinstall", "configure",
        !           139: ;                               "bind"
        !           140: ;
        !           141: ;   6) NTN_Origination          "ncpa", "install"
        !           142: ;
        !           143: ;   7) NTN_Infname              name (pathless) of INF file to execute
        !           144: ;                               There are two special "name tokens":
        !           145: ;
        !           146: ;                                     "NTLANMAN_Adapter"      and
        !           147: ;                                     "NTLANMAN_Software"
        !           148: ;
        !           149: ;                               If the INF name is equal to one of these,
        !           150: ;                               then the appropriate section of
        !           151: ;                               NTLANMAN.INF is shelled to.
        !           152: ;
        !           153: ;   8) NTN_InstallPhase         "primary","secondary".
        !           154: ;                               "primary" implies main installation;
        !           155: ;                               "secondary" implies product add-on installation.
        !           156: ;
        !           157: ;
        !           158: ;
        !           159: ;
        !           160: ;***********************************************************************
        !           161: 
        !           162: 
        !           163: [StfVariableDetect]
        !           164: 
        !           165:     STF_PROCESSOR = "" ? $(!LIBHANDLE) GetProcessor
        !           166:     STF_PLATFORM  = "I386"        ;  BUGBUG-- How to establish?
        !           167:     ;
        !           168:     ;
        !           169:     ; Language to Use For interaction with user
        !           170:     ;
        !           171: 
        !           172:     STF_LANGUAGE   = "" ? $(!LIBHANDLE) GetLanguage
        !           173:     LanguageList   = ^(LanguageID, 1)
        !           174:     ;
        !           175:     ; Destination NT Directory relative to root of NT Drive
        !           176:     ;
        !           177:     STF_WINDOWSPATH    = "" ? $(!LIBHANDLE) GetWindowsNtDir
        !           178:     STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
        !           179:     STF_NTPATH         = $(!STF_WINDOWSPATH)
        !           180:     STF_COMPUTERNAME   = "" ? $(!LIBHANDLE) GetMyComputerName
        !           181:     STF_BUSTYPE        = "" ? $(!LIBHANDLE) GetMyBusType
        !           182: 
        !           183: [StfVariableSyms]
        !           184: 
        !           185:     ProcessorID_I386  = I386
        !           186:     ProcessorID_I486  = I486
        !           187:     ProcessorID_I586  = I586
        !           188:     ProcessorID_R4000 = R4000
        !           189:     ProcessorID_Alpha = Alpha_AXP
        !           190:     PlatformID_I386 = I386
        !           191:     PlatformID_Mips = Mips
        !           192:     PlatformID_Alpha = Alpha
        !           193: 
        !           194:     ;
        !           195:     ; Version Information
        !           196:     ;
        !           197: 
        !           198:     STF_PRODUCT        = WINNT    ;   BUGBUG-- Determine from Registry
        !           199: 
        !           200:     STF_USERNAME       = ""       ;   BUGBUG--  Determine from API calls
        !           201: 
        !           202:     STF_INSTALL_MODE   = "CUSTOM" ;   It's always CUSTOM from the NCPA
        !           203: 
        !           204:     STF_UPDGRADE       = NO       ;   BUGBUG--  TBI
        !           205: 
        !           206:     STF_NCDETECT       = NO       ;   disable netcard detection
        !           207:     STF_NCOPTION       = ""       ;   set defaults for other
        !           208:     STF_NCDETCARD      = 99999    ;   global netcard variables
        !           209:     STF_NCDETINFO      = {}       ;   No detect information
        !           210:     STF_NC_PARAMS      = {}       ;
        !           211:     STF_NC_PNAMES      = {}       ;
        !           212:     STF_SRCDIR_KEYED   = ""       ;   source dir as entered
        !           213:     STF_SRCDIR_USED    = ""       ;   source dir as used
        !           214:     STF_SRCDIR_OVERRIDE = ""      ;   source dir override (see UTILITY.INF)
        !           215:     STF_SRCDIR_WINNT   = ""       ;   WINNT override source path
        !           216: 
        !           217:     ;  Establish the error dialog template overrides.
        !           218: 
        !           219:     STF_TEMPLATE_CRITERR = "CRITERR2"
        !           220:     STF_TEMPLATE_NONCRITERR = "NONCRITERR2"
        !           221: 
        !           222:     ;
        !           223:     ; DOS VDM Setup / OS2 Subsystem Setup
        !           224:     ;
        !           225:     STF_INSTALLED_OS = {} ? $(!LIBHANDLE) GetInstalledOSNames
        !           226: 
        !           227:     FatalErrorIndex = 1
        !           228: 
        !           229:     !Exit_Code = 0
        !           230: 
        !           231: [DoAskOemsetupSource]
        !           232: 
        !           233:     read-syms DoAskUpgradeSrcDlgText$(!STF_LANGUAGE)
        !           234:     shell "subroutn.inf" DoAskSourceEx $($0) $(DlgText)
        !           235:     Return $($R0) $($R1) $($R2) $($R3)
        !           236: 
        !           237: 
        !           238: ;***********************************************************************
        !           239: ;
        !           240: ;   Primary control section.
        !           241: ;
        !           242: ;***********************************************************************
        !           243: 
        !           244: [Shell Commands]
        !           245: ;
        !           246: ;  Initialization code borrowed from SETUP.INF.  Establish all the
        !           247: ;   STF_ variables not already created by initialization (in INIT.C).
        !           248: ;
        !           249:      set-title "Windows NT Setup"
        !           250: ;
        !           251: ;  Changing the literal 0 to a 1 will turn Debug-Output on.
        !           252: ;
        !           253:      Set !G:DebugOutputControl = 0
        !           254: 
        !           255:      LoadLibrary "x" $(!STF_CWDDIR)setupdll.dll !LIBHANDLE
        !           256:      LoadLibrary "y" $(!STF_CWDDIR)ncpa.cpl !NCPA_HANDLE
        !           257: ;
        !           258: ; Establish the help IDs and help file.
        !           259: ;
        !           260:      Shell "subroutn.inf" ReadSetupHelpIds
        !           261:      SetHelpFile "setupnt.hlp" $(!MinimumID) $(!MaximumID)
        !           262: 
        !           263:      set-subst LF = "\n"
        !           264:      StartWait
        !           265: ;
        !           266: ;  Reestablish the SETUP STF_ variables as best we can.
        !           267: ;
        !           268:      read-syms StfVariableSyms
        !           269:      read-syms StfVariableDetect
        !           270:      detect StfVariableDetect
        !           271:      Set !STF_NTPATH = $(!STF_WINDOWSSYSPATH)
        !           272: ;
        !           273: ;  Get the product type from the registry
        !           274: ;
        !           275:      OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ProductOptions" 33554432 KeyProductOption
        !           276:      ifstr(i) $(KeyProductOption) != ""
        !           277:          GetRegValue $(KeyProductOption) "ProductType" ProductTypeList
        !           278:          set TempProductType = *($(ProductTypeList),4)
        !           279:          ifstr(i) $(TempProductType) == "winnt"
        !           280:              set !STF_PRODUCT = WINNT
        !           281:          else-ifstr(i) $(TempProductType) == "lanmannt"
        !           282:              set !STF_PRODUCT = LANMANNT
        !           283:          endif
        !           284:          CloseRegKey $(KeyProductOptions)
        !           285:      endif
        !           286: 
        !           287: ;
        !           288: ;  Determine the source location. If STF_SRCDIR is already set, use it.
        !           289: ;  Otherwise, try to extract it from the NCPA's home location in the Registry.
        !           290: ;
        !           291: ;  Also check to see if this is an IDW installation. If so, all file copies
        !           292: ;  are suppressed on the theory that the tree copy operation has placed all
        !           293: ;  the binaries into %SystemRoot% already.
        !           294: ;
        !           295:      Debug-Output "NCPASHEL.INF: STF_SRCDIR is "$(!STF_SRCDIR)
        !           296: 
        !           297:      OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Ncpa\CurrentVersion" 33554432 KeyNcpa
        !           298: 
        !           299:      Set !STF_SRCDIR = ""
        !           300:      Set !STF_IDW = FALSE
        !           301: 
        !           302:      Ifstr(i) $(KeyNcpa) != ""
        !           303:          GetRegValue $(KeyNcpa) "IDW" IdwValueList
        !           304:          Set IdwValue = *($(IdwValueList),4)
        !           305:          Ifint $(IdwValue) > 0
        !           306:              Debug-Output "NCPASHEL.INF: IDW Installation"
        !           307:              Set !STF_IDW = TRUE
        !           308:          Endif
        !           309:          CloseRegKey $(KeyNcpa)
        !           310:      Else
        !           311:          Debug-Output "NCPASHEL.INF:  COULDN'T OPEN NCPA KEY!"
        !           312:      Endif
        !           313: 
        !           314:      OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
        !           315:      Ifstr(i) $(KeyNt) != ""
        !           316:          GetRegValue $(KeyNt) "SourcePath" SourcePathValue
        !           317:          Set !STF_SRCDIR = *($(SourcePathValue),4)
        !           318:          Debug-Output "NCPASHEL.INF: SourcePath retrieved is "$(!STF_SRCDIR)
        !           319:          CloseRegKey $(KeyNt)
        !           320:      Endif
        !           321: 
        !           322:      Ifstr(i) $(!STF_SRCDIR) == ""
        !           323:        Set !STF_SRCDIR = "A:\"
        !           324:      Endif
        !           325: ;
        !           326: ;  Extract the "setup in progress" variable from the Registry;
        !           327: ;  set global variables accordingly.  If "setup in progress" flag is
        !           328: ;  on, set !NTN_InstallPhase to "primary", then look for the
        !           329: ;  "winnt source path" value; if found, set !STF_SRCDIR_WINNT.
        !           330: ;
        !           331:      Set SetupInp = 0
        !           332:      Set !NTN_InstallPhase = secondary
        !           333: 
        !           334:      OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\Setup" $(!REG_KEY_READ) KeySetup
        !           335:      Ifstr(i) $(KeySetup) != ""
        !           336:          GetRegValue $(KeySetup) "SystemSetupInProgress" SetupInpValue
        !           337:          Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
        !           338:              Set SetupInp = *($(SetupInpValue),4)
        !           339:              Debug-Output "NCPASHEL.INF: SetupInp = "$(SetupInp)
        !           340:          Endif
        !           341:          Ifint $(SetupInp) == 1
        !           342:              Set !NTN_InstallPhase = primary
        !           343:              GetRegValue $(KeySetup) "WinntPath" SetupPathValue
        !           344:              Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
        !           345:                  Set !STF_SRCDIR_WINNT = *($(SetupPathValue),4)
        !           346:                  Debug-Output "NCPASHEL.INF: STF_SRCDIR_WINNT = "$(!STF_SRCDIR_WINNT)
        !           347:              Endif
        !           348:          Endif
        !           349:          CloseRegKey $(KeySetup)
        !           350:      Endif
        !           351: 
        !           352:      Debug-Output "NCPASHEL.INF: Setup phase = "$(!NTN_InstallPhase)
        !           353: ;
        !           354: ;  Enable the netcard detection functions if necessary.
        !           355: ;  Don't check for errors, since each INF will report
        !           356: ;  the error if it really needs to use detection.
        !           357: ;
        !           358: ;  We start detection for installations and configurations
        !           359: ;  exceptfor final review INFs, which are marked as installations.
        !           360: ;
        !           361:    Ifstr(i) $(NTN_InfSection) == BindingsReview
        !           362:         Goto skipdetection
        !           363:    Endif
        !           364:    Ifstr(i) $(NTN_InstallMode) == install
        !           365:         Goto startdetection
        !           366:    Endif
        !           367:    Ifstr(i) $(NTN_InstallMode) == configure
        !           368:         Goto startdetection
        !           369:    Endif
        !           370: 
        !           371:    Goto skipdetection
        !           372: 
        !           373: startdetection = +
        !           374: 
        !           375:    Debug-Output "NCPASHEL.INF: Enable netcard detection from NCPA.CPL"
        !           376:    Shell "NCPARAM.INF" Param_ControlDetection DTSTART
        !           377: 
        !           378: skipdetection = +
        !           379: ;
        !           380: ; BUGBUG The processor type is currently not detected properly.
        !           381: ;        So temporarily forcibly set the processor type
        !           382: ;
        !           383:      set STF_PROCESSOR = $(ProcessorID_I386)
        !           384: 
        !           385: ;
        !           386: ; Check processor type, see if it is supported, if so what platform does it
        !           387: ; belong to.  Set also the SYS variable to denote which set of sources we
        !           388: ; are installing from
        !           389: ;
        !           390:      ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I386)
        !           391:          set STF_PLATFORM = $(PlatformID_I386)
        !           392:          set SYS      = $(ProcessorID_I386)
        !           393:      else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I486)
        !           394:          set STF_PLATFORM = $(PlatformID_I386)
        !           395:          set SYS      = $(ProcessorID_I386)
        !           396:      else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I586)
        !           397:          set STF_PLATFORM = $(PlatformID_I386)
        !           398:          set SYS      = $(ProcessorID_I386)
        !           399:      else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_R4000)
        !           400:          set STF_PLATFORM = $(PlatformID_Mips)
        !           401:          set SYS      = $(ProcessorID_R4000)
        !           402:      else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_Alpha)
        !           403:          set STF_PLATFORM = $(PlatformID_Alpha)
        !           404:          set SYS      = $(ProcessorID_Alpha)
        !           405:      else
        !           406:          set STF_PLATFORM = $(PlatformID_I386)
        !           407:          set SYS      = $(ProcessorID_I386)
        !           408:      endif
        !           409: 
        !           410:      Ifstr(i) $(!STF_LANGUAGE) != "ENG"    ;  BUGBUG: temporary
        !           411:          Debug-Output "NCPASHEL: Language not set to English; resetting"
        !           412:          !STF_LANGUAGE = "ENG"
        !           413:      Endif
        !           414: 
        !           415:      read-syms ProgressCopy$(!STF_LANGUAGE)
        !           416: 
        !           417: ;----------------------------------------------------------------------
        !           418: ;
        !           419: ;   STF_ variables are now established.
        !           420: ;
        !           421: ;   Establish by default the NCPA variables which the NCPA didn't.
        !           422: ;
        !           423: ;----------------------------------------------------------------------
        !           424: 
        !           425:     Ifstr(i) $(!NTN_RegBase) == ""
        !           426:         set !NTN_RegBase = ""
        !           427:     Endif
        !           428: 
        !           429:     set !NTN_ServiceBase  = "SYSTEM\CurrentControlSet\SERVICES"
        !           430: ;
        !           431: ;    Default the InstallMode to "configure"
        !           432: ;
        !           433:     Ifstr(i) $(!NTN_InstallMode) == ""
        !           434:         Debug-Output "NCPASHEL:!NTN_InstallMode was not defined!"
        !           435:         set !NTN_InstallMode  = "configure"
        !           436:     Endif
        !           437: 
        !           438:     Ifstr(i) $(!NTN_SoftwareBase) == ""
        !           439:         ; BUGBUG
        !           440:         ; set !NTN_SoftwareBase = "SOFTWARE\Description"
        !           441:         set !NTN_SoftwareBase = "SOFTWARE"
        !           442:     Endif
        !           443: 
        !           444:     set !NTN_Origination = "ncpa"
        !           445: 
        !           446: ;----------------------------------------------------------------------
        !           447: ;
        !           448: ;   NTN_ variables are now established.
        !           449: ;
        !           450: ;   Prepare to Shell to target INF
        !           451: ;
        !           452: ;----------------------------------------------------------------------
        !           453: 
        !           454:     Ifstr(i) $(!NTN_Infname) == ""
        !           455:         goto fatalnoinfname
        !           456:     Endif
        !           457: 
        !           458:     Ifstr(i) $(!NTN_InfSection) == ""
        !           459:         Set !NTN_InfSection = "InstallOption"
        !           460:     Endif
        !           461: 
        !           462: ;------------------------------------------------------------------------
        !           463: ;
        !           464: ;  Shell to the given section of the component INF.  If this is an
        !           465: ;  update/upgrade, ask the user for the location of the file.
        !           466: ;
        !           467: ;------------------------------------------------------------------------
        !           468:     ifstr(i) $(!NTN_InstallMode) == "Update"
        !           469:         Debug-Output "NCPASHEL.INF: Upgrade mode"
        !           470:         ;
        !           471:         ; First, ask for oemsetup.inf location
        !           472:         ; Then, pass the information to the inf file
        !           473:         ;
        !           474:         Shell "" DoAskOemsetupSource $(!STF_SRCDIR)
        !           475: 
        !           476:         Ifstr(i) $($ShellCode) != $(!SHELL_CODE_OK)
        !           477:             goto shellerror
        !           478:         Endif
        !           479: 
        !           480:         ifstr(i) $($R0) == STATUS_SUCCESSFUL
        !           481:             set !STF_SRCDIR = $($R1)
        !           482:         else-ifstr(i) $($R0) == STATUS_USERCANCEL
        !           483:             set Exit_Code = 1
        !           484:             goto end
        !           485:         else
        !           486:             set Exit_Code = 2
        !           487:             goto end
        !           488:         endif
        !           489: 
        !           490:         ;
        !           491:         ;  Change NTN_Infname to refer to the OEMSETUP.INF file
        !           492:         ;  pointed to by the user.
        !           493:         ;
        !           494:         Set !NTN_Infname = $(!STF_SRCDIR)oemsetup.inf
        !           495:     endif
        !           496: 
        !           497:     Ifstr(i) $(!NTN_InstallMode) == install
        !           498:         set AddCopy  = YES
        !           499:         set DoCopy   = YES
        !           500:         set DoConfig = YES
        !           501:     Else
        !           502:         set AddCopy  = NO
        !           503:         set DoCopy   = NO
        !           504:         set DoConfig = NO
        !           505:     Endif
        !           506: 
        !           507:     Debug-Output "NCPASHEL.INF: Shell to "$(!NTN_Infname)
        !           508: 
        !           509:     Shell $(!NTN_Infname) $(!NTN_InfSection) +
        !           510:          $(!STF_LANGUAGE) $(!NTN_InfOption) +
        !           511:          $(!STF_SRCDIR) $(AddCopy) $(DoCopy) $(DoConfig)
        !           512: 
        !           513:     Ifstr(i) $($ShellCode) != $(!SHELL_CODE_OK)
        !           514:        Debug-Output "NCPASHEL.INF: SHELL ERROR: "$($ShellCode)
        !           515:        goto shellerror
        !           516:     Endif
        !           517: 
        !           518:     Debug-Output "NCPASHEL: INF return: "$($R0)
        !           519: 
        !           520:     Ifstr(i) $($R0) == STATUS_SUCCESSFUL
        !           521:         set Exit_Code = 0
        !           522:     else-ifstr(i) $($R0) == STATUS_USERCANCEL
        !           523:         set Exit_Code = 1
        !           524:     else-ifstr(i) $($R0) == STATUS_NO_EFFECT
        !           525:         set Exit_Code = 3
        !           526:     else-ifstr(i) $($R0) == STATUS_REBIND
        !           527:         set Exit_Code = 4
        !           528:     else-ifstr(i) $($R0) == STATUS_REBOOT
        !           529:         set Exit_Code = 5
        !           530:     else
        !           531:         set Exit_Code = 2
        !           532:     Endif
        !           533: 
        !           534:     EndWait
        !           535: 
        !           536:     goto end
        !           537: 
        !           538: ;------------------------------------------------------------------
        !           539: ; Fatal error display functions
        !           540: ;------------------------------------------------------------------
        !           541: shellerror = +
        !           542:    read-syms ShellError$(!$ShellCode)$(!STF_LANGUAGE)
        !           543:    Debug-Output "NCPASHEL: SHELL ERROR: "$(Error)
        !           544:    goto fatal
        !           545: 
        !           546: fatalnoinfname = +
        !           547:    set FatalErrorIndex = 2
        !           548:    goto fatalmsg
        !           549: 
        !           550: fatalmsg = +
        !           551:    read-syms FatalError$(FatalErrorIndex)$(!STF_LANGUAGE)
        !           552:    Debug-Output "NCPASHEL: FATAL ERROR: "$(Error)
        !           553:    goto fatal
        !           554: 
        !           555: fatal = +
        !           556:    read-syms FatalDlg$(!STF_LANGUAGE)
        !           557:    ui start "FatalError"
        !           558:    goto end
        !           559: 
        !           560: ;------------------------------------------------------------------
        !           561: ; Exit NCPASHEL.INF; return to NCPA
        !           562: ;------------------------------------------------------------------
        !           563: end = +
        !           564:    Ifstr(i) $(!LIBHANDLE) != ""
        !           565:        LibraryProcedure DontCare, $(!LIBHANDLE), DeleteAllConnections
        !           566:    Endif
        !           567: 
        !           568:    Debug-Output "NCPASHEL: NCPASHEL: returning to NCPA"
        !           569:    goto term
        !           570: ;
        !           571: ;  Immediate exit
        !           572: ;
        !           573: term = +
        !           574:    Debug-Output "NCPASHEL: Bye."
        !           575:    exit
        !           576: 
        !           577: ;***********************************************************************
        !           578: ;
        !           579: ;   End of NCPASHEL.INF
        !           580: ;
        !           581: ;***********************************************************************

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.