|
|
1.1 ! root 1: ;*********************************************************************** ! 2: ; ! 3: ! 4: ! 5: ! 6: ; ! 7: ! 8: ! 9: ! 10: ! 11: ! 12: ! 13: ! 14: ! 15: ! 16: ! 17: ! 18: ! 19: ! 20: ! 21: ! 22: ! 23: ; NTLANMAN.INF ! 24: ; ! 25: ; This is the Network Setup INF for NT/Lanman installation. ! 26: ; ! 27: ; Usage: ! 28: ; NORMAL: This file is "shelled" from SETUP.INF during ! 29: ; main installation. ! 30: ; ! 31: ; Warning: ! 32: ; ! 33: ; This file is processed by that work of wonder, RCPP, into ! 34: ; three separate files: NTLANMAN.INF, NTIDWNET.INF ! 35: ; and NTLMINST.INF. Because of this, some spurious errors are ! 36: ; occasionally emitted due ! 37: ; to the 'C' syntax knowledge of RCPP. For this reason, some ! 38: ; comments dont use apostrophes and ellipses have been avoided. ! 39: ; Other errors, such as escaped quotes, are unavoidable. ! 40: ; ! 41: ! 42: ; ! 43: ; History: ! 44: ; davidhov 10-Mar-1992 Created ! 45: ; ! 46: ; ! 47: ! 48: ! 49: ! 50: ! 51: ! 52: ! 53: ! 54: ! 55: ! 56: ! 57: ! 58: ! 59: ! 60: ! 61: ! 62: ! 63: ! 64: ! 65: ! 66: ! 67: ! 68: ! 69: ! 70: ! 71: ! 72: ! 73: ! 74: ! 75: ! 76: ! 77: ! 78: ! 79: ! 80: ! 81: ! 82: ! 83: ! 84: ! 85: ! 86: ! 87: ;*********************************************************************** ! 88: ; CONSTANTS FOR USING DIALOGS ! 89: ;*********************************************************************** ! 90: [GeneralConstants] ! 91: ! 92: Exit_Code = 0 ! 93: BillboardVisible = 0 ! 94: ; ! 95: ; Return codes; Exit_Code is set to one of these ! 96: ; ! 97: ExitCodeOk = 0 ! 98: ExitCodeCancel = 1 ! 99: ExitCodeFatal = 2 ! 100: ; ! 101: ; Program flow control variables. ! 102: ; ! 103: retaddr = "" ! 104: callresult = 0 ! 105: from = "" ! 106: to = "" ! 107: ; ! 108: ; Location of netcard product information ! 109: ; ! 110: NetworkCardKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards" ! 111: KeyNull = "" ! 112: MAXIMUM_ALLOWED = 33554432 ! 113: SERVICE_NO_CHANGE = 4294967295 ! 114: KeyInfo = {} ! 115: NoTitle = 0 ! 116: UtilityInf = "UTILITY.INF" ! 117: NcParamInf = "NCPARAM.INF" ! 118: RasAutoInstall = 0 ! 119: ! 120: !STF_DOMAIN_ROLE = STANDALONE ! 121: !STF_DOMAIN = "" ! 122: !STF_SRCDIR_WINNT = "" ! 123: ! 124: [DialogConstants] ! 125: ! 126: ! 127: ! 128: ! 129: ! 130: ! 131: ! 132: ! 133: ! 134: ! 135: ! 136: ! 137: ! 138: ! 139: ! 140: ! 141: ! 142: ! 143: ; ! 144: ; Common button names, etc. ! 145: ; ! 146: Help = "&Help" ! 147: Exit = "Cancel" ! 148: HelpContext = "" ! 149: Continue = "Continue" ! 150: ExitState = "Active" ! 151: Cancel = "Cancel" ! 152: ; ! 153: ; Constants to support the use of radio button dialogs ! 154: ; ! 155: Radio1 = "1" ! 156: Radio2 = "2" ! 157: Radio3 = "3" ! 158: Radio4 = "4" ! 159: Radio5 = "5" ! 160: Radio6 = "6" ! 161: Radio7 = "7" ! 162: Radio8 = "8" ! 163: Radio9 = "9" ! 164: ; ! 165: ; Constants to support the use of checkbox dialogs ! 166: ; ! 167: ; DON'T TRANSLATE -- Internal use only ! 168: ; ! 169: Chosen = "ON" ! 170: NotChosen = "OFF" ! 171: ! 172: NullFileName = "NOSUCH.FIL" ! 173: ! 174: ! 175: ! 176: ! 177: ! 178: ! 179: ! 180: ! 181: ! 182: ! 183: ! 184: ! 185: ! 186: ! 187: ! 188: ! 189: ! 190: ! 191: ! 192: ! 193: ! 194: ! 195: ! 196: ! 197: ! 198: ! 199: ! 200: ! 201: ! 202: ! 203: ! 204: ! 205: ! 206: ! 207: ! 208: ! 209: ! 210: ! 211: ! 212: ! 213: ! 214: ! 215: ! 216: ! 217: ! 218: ! 219: ! 220: ! 221: ! 222: ! 223: ! 224: ! 225: ! 226: ! 227: ! 228: ! 229: ! 230: ! 231: ! 232: ! 233: ! 234: ! 235: ! 236: ! 237: ;*********************************************************************** ! 238: ; ERROR MESSAGE CONSTANTS-- Language-dependent ! 239: ;*********************************************************************** ! 240: [ErrorConstants] ! 241: ; ! 242: ; Error handling variables ! 243: ; ! 244: RegistryErrorList = ^(RegistryErrors$(!STF_LANGUAGE),1) ! 245: RegistryErrorIndex = 1 ! 246: ! 247: ;------------------------------------------------------------------ ! 248: ; UI VARIABLES ! 249: ; these variables are initialised with defaults, detected from the ! 250: ; system configuration and/or queried from the user. the variables ! 251: ; are language independent. ! 252: ;------------------------------------------------------------------ ! 253: ! 254: [UiVars] ! 255: DummyUnsedUiVar = "" ! 256: ! 257: ;************************************************************************** ! 258: ; Network UI Variables ! 259: ;************************************************************************** ! 260: [DestNetPathNames] ! 261: DEST_NET_DRIVER = $(!STF_NTPATH)\drivers ! 262: DEST_NET_PROTOCOL = $(!STF_NTPATH)\drivers ! 263: DEST_NET_EXE = $(!STF_WINDOWSSYSPATH) ! 264: DEST_NET_INF = $(!STF_WINDOWSSYSPATH) ! 265: DEST_NET_DLL = $(!STF_WINDOWSSYSPATH) ! 266: ! 267: ; ! 268: ; Instantiate the platform dependent lists ! 269: ; ! 270: [NetworkVars] ! 271: ; ! 272: ; Global variables which would otherwise be supplied by NCPASHEL.INF ! 273: ; ! 274: !STF_SRCDIR_KEYED = "" ; source dir as entered ! 275: !STF_SRCDIR_USED = "" ; source dir as used ! 276: !STF_SRCDIR_OVERRIDE = "" ; OEM source path ! 277: !NTN_RegBase = "" ! 278: !NTN_ServiceBase = "SYSTEM\CurrentControlSet\SERVICES" ! 279: !NTN_SoftwareBase = "SOFTWARE" ! 280: !NTN_InstallMode = "install" ! 281: !NTN_Origination = "install" ! 282: !NTN_InstallPhase = "primary" ! 283: ! 284: ; ! 285: ; Set up the default lists for services and protocols ! 286: ; ! 287: ServiceInfList = ^(ServiceData, 1) ! 288: ServiceOptionList = ^(ServiceData, 2) ! 289: ServiceBbList = ^(ServiceData,3) ! 290: ServiceNameList = ^(ServiceData,4) ! 291: ! 292: ProtoInfList = ^(ProtoData, 1) ! 293: ProtoOptionList = ^(ProtoData, 2) ! 294: ProtoBbList = ^(ProtoData, 3) ! 295: ProtoNameList = ^(ProtoData, 4) ! 296: ! 297: ; ! 298: ; SERVICE and PROTOCOL INF lists. ! 299: ; ! 300: ; Format: <name of INF to run>,<option to install>,<billboard index> ! 301: ; ! 302: ; Default NetBIOS transport INF: NetBeui (NBF.SYS) ! 303: ; ! 304: [ProtoData] ! 305: ProtoData_1 = "OEMNXPNB.INF","NBF",4,Nbf ! 306: ; ! 307: ; NT LM service INFs. Files is this list are "shelled" to, along with ! 308: ; the appropriate protocol INF and netcard INF. ! 309: ; ! 310: [ServiceData] ! 311: ; Server service ! 312: ServiceData_1 = "OEMNSVSV.INF","SRV",3,LanmanServer ! 313: ; Workstation service ! 314: ServiceData_2 = "OEMNSVWK.INF","WKSTA",2,LanmanWorkstation ! 315: ; NetBIOS API support ! 316: ServiceData_3 = "OEMNSVNB.INF","NETBIOS",5,NetBIOS ! 317: ; RPC API support ! 318: ServiceData_4 = "OEMNSVRP.INF","RPCLOCATE",11,RPCLOCATOR ! 319: ! 320: [RasServiceData] ! 321: RAS_InfName = "OEMNSVRA.INF" ! 322: RAS_Option = "RAS" ! 323: RAS_Billboard = 12 ! 324: RAS_Service = "RAS" ! 325: ! 326: ! 327: ;************************************************************************** ! 328: ;************************************************************************** ! 329: ; ! 330: ; SHELL COMMANDS SECTION ! 331: ; ! 332: ;************************************************************************** ! 333: ;************************************************************************** ! 334: ! 335: ! 336: ! 337: ! 338: ! 339: ! 340: ! 341: ! 342: ! 343: ! 344: ! 345: ! 346: ! 347: ! 348: ! 349: ! 350: ! 351: ! 352: ! 353: ! 354: ! 355: ! 356: ! 357: ! 358: ! 359: ! 360: ! 361: ! 362: ! 363: ! 364: ! 365: ! 366: ! 367: ! 368: ! 369: ! 370: ! 371: ! 372: ! 373: ! 374: ! 375: ! 376: ! 377: ! 378: ! 379: ! 380: ! 381: ! 382: ! 383: ! 384: ! 385: ! 386: ! 387: ! 388: ! 389: ! 390: ! 391: ! 392: ! 393: ! 394: ! 395: ! 396: ! 397: ! 398: ! 399: ! 400: ! 401: ! 402: ! 403: ! 404: ! 405: ! 406: ! 407: ! 408: ! 409: ! 410: ! 411: ! 412: ! 413: ! 414: ! 415: ! 416: ! 417: ! 418: ! 419: ! 420: ! 421: ! 422: ! 423: ! 424: ! 425: ! 426: ! 427: ! 428: ! 429: ! 430: ! 431: ! 432: ! 433: ! 434: ! 435: ! 436: ! 437: ! 438: ! 439: ! 440: ! 441: ! 442: ! 443: ! 444: ! 445: ! 446: ! 447: ! 448: ! 449: ! 450: ! 451: ! 452: ! 453: ! 454: ! 455: ! 456: ! 457: ! 458: ! 459: ! 460: ! 461: ! 462: ! 463: ! 464: ! 465: ! 466: ! 467: ! 468: ! 469: ! 470: ! 471: ! 472: ! 473: ! 474: ! 475: ! 476: ! 477: ! 478: ! 479: ! 480: ! 481: ! 482: ! 483: ! 484: ! 485: ! 486: ! 487: ! 488: ! 489: ! 490: ! 491: ! 492: ! 493: ! 494: ! 495: ! 496: ! 497: ! 498: ! 499: ! 500: ! 501: ! 502: ! 503: ! 504: ! 505: ! 506: ! 507: ! 508: ! 509: ! 510: ! 511: ! 512: ! 513: ! 514: ! 515: ! 516: ! 517: ! 518: ! 519: ! 520: ! 521: ! 522: ! 523: ! 524: ! 525: ! 526: ! 527: ! 528: ! 529: ! 530: ! 531: ! 532: ! 533: ! 534: ! 535: ! 536: ! 537: ! 538: ! 539: ! 540: ! 541: ! 542: ! 543: ! 544: ! 545: ! 546: ! 547: ! 548: ! 549: ! 550: ! 551: ! 552: ! 553: ! 554: ! 555: ! 556: ! 557: ! 558: ! 559: ! 560: ! 561: ! 562: ! 563: ! 564: ! 565: ! 566: ! 567: ! 568: ! 569: ! 570: ! 571: ! 572: ! 573: ! 574: ! 575: ! 576: ! 577: ! 578: ! 579: ! 580: ! 581: ! 582: ! 583: ! 584: ! 585: ! 586: ! 587: ! 588: ! 589: ! 590: ! 591: ! 592: ! 593: ! 594: ! 595: ! 596: ! 597: ! 598: ! 599: ! 600: ! 601: ! 602: ! 603: ! 604: ! 605: ! 606: ! 607: ! 608: ! 609: ! 610: ! 611: ! 612: ! 613: ! 614: ! 615: ! 616: ! 617: ! 618: ! 619: ! 620: ! 621: ! 622: ! 623: ! 624: ! 625: ! 626: ! 627: ! 628: ! 629: ! 630: ! 631: ! 632: ! 633: ! 634: ! 635: ! 636: ! 637: ! 638: ! 639: ! 640: ! 641: ! 642: ! 643: ! 644: ! 645: ! 646: ! 647: ! 648: ! 649: ! 650: ! 651: ! 652: ! 653: ! 654: ! 655: ! 656: ! 657: ! 658: ! 659: ! 660: ! 661: ! 662: ! 663: ! 664: ! 665: ! 666: ! 667: ! 668: ! 669: ! 670: ! 671: ! 672: [DoNetwork] ! 673: ! 674: Set !G:DebugOutputControl = 0 ! 675: ! 676: Debug-Output "NTLANMAN.INF: Section: Shell Commands" ! 677: ! 678: Set NetInstallStatus = STATUS_SUCCESSFUL ! 679: ! 680: set-subst LF = "\n" ! 681: ! 682: StartWait ! 683: ; ! 684: ; read general constants, etc. ! 685: ; ! 686: read-syms GeneralConstants ! 687: ! 688: Ifstr(i) $(!STF_PRODUCT) == "LANMANNT" ! 689: read-syms ProductTitleLanmanNt$(!STF_LANGUAGE) ! 690: Else ! 691: read-syms ProductTitleWinNt$(!STF_LANGUAGE) ! 692: Endif ! 693: Debug-Output "NTLANMAN.INF: Product title is: "$(!NetProductTitle) ! 694: set-title $(!NetProductTitle)" Network Installation" ! 695: ! 696: read-syms UiVars ! 697: read-syms DestNetPathNames ! 698: read-syms DialogConstants ! 699: read-syms NetworkVars ! 700: read-syms ProgressCopy$(!STF_LANGUAGE) ! 701: ! 702: Set !STF_IDW = FALSE ! 703: ! 704: Debug-Output "NTLANMAN.INF: Base variables loaded" ! 705: ! 706: LoadLibrary "x" $(!STF_CWDDIR)\setupdll.dll !LIBHANDLE ! 707: ! 708: Debug-Output "NTLANMAN.INF: Successfully linked to SETUPDLL.DLL" ! 709: ! 710: LoadLibrary "x" $(!STF_CWDDIR)\ncpa.cpl !NCPA_HANDLE ! 711: ! 712: Debug-Output "NTLANMAN.INF: Successfully linked to NCPA.CPL" ! 713: ! 714: Shell "subroutn.inf" ReadSetupHelpIds ! 715: SetHelpFile "setupnt.hlp" $(!MinimumID) $(!MaximumID) ! 716: ! 717: EndWait ! 718: ! 719: Debug-Output "NTLANMAN.INF: Network variables loaded" ! 720: ! 721: ; ! 722: ; To support WINNT setup, record STF_SRCDIR into the Registry. ! 723: ; If present, this is used as an override to the "SourcePath" ! 724: ; value SETUP normally records. The problem is that the "SourcePath" ! 725: ; is a lie for WINNT setup-- it always points at "A:\", not to the ! 726: ; hidden temporary directory. ! 727: ; ! 728: OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\Setup" $(MAXIMUM_ALLOWED) KeySetup ! 729: Ifstr(i) $(KeySetup) != "" ! 730: SetRegValue $(KeySetup) {WinntPath,$(NoTitle),$(!REG_VT_SZ),$(!STF_SRCDIR)} ! 731: CloseRegKey $(KeySetup) ! 732: Debug-Output "NTLANMAN.INF: Setup\WinntPath value set to: "$(!STF_SRCDIR) ! 733: Endif ! 734: ! 735: ! 736: ! 737: ;------------------------------------------------------------------------ ! 738: ; ! 739: ; NETCARD INSTALLATION ! 740: ; ! 741: ; Since detection is always activated merely by shelling to ! 742: ; [InitialAdapterInstall], we just call the INF OEMHOOK.INF. ! 743: ; This file, normally absent, allows vendors to copy files, ! 744: ; manipulate the Registry, etc., to prepare for netcard operations. ! 745: ; ! 746: ;------------------------------------------------------------------------ ! 747: ! 748: ; ! 749: ; Get global variables set up and enable detection. ! 750: ; ! 751: Shell $(NcParamInf) Param_SetGlobals ! 752: Set !STF_NCDETECT = YES ! 753: ! 754: ; Silently run the INF called OEMHOOK.INF if there is one. ! 755: ! 756: Shell "" InstallOemHook ! 757: ! 758: Debug-Output "NTLANMAN.INF: Establish netcard option" ! 759: ! 760: set retaddr = nphase$runinfs ! 761: goto netgetdriver ! 762: ! 763: nphase$runinfs = + ! 764: Debug-Output "NTLANMAN.INF: Run subordinate INFs" ! 765: ! 766: Set retaddr = nphase$installfiles ! 767: Goto netruninfs ! 768: ; ! 769: ; Add all the networking files to the install list and ! 770: ; copy them. ! 771: ; ! 772: nphase$installfiles = + ! 773: Set retaddr = nphase$ncpacmdline ! 774: ! 775: Ifstr(i) $(!STF_IDW) != "TRUE" ! 776: Goto netinstallfiles ! 777: Endif ! 778: ! 779: ; ! 780: ; Create the NCPA command line parameters ! 781: ; ! 782: nphase$ncpacmdline = + ! 783: Set retaddr = nphase$runncpa ! 784: Goto netncpacmdline ! 785: ; ! 786: ; Run the NCPA to configure the network ! 787: ; ! 788: nphase$runncpa = + ! 789: ; ! 790: ; Does ActiveComputerName exist? If so, stomp on it. ! 791: ; ! 792: Set KeyComputerName = $(KeyNull) ! 793: OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName" $(MAXIMUM_ALLOWED) KeyComputerName ! 794: ! 795: Ifstr(i) $(KeyComputerName) != $(KeyNull) ! 796: GetRegValue $(KeyComputerName) "ComputerName" ValueActiveComputerName ! 797: Set ActiveComputerName = *($(ValueActiveComputerName),4) ! 798: Debug-Output "NTLANMAN.INF: *************************************" ! 799: Debug-Output "NTLANMAN.INF: ActiveComputerName key exists: "$(ActiveComputerName) ! 800: SetRegValue $(KeyComputerName) {ComputerName,$(NoTitle),$(!REG_VT_SZ),$(!STF_COMPUTERNAME)} ! 801: Debug-Output "NTLANMAN.INF: ActiveComputerName was set to: "$(!STF_COMPUTERNAME) ! 802: Debug-Output "NTLANMAN.INF: *************************************" ! 803: CloseRegKey $(KeyComputerName) ! 804: Else ! 805: Debug-Output "NTLANMAN.INF: ActiveComputerName key does not exist." ! 806: Endif ! 807: ! 808: Debug-Output "NTLANMAN.INF: Run NCPA to configure the network" ! 809: Ifint $(BillboardVisible) != 0 ! 810: Shell "subroutn.inf" PopBillboard ! 811: Set BillboardVisible = 0 ! 812: Endif ! 813: set retaddr = nphase$startnet ! 814: goto netrunncpa ! 815: ; ! 816: ; Start the network (workstation, rdr, xport, driver) ! 817: ; ! 818: nphase$startnet = + ! 819: Debug-Output "NTLANMAN.INF: Run NCPA to start the network" ! 820: ! 821: read-syms Billboard6$(!STF_LANGUAGE) ! 822: Shell "subroutn.inf" PushBillboard NETSTATUSDLG $(Status) ! 823: Set BillboardVisible = 1 ! 824: ! 825: Set retaddr = nphase$domainrole ! 826: Goto netstartnetwork ! 827: ; ! 828: ; Determine this machine's role in the network ! 829: ; ! 830: nphase$domainrole = + ! 831: Debug-Output "NTLANMAN.INF: Run NCPA to establish domain" ! 832: Ifint $(BillboardVisible) != 0 ! 833: Shell "subroutn.inf" PopBillboard ! 834: Set BillboardVisible = 0 ! 835: Endif ! 836: ! 837: set retaddr = nphase$connectshare ! 838: goto netdomain ! 839: ; ! 840: ; Connect to a remote sharepoint if necessary ! 841: ; ! 842: nphase$connectshare = + ! 843: ; ! 844: ; connecting to a remote share is not necessary... in initial setup we don't ! 845: ; have unc shares. ! 846: ; ! 847: ! 848: Debug-Output "NTLANMAN.INF: Domain Role = "$(!STF_DOMAIN_ROLE) ! 849: Set retaddr = nphase$done ! 850: Debug-Output "NTLANMAN.INF: NOT connecting to remote sharepoint" ! 851: Goto $(retaddr) ! 852: ; ! 853: ; That's all for now... ! 854: ; ! 855: nphase$done = + ! 856: Debug-Output "NTLANMAN.INF: Done ************************" ! 857: ; ! 858: ; Remove the billboard, if any ! 859: ; ! 860: Ifint $(BillboardVisible) != 0 ! 861: Shell "subroutn.inf" PopBillboard ! 862: Set BillboardVisible = 0 ! 863: Endif ! 864: ! 865: ! 866: ! 867: ! 868: ! 869: ! 870: ! 871: ! 872: ! 873: ! 874: ! 875: ! 876: ! 877: ! 878: ! 879: ! 880: ! 881: ! 882: ! 883: ! 884: ! 885: ! 886: ! 887: ! 888: ! 889: ! 890: ! 891: ! 892: ! 893: ! 894: ! 895: ! 896: ! 897: ! 898: ! 899: ! 900: ! 901: ! 902: ! 903: ! 904: ! 905: ! 906: ! 907: ! 908: ! 909: ! 910: ! 911: ! 912: ! 913: ! 914: ! 915: ! 916: ! 917: ! 918: ! 919: ! 920: ! 921: ! 922: ! 923: ! 924: ! 925: ! 926: ! 927: ! 928: ! 929: ! 930: ! 931: ! 932: ! 933: ! 934: ! 935: ! 936: ! 937: ! 938: ! 939: ! 940: ! 941: ! 942: ! 943: ! 944: ! 945: ! 946: ! 947: ! 948: ! 949: ! 950: ! 951: ! 952: ! 953: ! 954: ! 955: ! 956: ! 957: ! 958: ! 959: ! 960: ! 961: ! 962: ! 963: ! 964: ! 965: ! 966: ! 967: ! 968: ! 969: ! 970: ! 971: ! 972: ! 973: ! 974: ! 975: ! 976: ! 977: ! 978: ! 979: ! 980: ! 981: ! 982: ! 983: ! 984: ! 985: ! 986: ! 987: ! 988: ! 989: ! 990: ! 991: ! 992: ! 993: ! 994: ! 995: ! 996: ! 997: ! 998: ! 999: ! 1000: ! 1001: ! 1002: ! 1003: ! 1004: ! 1005: ! 1006: ! 1007: ! 1008: ! 1009: ! 1010: ! 1011: ! 1012: ! 1013: ! 1014: ! 1015: ! 1016: ! 1017: ! 1018: ! 1019: ! 1020: ! 1021: ! 1022: ! 1023: ! 1024: ! 1025: ! 1026: ! 1027: ! 1028: ! 1029: ! 1030: ! 1031: ! 1032: ! 1033: ! 1034: ! 1035: ! 1036: ! 1037: ! 1038: ! 1039: ! 1040: ! 1041: ! 1042: ! 1043: ! 1044: ! 1045: ! 1046: ! 1047: ! 1048: ! 1049: ! 1050: ! 1051: ! 1052: ! 1053: ! 1054: ! 1055: ! 1056: ! 1057: ! 1058: ! 1059: ! 1060: ! 1061: ! 1062: ! 1063: ! 1064: ! 1065: ! 1066: ! 1067: ! 1068: ! 1069: ! 1070: ! 1071: ! 1072: ! 1073: ; ! 1074: ; Discard the Billboard dialog if still present ! 1075: ; ! 1076: Ifint $(BillboardVisible) != 0 ! 1077: Shell "subroutn.inf" PopBillboard ! 1078: Set BillboardVisible = 0 ! 1079: Endif ! 1080: ! 1081: Goto end ! 1082: ! 1083: ;=========================================================================== ! 1084: ;=========================================================================== ! 1085: ;=========================================================================== ! 1086: ; ! 1087: ; Worker functions. ! 1088: ; ! 1089: ;=========================================================================== ! 1090: ;=========================================================================== ! 1091: ;=========================================================================== ! 1092: ! 1093: ;**************************************************************** ! 1094: ; ! 1095: ; Install all files in copy list. ! 1096: ; ! 1097: ;**************************************************************** ! 1098: ! 1099: netinstallfiles = + ! 1100: ! 1101: ! 1102: Shell "initial.inf" ControlBitmaps START ! 1103: ! 1104: ! 1105: Debug-Output "NTLANMAN.INF: Installing all files in copy list" ! 1106: Install Install-All-Files-Now ! 1107: ! 1108: ! 1109: Shell "initial.inf" ControlBitmaps STOP ! 1110: ! 1111: ! 1112: goto $(retaddr) ! 1113: ! 1114: ;**************************************************************** ! 1115: ; ! 1116: ; Build the command line parameters for the NCPA exports ! 1117: ; ! 1118: ;**************************************************************** ! 1119: netncpacmdline = + ! 1120: ; ! 1121: ; Build the command line paramters for the NCPA's calls to SETUP ! 1122: ; ! 1123: Set NCPA_CMD_LINE = " /t STF_PRODUCT = "$(!STF_PRODUCT) ! 1124: Set NCPA_CMD_LINE = " /t STF_COMPUTERNAME = """$(!STF_COMPUTERNAME)""""$(NCPA_CMD_LINE) ! 1125: Set NCPA_CMD_LINE = " /t STF_USERNAME = """$(!STF_USERNAME)""""$(NCPA_CMD_LINE) ! 1126: Set NCPA_CMD_LINE = " /t STF_INSTALL_MODE = "$(!STF_INSTALL_MODE)$(NCPA_CMD_LINE) ! 1127: Set NCPA_CMD_LINE = " /t STF_SRCDIR = "$(!STF_SRCDIR)$(NCPA_CMD_LINE) ! 1128: ! 1129: Ifstr(i) $(!STF_IDW) == TRUE ! 1130: Set NCPA_CMD_LINE = " /t STF_IDW = "$(!STF_IDW)$(NCPA_CMD_LINE) ! 1131: Endif ! 1132: ! 1133: goto $(retaddr) ! 1134: ! 1135: ;**************************************************************** ! 1136: ; ! 1137: ; Run the NCPA.CPL in "NCPA" mode; i.e., cause network binding, ! 1138: ; OEM installation, etc. ! 1139: ; ! 1140: ;**************************************************************** ! 1141: netrunncpa = + ! 1142: ! 1143: StartDetachedProcess STATUS "" "" $(!STF_WINDOWSSYSPATH)"\spoolss.exe" ! 1144: ifstr(i) $(STATUS) != "ERROR" ! 1145: set !STF_START_SPOOLSS = "NO" ! 1146: endif ! 1147: ! 1148: ; ! 1149: ; Run the NCPA, giving it the proper information: the window handle ! 1150: ; of the main SETUP window, the function to run ("NCPA"), and ! 1151: ; the parameters to use for dialogs and subordinate SETUP invocation. ! 1152: ; ! 1153: Set NCPA_FUNC = NCPA ! 1154: ! 1155: goto netcallncpa ! 1156: ! 1157: netstartservice = + ! 1158: ; ! 1159: ; Call the NCPA's StartService wrapper. It allows passing of parameters, ! 1160: ; but we currently don't need this capability. ! 1161: ; ! 1162: Debug-Output "NTLANMAN.INF: calling NCPA.CPL to start service "$(NCPA_SERVICE) ! 1163: ! 1164: LibraryProcedure NCPA_RESULT $(!NCPA_HANDLE), CPlSetup $(!STF_HWND), STARTSVC, $(NCPA_SERVICE) ! 1165: Goto netreturnncpa ! 1166: ! 1167: netcallncpa = + ! 1168: ; ! 1169: ; Call the NCPA.CPL. There are three standard parameters: ! 1170: ; ! 1171: ; [0] ASCII form of LONG window handle ! 1172: ; [1] ASCII name of NCPA.CPL function to perform ! 1173: ; [2] command line to pass to NCPA and subordinate INFs ! 1174: ; ! 1175: ; ! 1176: Debug-Output "NTLANMAN.INF: calling NCPA.CPL, function "$(NCPA_FUNC) ! 1177: ! 1178: LibraryProcedure NCPA_RESULT $(!NCPA_HANDLE),CPlSetup $(!STF_HWND), $(NCPA_FUNC), $(NCPA_CMD_LINE) ! 1179: ! 1180: netreturnncpa = + ! 1181: ! 1182: Set NCPA_STATUS = *($(NCPA_RESULT),1) ! 1183: Debug-Output "NTLANMAN.INF: NCPA Status was: "$(NCPA_STATUS) ! 1184: goto $(retaddr) ! 1185: ! 1186: ;**************************************************************** ! 1187: ; ! 1188: ; Start the Network: start LanmanWorkstation and LMHOSTS if it exists ! 1189: ; ! 1190: ;**************************************************************** ! 1191: netstartnetwork = + ! 1192: Debug-Output "NTLANMAN.INF: Starting workstation..." ! 1193: StartWait ! 1194: Set WaitStarted = 1 ! 1195: Set FLibraryErrCtl = 1 ! 1196: ! 1197: LibraryProcedure NCPA_RESULT $(!NCPA_HANDLE), CPlSetup $(!STF_HWND), STARTSVC, LanmanWorkstation ! 1198: ! 1199: Set NCPA_STATUS = *($(NCPA_RESULT),1) ! 1200: ! 1201: Debug-Output "NTLANMAN.INF: Start workstation; result was: "$(NCPA_STATUS) ! 1202: ! 1203: Ifint $(NCPA_STATUS) != 0 ! 1204: EndWait ! 1205: Set WaitStarted = 0 ! 1206: ! 1207: LibraryProcedure NCPA_RESULT $(!NCPA_HANDLE), CPlSetup $(!STF_HWND), ERRORMSG, $(NCPA_STATUS) ! 1208: ! 1209: Set NCPA_ERROR_MESSAGE = *($(NCPA_RESULT),2) ! 1210: Debug-Output "NTLANMAN.INF: Error "$(NCPA_STATUS)" translated to: "$(NCPA_ERROR_MESSAGE) ! 1211: Read-syms WarningNoNet$(!STF_LANGUAGE) ! 1212: Set Error = $(NCPA_ERROR_MESSAGE)$(ErrorSuffix) ! 1213: read-syms WarningDlg$(!STF_LANGUAGE) ! 1214: ui start SetupMessage ! 1215: goto netstartnetdone ! 1216: Endif ! 1217: ! 1218: Debug-Output "NTLANMAN.INF: Starting LMHOSTS service..." ! 1219: ! 1220: ; ! 1221: ; Start LMHOSTS service if it exists ! 1222: ; ! 1223: OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\LmHosts" $(MAXIMUM_ALLOWED) KeyLmHosts ! 1224: ifstr(i) $(KeyLmHosts) != "" ! 1225: EndWait ! 1226: Set WaitStarted = 0 ! 1227: ! 1228: LibraryProcedure NCPA_RESULT $(!NCPA_HANDLE), CPlSetup $(!STF_HWND), STARTSVC, LmHosts ! 1229: ! 1230: Set NCPA_STATUS = *($(NCPA_RESULT),1) ! 1231: ! 1232: Debug-Output "NTLANMAN.INF: Start Lmhosts; result was: "$(NCPA_STATUS) ! 1233: ! 1234: Ifint $(NCPA_STATUS) != 0 ! 1235: LibraryProcedure NCPA_RESULT $(!NCPA_HANDLE), CPlSetup $(!STF_HWND), ERRORMSG, $(NCPA_STATUS) ! 1236: Set NCPA_ERROR_MESSAGE = *($(NCPA_RESULT),2) ! 1237: Debug-Output "NTLANMAN.INF: Error "$(NCPA_STATUS)" translated to: "$(NCPA_ERROR_MESSAGE) ! 1238: Read-syms WarningNoLmHosts$(!STF_LANGUAGE) ! 1239: Set Error = $(NCPA_ERROR_MESSAGE)$(ErrorSuffix) ! 1240: read-syms WarningDlg$(!STF_LANGUAGE) ! 1241: ui start SetupMessage ! 1242: goto netstartnotdone ! 1243: Endif ! 1244: Endif ! 1245: ! 1246: netstartnetdone =+ ! 1247: ! 1248: Set FLibraryErrCtl = 0 ! 1249: Ifint $(WaitStarted) == 1 ! 1250: EndWait ! 1251: Endif ! 1252: ! 1253: ! 1254: ! 1255: Goto $(retaddr) ! 1256: ! 1257: ;**************************************************************** ! 1258: ; ! 1259: ; Run NCPA.CPL in "DOMAIN" mode; i.e., establish domain ! 1260: ; role, security info, etc., ! 1261: ; ! 1262: ; The DOMAIN subfunction returns a string (NCPA_RESULT) in ! 1263: ; the following format: ! 1264: ; ! 1265: ; { <numeric error code>, ! 1266: ; COMPUTERNAME, ! 1267: ; DOMAINNAME, ! 1268: ; LOGONPASSWORD, ! 1269: ; COMPUTERROLE ! 1270: ; } ! 1271: ;**************************************************************** ! 1272: netdomain = + ! 1273: Debug-Output "NTLANMAN.INF: Running Domain Settings dialog..." ! 1274: ! 1275: Set FLibraryErrCtl = 1 ! 1276: ! 1277: LibraryProcedure NCPA_RESULT $(!NCPA_HANDLE), CPlSetup $(!STF_HWND), DOMAIN, $(NCPA_CMD_LINE) ! 1278: ! 1279: Set FLibraryErrCtl = 0 ! 1280: ! 1281: Set NCPA_STATUS = *($(NCPA_RESULT),1) ! 1282: ! 1283: Debug-Output "NTLANMAN.INF: Domain Settings result was: "$(NCPA_STATUS) ! 1284: ! 1285: Ifint $(NCPA_STATUS) != 0 ! 1286: ; ! 1287: ; Check for IDS_NCPA_SETUP_CANCELLED. If so, and LanmanNT, ! 1288: ; discontinue installation. ! 1289: ; ! 1290: Ifint $(NCPA_STATUS) == 13074 ! 1291: Ifstr(i) $(!STF_PRODUCT) == "LANMANNT" ! 1292: Debug-Output "NTLANMAN.INF: Aborting LanmanNT installation; user cancellation." ! 1293: Set NetInstallStatus = STATUS_USERCANCEL ! 1294: Goto setupnotdone ! 1295: Endif ! 1296: Endif ! 1297: Endif ! 1298: ! 1299: ; ! 1300: ; Check the return variable, and update globals with new ! 1301: ; information derived from domain installation process. ! 1302: ; ! 1303: Set TEMP_COMPUTERNAME = *($(NCPA_RESULT),2) ! 1304: Set TEMP_DOMAINNAME = *($(NCPA_RESULT),3) ! 1305: Set TEMP_COMPUTERROLE = *($(NCPA_RESULT),5) ! 1306: ! 1307: Ifstr(i) $(TEMP_COMPUTERNAME) != "" ! 1308: Ifstr(i) $(TEMP_COMPUTERNAME) != $(!STF_COMPUTERNAME) ! 1309: Set !STF_COMPUTERNAME = $(TEMP_COMPUTERNAME) ! 1310: Debug-Output "NTLANMAN.INF: Computername changed to "$(!STF_COMPUTERNAME) ! 1311: Endif ! 1312: Endif ! 1313: Ifstr(i) $(TEMP_DOMAINNAME) != "" ! 1314: Set !STF_DOMAIN = $(TEMP_DOMAINNAME) ! 1315: Debug-Output "NTLANMAN.INF: Domain name is "$(!STF_DOMAIN) ! 1316: Endif ! 1317: Ifstr(i) $(TEMP_COMPUTERROLE) != "" ! 1318: Set !STF_DOMAIN_ROLE = $(TEMP_COMPUTERROLE) ! 1319: Debug-Output "NTLANMAN.INF: Domain role is "$(!STF_DOMAIN_ROLE) ! 1320: Endif ! 1321: ; ! 1322: ; Check to see if TEMP_COMPUTERROLE is STANDALONE. If so, alter the NetLogon ! 1323: ; service to be startable on demand (not auto-started). ! 1324: ; ! 1325: Ifstr(i) $(TEMP_COMPUTERROLE) == STANDALONE ! 1326: Debug-Output "NTLANMAN.INF: Prevent NETLOGON service from autostarting" ! 1327: LibraryProcedure DontCare, $(!LIBHANDLE), SetupChangeServiceConfig, NetLogon,+ ! 1328: $(SERVICE_NO_CHANGE), 3, $(SERVICE_NO_CHANGE), "", "", "", "", "", "" ! 1329: Endif ! 1330: ! 1331: goto $(retaddr) ! 1332: ;**************************************************************** ! 1333: ; ! 1334: ; Get Primary Adapter Type ! 1335: ; ! 1336: ;**************************************************************** ! 1337: netgetdriver = + ! 1338: Debug-Output "NTLANMAN.INF: Label: netgetdriver" ! 1339: ! 1340: Shell "" InitialAdapterInstall ! 1341: ! 1342: Set NetInstallStatus = $($R0) ! 1343: ! 1344: Ifstr(i) $(NetInstallStatus) == STATUS_WANTRAS ! 1345: Set NetInstallStatus = STATUS_SUCCESSFUL ! 1346: Set RasAutoInstall = 1 ! 1347: Debug-Output "NTLANMAN.INF: RAS auto-installation chosen" ! 1348: Endif ! 1349: ! 1350: Debug-Output "NTLANMAN.INF: netgetdriver; returning: "$(NetInstallStatus) ! 1351: ! 1352: ;**************************************************************** ! 1353: ; ! 1354: ; See if user has cancelled; exit if so. Convert EXITNET to ! 1355: ; SUCCESSFUL if this is main installation. ! 1356: ; ! 1357: ;**************************************************************** ! 1358: netcheckquit = + ! 1359: Debug-Output "NTLANMAN.INF: netcheckquit original status: "$(NetInstallStatus) ! 1360: ! 1361: Set UserChoiceList = {"STATUS_SUCCESSFUL",+ ; all is well ! 1362: "STATUS_USERCANCEL",+ ; user wants to exit completely ! 1363: "STATUS_EXITNET",+ ; user wants no network ! 1364: "STATUS_FAILED"} ; things are dismal ! 1365: ! 1366: Ifstr(i) $(!STF_PRODUCT) == "LANMANNT" ! 1367: Set InfReturnList = {"STATUS_SUCCESSFUL",+ ; SUCCESSFUL -> SUCCESSFUL ! 1368: "STATUS_USERCANCEL",+ ; USERCANCEL -> USERCANCEL ! 1369: "STATUS_SUCCESSFUL",+ ; EXITNET -> SUCCESSFUL ! 1370: "STATUS_FAILED"} ; FAILED -> FAILED ! 1371: Set LabelList = {$(retaddr),setupnotdone,setupnotdone,setupnotdone} ! 1372: Else ! 1373: Set InfReturnList = {"STATUS_SUCCESSFUL",+ ; SUCCESSFUL -> SUCCESSFUL ! 1374: "STATUS_USERCANCEL",+ ; USERCANCEL -> USERCANCEL ! 1375: "STATUS_USERCANCEL",+ ; EXITNET -> USERCANCEL ! 1376: "STATUS_FAILED"} ; FAILED -> FAILED ! 1377: Set LabelList = {$(retaddr),setupnotdone,nphase$done,setupnotdone} ! 1378: Endif ! 1379: ! 1380: ! 1381: ! 1382: ! 1383: ! 1384: ! 1385: ; Set the user's choice index ! 1386: ! 1387: Set UserChoice = ~($(UserChoiceList),$(NetInstallStatus)) ! 1388: Ifint $(UserChoice) == 0 ! 1389: ; Default to "STATUS_FAILED" if unintelligible ! 1390: Debug-Output "NTLANMAN.INF: netcheckquit defaulting status to STATUS_FAILED" ! 1391: Set UserChoice = 4 ! 1392: Endif ! 1393: ! 1394: ; Set the return value and return point based on status ! 1395: ! 1396: Set NetInstallStatus = *($(InfReturnList),$(UserChoice)) ! 1397: Set UserRetAddr = *($(LabelList),$(UserChoice)) ! 1398: ! 1399: Debug-Output "NTLANMAN.INF: netcheckquit status: "$(NetInstallStatus)", label: "$(UserRetAddr) ! 1400: ! 1401: Goto $(UserRetAddr) ! 1402: ! 1403: ! 1404: ;**************************************************************** ! 1405: ; ! 1406: ; Run the Subordinate INFs ! 1407: ; ! 1408: ; Execute all the necessary component INFs. First, run the adapter ! 1409: ; INF, then the protocol INF. After, run all the NT LM service INFs ! 1410: ; ! 1411: ;**************************************************************** ! 1412: netruninfs = + ! 1413: ! 1414: Debug-Output "NTLANMAN.INF: Label: netruninfs" ! 1415: ! 1416: Set InfsToBeRun = {} ! 1417: Set OptionsToInstall = {} ! 1418: Set BbToBeShown = {} ! 1419: Set SvcNameList = {} ! 1420: Set AdapterSrcDir = $(!STF_SRCDIR) ! 1421: ! 1422: ForListDo $(ProtoInfList) ! 1423: Set InfsToBeRun = >($(InfsToBeRun),$($)) ! 1424: Set OptionsToInstall = >($(OptionsToInstall),*($(ProtoOptionList),$(#))) ! 1425: Set BbToBeShown = >($(BbToBeShown),*($(ProtoBbList),$(#))) ! 1426: EndForListDo ! 1427: ! 1428: ForListDo $(ServiceInfList) ! 1429: Set InfsToBeRun = >($(InfsToBeRun),$($)) ! 1430: Set OptionsToInstall = >($(OptionsToInstall),*($(ServiceOptionList),$(#))) ! 1431: Set BbToBeShown = >($(BbToBeShown),*($(ServiceBbList),$(#))) ! 1432: EndForListDo ! 1433: ! 1434: ; ! 1435: ; If selected, append the RAS tokens to the extant lists ! 1436: ; ! 1437: Ifint $(RasAutoInstall) == 1 ! 1438: Debug-Output "NTLANMAN.INF: Preparing RAS for installation" ! 1439: read-syms RasServiceData ! 1440: Set InfsToBeRun = >($(InfsToBeRun),$(RAS_InfName)) ! 1441: Set OptionsToInstall = >($(OptionsToInstall),$(RAS_Option)) ! 1442: Set BbToBeShown = >($(BbToBeShown),$(RAS_Billboard)) ! 1443: Endif ! 1444: ! 1445: Debug-Output "NTLANMAN.INF: INFs to be run: "$(InfsToBeRun) ! 1446: Debug-Output "NTLANMAN.INF: Options to install: "$(OptionsToInstall) ! 1447: Debug-Output "NTLANMAN.INF: Billboards to be shown: "$(BbToBeShown) ! 1448: ; ! 1449: ; The list of INFs is now complete. Start shelling... ! 1450: ; ! 1451: Set FailedInfFile = "" ! 1452: ! 1453: ForListDo $(InfsToBeRun) ! 1454: Set ThisInfName = $($) ! 1455: Set BbIndex = *($(BbToBeShown),$(#)) ! 1456: ! 1457: Debug-Output "NTLANMAN.INF: Installing "$(ThisInfName) ! 1458: ! 1459: Ifint $(BbIndex) != 0 ! 1460: read-syms Billboard$(BbIndex)$(!STF_LANGUAGE) ! 1461: Shell "subroutn.inf" PushBillboard NETSTATUSDLG $(Status) ! 1462: Set BillboardVisible = 1 ! 1463: Else-ifint $(BillboardVisible) != 0 ! 1464: Shell "subroutn.inf" PopBillboard ! 1465: Set BillboardVisible = 0 ! 1466: Endif ! 1467: ! 1468: Set FailedInfFile = $(ThisInfName) ! 1469: ! 1470: Set InfOption = *($(OptionsToInstall),$(#)) ! 1471: ! 1472: Shell $(ThisInfName) InstallOption $(!STF_LANGUAGE) $(InfOption) $(AdapterSrcDir) "YES" "NO" "NO" ! 1473: ! 1474: ; Reset the title string ! 1475: Set-title $(!NetProductTitle)" Network Installation" ! 1476: ! 1477: Ifint $($ShellCode) != $(!SHELL_CODE_OK) ! 1478: Debug-Output "NTLANMAN.INF: INF "$(ThisInfName)" SHELL ERROR!" ! 1479: Goto netruninfescape ! 1480: Endif ! 1481: ! 1482: Set NetInstallStatus = $($R0) ! 1483: ! 1484: Ifstr(i) $(NetInstallStatus) != STATUS_SUCCESSFUL ! 1485: Ifstr(i) $(NetInstallStatus) != STATUS_USERCANCEL ! 1486: Debug-Output "NTLANMAN.INF: INF "$(ThisInfName)" returned "$(NetInstallStatus) ! 1487: Goto netruninfescape ! 1488: Endif ! 1489: Endif ! 1490: ! 1491: Set FailedInfFile = "" ! 1492: ! 1493: EndForListDo ! 1494: ! 1495: ; ! 1496: ; All the products are set to be copied, and the Registry is up to date. ! 1497: ; ! 1498: netruninfescape = + ! 1499: ! 1500: Ifint $(BillboardVisible) != 0 ! 1501: Shell "subroutn.inf" PopBillboard ! 1502: Set BillboardVisible = 0 ! 1503: Endif ! 1504: ! 1505: Ifstr(i) $(FailedInfFile) != "" ! 1506: Read-syms FatalError14$(!STF_LANGUAGE) ! 1507: read-syms FatalDlg$(!STF_LANGUAGE) ! 1508: ui start "FatalError" ! 1509: Set NetInstallStatus = STATUS_FAILED ! 1510: Endif ! 1511: ! 1512: Goto netcheckquit ! 1513: ! 1514: ;**************************************************************** ! 1515: ; ! 1516: ; ERROR MESSAGE AND EXIT ROUTINES ! 1517: ; ! 1518: ;**************************************************************** ! 1519: ; ! 1520: ; information display ! 1521: ; ! 1522: infomsg = + ! 1523: read-syms InfoDlg ! 1524: ui start "Warning" ! 1525: goto $(from) ! 1526: ! 1527: ; ! 1528: ; non fatal error display ! 1529: ; ! 1530: nonfatal = + ! 1531: read-syms NonfatalDlg$(!STF_LANGUAGE) ! 1532: ui start "NonFatalError" ! 1533: ifstr(i) $(DLGEVENT) == "OK" ! 1534: goto $(from) ! 1535: else ! 1536: goto end ! 1537: endif ! 1538: ! 1539: ; ! 1540: ; Internal error in dialog handling. ! 1541: ; ! 1542: bogusexit = + ! 1543: Debug-Output "NTLANMAN.INF: BOGUS EXIT from "$(from)" Return addr: "$(retaddr) ! 1544: read-syms FatalError999$(!STF_LANGUAGE) ! 1545: goto fatal ! 1546: ! 1547: ; ! 1548: ; fatal error display ! 1549: ; ! 1550: fatal = + ! 1551: read-syms FatalDlg$(!STF_LANGUAGE) ! 1552: ui start "FatalError" ! 1553: goto term ! 1554: ! 1555: end = + ! 1556: goto term ! 1557: ! 1558: term =+ ! 1559: ! 1560: Ifstr(i) $(!LIBHANDLE) != "" ! 1561: LibraryProcedure DontCare, $(!LIBHANDLE), DeleteAllConnections ! 1562: Endif ! 1563: ! 1564: ! 1565: ! 1566: setupnotdone = + ! 1567: Set InfoMsgText = "Returning to INITIAL.INF" ! 1568: Debug-Output "NTLANMAN.INF: "$(InfoMsgText)"; status "$(NetInstallStatus) ! 1569: ! 1570: returntocaller = + ! 1571: Return $(NetInstallStatus) ! 1572: ! 1573: ! 1574: exit ! 1575: ! 1576: ! 1577: ! 1578: ! 1579: ! 1580: ! 1581: ! 1582: ! 1583: ! 1584: ! 1585: ! 1586: ! 1587: ! 1588: ! 1589: ! 1590: ! 1591: ! 1592: ! 1593: ! 1594: ! 1595: ! 1596: ! 1597: ! 1598: ! 1599: ! 1600: ! 1601: ! 1602: ! 1603: ! 1604: ! 1605: ! 1606: ! 1607: ! 1608: ! 1609: ! 1610: ! 1611: ! 1612: ! 1613: ;************************************************************************** ! 1614: ; ! 1615: ; Code Lifted from HARDWARE.INF for the management of the "adapter type" ! 1616: ; interface. ! 1617: ; ! 1618: ;************************************************************************** ! 1619: ! 1620: [AdapterVars] ! 1621: AdapterHardwareDetected = "" ! 1622: AdapterSystemSet = "" ! 1623: AdapterDefault = "" ! 1624: AdapterOurINFOptions = {} ! 1625: AdapterOemINFOptions = {} ! 1626: AdapterMergedOptions = {} ! 1627: AdapterSpecialOption = {} ! 1628: AdapterCurrentOption = {} ! 1629: ! 1630: AdapterOptionList = {} ! 1631: AdapterOptionTextList = {} ! 1632: AdapterOption = {} ! 1633: AdapterINF = "" ! 1634: AdapterInstall = "NO" ! 1635: AdapterSrcDir = "" ! 1636: AdapterDstDir = "" ! 1637: NcParamInf = "NCPARAM.INF" ! 1638: ! 1639: [InitialAdapterInstall] ! 1640: ; ! 1641: ; ! 1642: StartWait ! 1643: ! 1644: ; ! 1645: ; Guarantee that netcard detection is activated ! 1646: ; ! 1647: Shell "" StartDetection ! 1648: ! 1649: set Status = STATUS_FAILED ! 1650: read-syms OemOptionDiskette$(!STF_LANGUAGE) ! 1651: read-syms Strings$(!STF_LANGUAGE) ! 1652: read-syms ProgressCopy$(!STF_LANGUAGE) ! 1653: ! 1654: Shell "subroutn.inf" ReadSetupHelpIds ! 1655: SetHelpFile "setupnt.hlp" $(!MinimumID) $(!MaximumID) ! 1656: ! 1657: read-syms AdapterVars ! 1658: ! 1659: ; ! 1660: ;;;;detect AdapterVars ! 1661: ; ! 1662: ! 1663: ; ! 1664: ; Set the Copy and Config flags based upon whether ! 1665: ; the NCPA called us or this is main installation ! 1666: ; ! 1667: Set !NtLmDoCopy = "YES" ! 1668: Set !NtLmAddCopy = "YES" ! 1669: Set !NtLmDoConfig = "NO" ! 1670: ! 1671: Ifstr(i) $(!NTN_Origination) == "ncpa" ! 1672: ; Secondary installation ! 1673: Ifstr(i) $(!STF_IDW) == "TRUE" ! 1674: Set !NtLmAddCopy = "NO" ! 1675: Set !NtLmDoCopy = "NO" ! 1676: Endif ! 1677: Else ! 1678: ; Primary installation ! 1679: Set !NtLmDoCopy = "NO" ! 1680: Ifstr(i) $(!STF_IDW) == "TRUE" ! 1681: Set !NtLmAddCopy = "NO" ! 1682: Endif ! 1683: Endif ! 1684: ! 1685: EndWait ! 1686: ; ! 1687: ; initialize all the adapter option vars ! 1688: ; ! 1689: read-syms Billboard1$(!STF_LANGUAGE) ! 1690: Shell "subroutn.inf" PushBillboard NETSTATUSDLG $(Status) ! 1691: ! 1692: StartWait ! 1693: shell "" InitOptionVars $(!STF_LANGUAGE) NetAdapter + ! 1694: $(AdapterHardwareDetected) $(AdapterSystemSet) $(AdapterDefault) ! 1695: ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ! 1696: set AdapterOurINFOptions = $($R1) ! 1697: set AdapterOemINFOptions = $($R2) ! 1698: set AdapterMergedOptions = $($R3) ! 1699: set AdapterSpecialOption = $($R4) ! 1700: set AdapterCurrentOption = $($R5) ! 1701: set AdapterOption = *($($R5), 1) ! 1702: else ! 1703: EndWait ! 1704: Shell "subroutn.inf" PopBillboard ! 1705: shell "SUBROUTN.INF" SetupMessage $(!STF_LANGUAGE) "FATAL" $(Error1) ! 1706: Set Status = STATUS_FAILED ! 1707: goto finish_adapter ! 1708: endif ! 1709: ! 1710: EndWait ! 1711: Shell "subroutn.inf" PopBillboard ! 1712: StartWait ! 1713: ; ! 1714: ; Initalize the listbox vars. Only allow the "None" option during ! 1715: ; primary installation. ! 1716: ; ! 1717: Ifstr(i) $(!NTN_Origination) != "NCPA" ! 1718: Set NoneOption = $(None) ! 1719: Else ! 1720: Set NoneOption = "" ! 1721: Endif ! 1722: ! 1723: Shell "" InitListBoxVars $(!STF_LANGUAGE) $(AdapterMergedOptions) $(AdapterSpecialOption) $(Other) $(NoneOption) ! 1724: ! 1725: ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ! 1726: set AdapterOptionList = $($R1) ! 1727: set AdapterOptionTextList = $($R2) ! 1728: else ! 1729: EndWait ! 1730: shell "SUBROUTN.INF" SetupMessage $(!STF_LANGUAGE) "FATAL" $(Error2) ! 1731: goto finish_adapter ! 1732: endif ! 1733: ! 1734: read-syms DialogConstants ! 1735: EndWait ! 1736: ! 1737: ;------------------------------------------------------------ ! 1738: ; Netcard Detection Logic ! 1739: ;------------------------------------------------------------ ! 1740: ; ! 1741: ; Clear all the local and global variables associated with ! 1742: ; netcard detection. ! 1743: ; ! 1744: Set DtOption = "" ! 1745: Set DtIndex = 0 ! 1746: Set DtInfIndex = 0 ! 1747: Set DtAnyFound = NO ! 1748: Set !STF_NCOPTION = $(DtOption) ! 1749: Set !STF_NCDETCARD = $(DtIndex) ! 1750: Set !STF_NCDETINFO = {} ! 1751: ! 1752: ; ! 1753: ; Call the NCPA wrapper (through NCPARAM.INF) to enable detection. ! 1754: ; ! 1755: Debug-Output "NTLANMAN.INF: calling DTSTART wrapper, mode = "$(!STF_INSTALL_MODE) ! 1756: ! 1757: Shell $(NcParamInf) Param_ControlDetection DTSTART ! 1758: Ifstr(i) $($ShellCode) != $(!SHELL_CODE_OK) ! 1759: Debug-Output "NTLANMAN.INF: shell error (NCPARAM.INF:Param_ControlDetection) : "$($ShellCode) ! 1760: Goto adapter_shell_error ! 1761: Endif ! 1762: ! 1763: Ifstr(i) $($R0) != STATUS_SUCCESSFUL ! 1764: Debug-Output "NTLANMAN.INF: DTSTART wrapper FAILED" ! 1765: Goto detectbypass ! 1766: Endif ! 1767: ; ! 1768: ; If we aren't supposed to detect, skip out ! 1769: ; ! 1770: Ifstr(i) $(!STF_NCDETECT) == NO ! 1771: Goto detectbypass ! 1772: Endif ! 1773: ; ! 1774: ; If CUSTOM, allow the user to skip detection ! 1775: ; ! 1776: Ifstr(i) $(!STF_INSTALL_MODE) == CUSTOM ! 1777: ! 1778: ! 1779: ! 1780: ! 1781: ! 1782: ! 1783: ! 1784: ! 1785: Shell "" WarnDetectStart ! 1786: Ifstr(i) $($R0) != STATUS_SUCCESSFUL ! 1787: Goto detectbypass ! 1788: Endif ! 1789: ! 1790: Endif ! 1791: ! 1792: detectcycle = + ! 1793: ! 1794: Debug-Output "NTLANMAN.INF: calling DTCARD wrapper" ! 1795: ! 1796: StartWait ! 1797: ! 1798: Shell $(NcParamInf) Param_DetectCard ! 1799: Set StartResult = $($R0) ! 1800: Set StartStatus = *($(StartResult),1) ! 1801: ! 1802: Ifstr(i) $($ShellCode) != $(!SHELL_CODE_OK) ! 1803: Debug-Output "NTLANMAN.INF: shell error (NCPARAM.INF:Param_DetectCard) : "$($ShellCode) ! 1804: Goto adapter_shell_error ! 1805: Endif ! 1806: ! 1807: EndWait ! 1808: ! 1809: Ifint $(StartStatus) == 0 ! 1810: Set DtOption = *($(StartResult),2) ! 1811: Set DtIndex = *($(StartResult),3) ! 1812: Set DtType = *($(StartResult),4) ! 1813: Set DtConf = *($(StartResult),5) ! 1814: Set DtBusType = *($(StartResult),6) ! 1815: Set DtBusNum = *($(StartResult),7) ! 1816: Set DtInfo = {$(DtOption),$(DtIndex),$(DtType),$(DtConf),$(DtBusType),$(DtBusNum)} ! 1817: ! 1818: Debug-Output "NTLANMAN.INF: card found is type "$(DtOption)", index "$(DtIndex) ! 1819: ; ! 1820: ; Guarantee that there's an INF file for this card type; ! 1821: ; if not, just try again. ! 1822: ; ! 1823: Set DtInfIndex = ~($(AdapterOptionList),$(DtOption)) ! 1824: Ifint $(DtInfIndex) == 0 ! 1825: Debug-Output "NTLANMAN.INF: Detect: no INF file for option: "$(DtOption) ! 1826: Set DtOption = "" ! 1827: Goto detectcycle ! 1828: Endif ! 1829: Else ! 1830: Set DtOption = "" ! 1831: Set DtIndex = 0 ! 1832: Set DtInfIndex = 0 ! 1833: Goto detectnotfound ! 1834: Endif ! 1835: ! 1836: Set DtAnyFound = YES ! 1837: Set DtInfOptionName = *($(AdapterOptionTextList),$(DtInfIndex)) ! 1838: ; ! 1839: ; If EXPRESS, accept the card automatically ! 1840: ; ! 1841: Ifstr(i) $(!STF_INSTALL_MODE) == EXPRESS ! 1842: Goto detectend ! 1843: Endif ! 1844: ; ! 1845: ; See if the user wants this card or wants to quit ! 1846: ; ! 1847: ! 1848: ! 1849: ! 1850: ! 1851: ! 1852: ! 1853: ! 1854: ! 1855: ! 1856: ! 1857: ! 1858: Shell "" WarnDetectAccept $(DtInfOptionName) ! 1859: ! 1860: Ifstr(i) $($R0) == STATUS_SUCCESSFUL ! 1861: Goto detectend ; user likes this choice ! 1862: Endif ! 1863: ! 1864: ! 1865: Set DtInfOption = 0 ! 1866: Set DtOption = "" ! 1867: Set DtInfIndex = 0 ! 1868: ! 1869: Ifstr(i) $($R0) != STATUS_TRY_AGAIN ! 1870: Goto detectend ; user wants to quit ! 1871: Endif ! 1872: ; ! 1873: ; User doesn't want this card; try again. ! 1874: ; ! 1875: Goto detectcycle ! 1876: ! 1877: detectnotfound = + ! 1878: ! 1879: Shell "" WarnDetectFail $(DtAnyFound) ! 1880: Ifstr(i) $($R0) == STATUS_SUCCESSFUL ! 1881: Goto detectend ! 1882: Endif ! 1883: ; ! 1884: ; User wants to keep trying; reset the iteration ! 1885: ; ! 1886: Debug-Output "NTLANMAN.INF: calling DTRESET wrapper" ! 1887: ! 1888: Shell $(NcParamInf) Param_ControlDetection DTRESET ! 1889: Ifstr(i) $($ShellCode) != $(!SHELL_CODE_OK) ! 1890: Debug-Output "NTLANMAN.INF: shell error (NCPARAM.INF:Param_ControlDetection) : "$($ShellCode) ! 1891: Goto adapter_shell_error ! 1892: Endif ! 1893: ! 1894: Goto detectcycle ! 1895: ! 1896: detectend = + ! 1897: ; ! 1898: ; Establish global variables. ! 1899: ; ! 1900: Set !STF_NCOPTION = $(DtOption) ! 1901: Set !STF_NCDETCARD = $(DtIndex) ! 1902: Set !STF_NCDETINFO = $(DtInfo) ! 1903: ! 1904: detectbypass = + ! 1905: ; ! 1906: ; If we detected (and accepted) a netcard, use it. ! 1907: ; ! 1908: Ifstr(i) $(!STF_NCOPTION) != "" ! 1909: Set AdapterOption = $(!STF_NCOPTION) ! 1910: Goto install_adapter ! 1911: Endif ! 1912: ! 1913: ; ! 1914: ; If main installation, check to see if the user wants RAS ! 1915: ; ! 1916: Ifstr(i) $(!NTN_Origination) != "ncpa" ! 1917: Shell "" WarnCheckRas ! 1918: Ifstr(i) $($R0) == STATUS_WANTRAS ! 1919: Set Status = STATUS_WANTRAS ! 1920: Goto finish_adapter ! 1921: Endif ! 1922: Endif ! 1923: ! 1924: adapter = + ! 1925: ! 1926: read-syms QueryAdapter$(!STF_LANGUAGE) ! 1927: ; ! 1928: ; Set textual variations for dialog text based on mode and product type ! 1929: ; ! 1930: Ifstr(i) $(!NTN_Origination) == "ncpa" ! 1931: ; Secondary installation or NTLMINST.INF ! 1932: Set DlgText = $(DlgText2) ! 1933: Else-Ifstr(i) $(!STF_PRODUCT) == "LANMANNT" ! 1934: ; Primary installation, Advanced Server ! 1935: Set DlgText = $(DlgTextLm) ! 1936: Set Cancel = $(ExitSetup) ! 1937: Else ! 1938: ; Primary installation, Windows NT ! 1939: Set Cancel = $(ExitNoNet) ! 1940: Endif ! 1941: ! 1942: ui start "System" ! 1943: ! 1944: ifstr(i) $(DLGEVENT) == "CONTINUE" ! 1945: Debug-Output "NTLANMAN.INF: CONTINUE message from adapter dialog" ! 1946: ! 1947: ; Find out the option which changed. ! 1948: ; ! 1949: ifstr(i) $(Combo1Out) == $(None) ! 1950: ! 1951: ; Verify that this is REALLY what the user wants ! 1952: ! 1953: Shell "" QueryNoNic $(!STF_LANGUAGE) ! 1954: Ifstr(i) $($ShellCode) != $(!SHELL_CODE_OK) ! 1955: Debug-Output "NTLANMAN.INF: SHELL ERROR: "$($ShellCode) ! 1956: Endif ! 1957: Ifstr(i) $($R0) == "OK" ! 1958: set AdapterOption = NONE ! 1959: ui pop 1 ! 1960: goto install_adapter ! 1961: Endif ! 1962: ! 1963: set ReInit = NO ! 1964: goto adapter ! 1965: ! 1966: else-ifstr(i) $(Combo1Out) != $(Other) ! 1967: set AdapterOption = *($(AdapterOptionList), ~($(Combo1List), $(Combo1Out))) ! 1968: ui pop 1 ! 1969: goto install_adapter ! 1970: else ! 1971: Debug-Output "NTLANMAN.INF: Chose OTHER; calling GetNewOEMOption..." ! 1972: shell "OTHER.INF" GetNewOEMMultiOption $(!STF_LANGUAGE) + ! 1973: $(AdapterOemINFOptions) NetAdapter + ! 1974: $(AdapterDisketteSrc) ! 1975: set ReInit = YES ! 1976: ifstr(i) $($R0) == STATUS_SUCCESSFUL ! 1977: Debug-Output "NTLANMAN.INF: GetNewOEMOption successful" ! 1978: ; ! 1979: ; extract the new variables ! 1980: ; ! 1981: set AdapterOemINFOptions = $($R1) ! 1982: set AdapterOption = $($R2) ! 1983: set AdapterDisketteSrc = $($R4) ! 1984: ; ! 1985: ; Merge our options with the oem options ! 1986: ; ! 1987: shell "" MergeOptions $(AdapterOurINFOptions) $(AdapterOemINFOptions) ! 1988: ifstr(i) $($R0) == STATUS_SUCCESSFUL ! 1989: set AdapterMergedOptions = {$($R1), $($R2)} ! 1990: else ! 1991: shell "SUBROUTN.INF" SetupMessage $(!STF_LANGUAGE) "FATAL" $(Error4) ! 1992: ui pop 1 ! 1993: goto finish_adapter ! 1994: endif ! 1995: ! 1996: ; ! 1997: ; Initialise the listbox vars ! 1998: ; ! 1999: shell "" InitListBoxVars $(!STF_LANGUAGE) $(AdapterMergedOptions) $(AdapterSpecialOption) $(Other) $(None) ! 2000: ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ! 2001: set AdapterOptionList = $($R1) ! 2002: set AdapterOptionTextList = $($R2) ! 2003: else ! 2004: shell "SUBROUTN.INF" SetupMessage $(!STF_LANGUAGE) "FATAL" $(Error2) ! 2005: ui pop 1 ! 2006: goto finish_adapter ! 2007: endif ! 2008: ! 2009: ui pop 1 ! 2010: goto install_adapter ! 2011: ! 2012: else-ifstr(i) $($R0) == "STATUS_USERCANCEL" ! 2013: Debug-Output "NTLANMAN.INF: GetNewOEMOption user cancelled" ! 2014: goto adapter ! 2015: else ! 2016: Debug-Output "NTLANMAN.INF: GetNewOEMOption other error" ! 2017: shell "SUBROUTN.INF" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(Error3) ! 2018: goto adapter ! 2019: endif ! 2020: ! 2021: endif ! 2022: ! 2023: set ReInit = NO ! 2024: goto adapter ! 2025: ! 2026: else-ifstr(i) $(DLGEVENT) == "BACK" ! 2027: set ExitChoice = "OK" ! 2028: ! 2029: ifstr(i) $(!NTN_Origination) != "NCPA" ! 2030: Debug-Output "NTLANMAN.INF: EXIT button: see if user wants to quit" ! 2031: Shell "" QueryUserQuit $(!STF_LANGUAGE) ! 2032: ! 2033: Ifstr(i) $($ShellCode) != $(!SHELL_CODE_OK) ! 2034: Debug-Output "NTLANMAN.INF: SHELL ERROR: "$($ShellCode) ! 2035: Endif ! 2036: ! 2037: Set Status = $($R0) ! 2038: Debug-Output "NTLANMAN.INF: QueryUserQuit returned "$(Status) ! 2039: Else ! 2040: Set Status = STATUS_USERCANCEL ! 2041: endif ! 2042: ! 2043: ifstr(i) $(Status) != STATUS_SUCCESSFUL ! 2044: Debug-Output "NTLANMAN.INF: Quitting [InitialAdapterInstall]" ! 2045: ui pop 1 ! 2046: goto finish_adapter ! 2047: else ! 2048: set ReInit = NO ! 2049: goto adapter ! 2050: endif ! 2051: else ! 2052: ui pop 1 ! 2053: goto finish_adapter ! 2054: endif ! 2055: ! 2056: install_adapter = + ! 2057: Debug-Output "NTLANMAN.INF: Adapter option is "$(AdapterOption) ! 2058: ! 2059: ; ! 2060: ; See if the option is NONE; skip out if so ! 2061: ; ! 2062: Ifstr(i) $(AdapterOption) == NONE ! 2063: Set Status = STATUS_SUCCESSFUL ! 2064: goto skip_setinstall ! 2065: Endif ! 2066: ! 2067: ; ! 2068: ; See if option has changed ! 2069: ; ! 2070: set Changed = YES ! 2071: ifstr(i) $(AdapterOption) == *($(AdapterCurrentOption), 1) ! 2072: set Changed = NO ! 2073: endif ! 2074: ! 2075: set AdapterInstall = YES ! 2076: ! 2077: ; ! 2078: ; check special option first... skip ! 2079: ; ! 2080: ! 2081: ifstr(i) $(AdapterSpecialOption) != {} ! 2082: ifstr(i) $(AdapterOption) == *($(AdapterSpecialOption), 1) ! 2083: goto skip_setinstall ! 2084: endif ! 2085: endif ! 2086: ! 2087: ; choose file name and path based upon origin ! 2088: ! 2089: set AdapterSrcDir = $(AdapterDisketteSrc) ! 2090: ! 2091: shell "" GetOptionFile $(AdapterOption) $(AdapterOemINFOptions) ! 2092: ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ! 2093: set AdapterINF = $(!STF_WINDOWSSYSPATH)"\"$($R1) ! 2094: set AdapterSrcDir = $(AdapterDisketteSrc) ! 2095: ; ! 2096: ; For both IDW and OEM, force "do copy" and "add copy" back to YES ! 2097: ; ! 2098: Set !STF_SRCDIR_OVERRIDE = $(AdapterSrcDir) ! 2099: Set !NtLmDoCopy = "YES" ! 2100: Set !NtLmAddCopy = "YES" ! 2101: goto skip_setinstall ! 2102: endif ! 2103: ! 2104: ; ! 2105: ; check if our option ! 2106: ; ! 2107: ! 2108: shell "" GetOptionFile $(AdapterOption) $(AdapterOurINFOptions) ! 2109: ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ! 2110: set AdapterINF = $($R1) ! 2111: set AdapterSrcDir = $(!STF_SRCDIR) ! 2112: endif ! 2113: ! 2114: skip_setinstall = + ! 2115: ! 2116: ifstr(i) $(AdapterInstall) == YES ! 2117: ifstr(i) $(AdapterINF) != "" ! 2118: read-syms Billboard8$(!STF_LANGUAGE) ! 2119: ! 2120: Shell "subroutn.inf" PushBillboard NETSTATUSDLG $(Status) ! 2121: ! 2122: shell $(AdapterINF) InstallOption $(!STF_LANGUAGE) $(AdapterOption) $(AdapterSrcDir) + ! 2123: $(!NtLmAddCopy) $(!NtLmDoCopy) $(!NtLmDoConfig) ! 2124: Set Status = $($R0) ! 2125: ! 2126: Set !STF_SRCDIR_OVERRIDE = "" ! 2127: ! 2128: Shell "subroutn.inf" PopBillboard ! 2129: Ifstr(i) $(Status) == STATUS_USERCANCEL ! 2130: Goto adapter ! 2131: Endif ! 2132: endif ! 2133: endif ! 2134: ! 2135: goto finish_adapter ! 2136: ! 2137: adapter_shell_error = + ! 2138: set Status = STATUS_FAILED ! 2139: ; ! 2140: ; At this point, $(Status) is one of: ! 2141: ; ! 2142: ; STATUS_SUCCESSFUL ! 2143: ; STATUS_USERCANCEL ! 2144: ; STATUS_EXITNET (only if main installation) ! 2145: ; STATUS_WANTRAS (if RAS was chosen as netcard option) ! 2146: ; ! 2147: finish_adapter = + ! 2148: Ifstr(i) $(AdapterSrcDir) != "" ! 2149: Ifstr(i) $(AdapterSrcDir) != $(!STF_SRCDIR) ! 2150: Set !STF_SRCDIR_OVERRIDE = $(AdapterSrcDir) ! 2151: Endif ! 2152: Endif ! 2153: ! 2154: Return $(Status) ! 2155: ! 2156: ;----------------------------------------------------------------------- ! 2157: ;----------------------------------------------------------------------- ! 2158: ;----------------------------------------------------------------------- ! 2159: ;----------------------------------------------------------------------- ! 2160: ;----------------------------------------------------------------------- ! 2161: ;----------------------------------------------------------------------- ! 2162: ;----------------------------------------------------------------------- ! 2163: ;----------------------------------------------------------------------- ! 2164: ; GenMergeLists ! 2165: ; ! 2166: ; Merge any two lists: ! 2167: ; ! 2168: ; INPUTS: $0 list A ! 2169: ; $1 list B ! 2170: ; ! 2171: ; OUTPUTS: $R0 list (A+B) ! 2172: ; ! 2173: [GenMergeLists] ! 2174: ForListDo $($1) ! 2175: Set $0 = >($($0),$($)) ! 2176: EndForListDo ! 2177: ! 2178: Return $($0) ! 2179: ! 2180: ! 2181: [OemSoftVars] ! 2182: OemSoftHardwareDetected = "" ! 2183: OemSoftSystemSet = "" ! 2184: OemSoftDefault = "" ! 2185: OemSoftOurINFOptions = {} ! 2186: OemSoftOemINFOptions = {} ! 2187: OemSoftMergedOptions = {} ! 2188: OemSoftSpecialOption = {} ! 2189: OemSoftCurrentOption = {} ! 2190: ! 2191: OemSoftOptionList = {} ! 2192: OemSoftOptionTextList = {} ! 2193: OemSoftOption = {} ! 2194: OemSoftINF = "" ! 2195: OemSoftInstall = "NO" ! 2196: OemSoftSrcDir = "" ! 2197: OemSoftDstDir = "" ! 2198: ! 2199: [OemSoftTypes] ! 2200: NDR = NetDriver, ndr ! 2201: NXP = NetTransport, nxp ! 2202: NSV = NetService, nsv ! 2203: NWK = Network, nwk ! 2204: NPR = NetProvider, npr ! 2205: ! 2206: [OemSoftwareInstall] ! 2207: Debug-Output "NTLANMAN.INF: Begin OEM software installation" ! 2208: ; ! 2209: ; ! 2210: StartWait ! 2211: ! 2212: set Status = STATUS_FAILED ! 2213: read-syms OemOptionDiskette$(!STF_LANGUAGE) ! 2214: read-syms Strings$(!STF_LANGUAGE) ! 2215: read-syms ProgressCopy$(!STF_LANGUAGE) ! 2216: ! 2217: Shell "subroutn.inf" ReadSetupHelpIds ! 2218: SetHelpFile "setupnt.hlp" $(!MinimumID) $(!MaximumID) ! 2219: ! 2220: read-syms OemSoftVars ! 2221: ! 2222: ; ! 2223: ; Set the Copy and Config flags based upon whether ! 2224: ; the NCPA called us or this is main installation ! 2225: ; ! 2226: Set !NtLmDoCopy = "YES" ! 2227: Set !NtLmAddCopy = "YES" ! 2228: Set !NtLmDoConfig = "NO" ! 2229: ! 2230: Ifstr(i) $(!NTN_Origination) == "ncpa" ! 2231: ; Secondary installation ! 2232: Ifstr(i) $(!STF_IDW) == "TRUE" ! 2233: Set !NtLmAddCopy = "NO" ! 2234: Set !NtLmDoCopy = "NO" ! 2235: Endif ! 2236: Else ! 2237: ; Primary installation ! 2238: Set !NtLmDoCopy = "NO" ! 2239: Ifstr(i) $(!STF_IDW) == "TRUE" ! 2240: Set !NtLmAddCopy = "NO" ! 2241: Endif ! 2242: Endif ! 2243: ! 2244: ! 2245: Set OemSoftTypeNames = ^(OemSoftTypes,1) ! 2246: Set OemSoftTypeIds = ^(OemSoftTypes,2) ! 2247: EndWait ! 2248: ! 2249: ; ! 2250: ; initialize all the OEM software option vars ! 2251: ; ! 2252: read-syms Billboard9$(!STF_LANGUAGE) ! 2253: Shell "subroutn.inf" PushBillboard NETSTATUSDLG $(Status) ! 2254: StartWait ! 2255: ! 2256: shell "" InitOptionVars $(!STF_LANGUAGE) $(OemSoftTypeNames) $(OemSoftHardwareDetected) $(OemSoftSystemSet) $(OemSoftDefault) ! 2257: ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ! 2258: set OemSoftOurINFOptions = $($R1) ! 2259: set OemSoftOemINFOptions = $($R2) ! 2260: set OemSoftMergedOptions = $($R3) ! 2261: set OemSoftSpecialOption = $($R4) ! 2262: set OemSoftCurrentOption = $($R5) ! 2263: set OemSoftOption = *($($R5), 1) ! 2264: else ! 2265: EndWait ! 2266: Shell "subroutn.inf" PopBillboard ! 2267: shell "SUBROUTN.INF" SetupMessage $(!STF_LANGUAGE) "FATAL" $(Error1) ! 2268: goto finish_oemsoft ! 2269: endif ! 2270: ! 2271: EndWait ! 2272: Shell "subroutn.inf" PopBillboard ! 2273: StartWait ! 2274: ; ! 2275: ; Initalize the listbox vars ! 2276: ; ! 2277: shell "" InitListBoxVars $(!STF_LANGUAGE) $(OemSoftMergedOptions) $(OemSoftSpecialOption) $(Other) "" ! 2278: ! 2279: ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ! 2280: set OemSoftOptionList = $($R1) ! 2281: set OemSoftOptionTextList = $($R2) ! 2282: else ! 2283: EndWait ! 2284: shell "SUBROUTN.INF" SetupMessage $(!STF_LANGUAGE) "FATAL" $(Error2) ! 2285: goto finish_oemsoft ! 2286: endif ! 2287: ! 2288: read-syms DialogConstants ! 2289: EndWait ! 2290: ! 2291: oemsoft = + ! 2292: ! 2293: read-syms QueryOemSoft$(!STF_LANGUAGE) ! 2294: ! 2295: ui start "System" ! 2296: ! 2297: ifstr(i) $(DLGEVENT) == "CONTINUE" ! 2298: Debug-Output "NTLANMAN.INF: CONTINUE message from OEM software dialog" ! 2299: ; ! 2300: ; Find out the option which changed. ! 2301: ; ! 2302: ifstr(i) $(Combo1Out) != $(Other) ! 2303: set OemSoftOption = *($(OemSoftOptionList), ~($(Combo1List), $(Combo1Out))) ! 2304: Debug-Output "NTLANMAN.INF: Changed to choice "$(OemSoftOption) ! 2305: ui pop 1 ! 2306: goto install_oemsoft ! 2307: else ! 2308: Debug-Output "NTLANMAN.INF: Chose OTHER; calling GetNewOEMMultiOption..." ! 2309: shell "OTHER.INF" GetNewOEMMultiOption $(!STF_LANGUAGE) $(OemSoftOemINFOptions) $(OemSoftTypeNames) $(OemSoftDisketteSrc) ! 2310: Set ReInit = YES ! 2311: ifstr(i) $($R0) == STATUS_SUCCESSFUL ! 2312: Debug-Output "NTLANMAN.INF: GetNewOEMOption successful" ! 2313: ; ! 2314: ; extract the new variables ! 2315: ; ! 2316: set OemSoftOemINFOptions = $($R1) ! 2317: set OemSoftOption = $($R2) ! 2318: set OemSoftDisketteSrc = $($R4) ! 2319: ; ! 2320: ; Merge our options with the oem options ! 2321: ; ! 2322: shell "" MergeOptions $(OemSoftOurINFOptions) $(OemSoftOemINFOptions) ! 2323: ifstr(i) $($R0) == STATUS_SUCCESSFUL ! 2324: set OemSoftMergedOptions = {$($R1), $($R2)} ! 2325: else ! 2326: shell "SUBROUTN.INF" SetupMessage $(!STF_LANGUAGE) "FATAL" $(Error4) ! 2327: ui pop 1 ! 2328: goto finish_oemsoft ! 2329: endif ! 2330: ! 2331: ; ! 2332: ; Initialise the listbox vars ! 2333: ; ! 2334: shell "" InitListBoxVars $(!STF_LANGUAGE) $(OemSoftMergedOptions) $(OemSoftSpecialOption) $(Other) "" ! 2335: ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ! 2336: set OemSoftOptionList = $($R1) ! 2337: set OemSoftOptionTextList = $($R2) ! 2338: else ! 2339: shell "SUBROUTN.INF" SetupMessage $(!STF_LANGUAGE) "FATAL" $(Error2) ! 2340: ui pop 1 ! 2341: goto finish_oemsoft ! 2342: endif ! 2343: ! 2344: ui pop 1 ! 2345: goto install_oemsoft ! 2346: ! 2347: else-ifstr(i) $($R0) == "STATUS_USERCANCEL" ! 2348: Debug-Output "NTLANMAN.INF: GetNewOEMOption user cancelled" ! 2349: goto oemsoft ! 2350: else ! 2351: Debug-Output "NTLANMAN.INF: GetNewOEMOption other error" ! 2352: shell "SUBROUTN.INF" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(Error3) ! 2353: goto oemsoft ! 2354: endif ! 2355: ! 2356: endif ! 2357: ! 2358: set ReInit = NO ! 2359: goto oemsoft ! 2360: ! 2361: else-ifstr(i) $(DLGEVENT) == "BACK" ! 2362: set Status = STATUS_USERCANCEL ! 2363: ui pop 1 ! 2364: goto finish_oemsoft ! 2365: else ! 2366: ui pop 1 ! 2367: goto finish_oemsoft ! 2368: endif ! 2369: ! 2370: install_oemsoft = + ! 2371: ; ! 2372: ; See if option has changed ! 2373: ; ! 2374: set Changed = YES ! 2375: ifstr(i) $(OemSoftOption) == *($(OemSoftCurrentOption), 1) ! 2376: set Changed = NO ! 2377: endif ! 2378: ! 2379: ; ! 2380: ; If option has not changed and we are SETUPBOOTED mode then skip ! 2381: ; ! 2382: ifstr(i) $(Changed) == "NO" ! 2383: ifstr(i) $(!STF_INSTALL_TYPE) == "SETUPBOOTED" ! 2384: set OemSoftInstall = "NO" ! 2385: goto skip_setinstall ! 2386: endif ! 2387: endif ! 2388: set OemSoftInstall = "YES" ! 2389: ! 2390: ; ! 2391: ; check special option first ! 2392: ; ! 2393: ! 2394: ifstr(i) $(OemSoftSpecialOption) != {} ! 2395: ifstr(i) $(OemSoftOption) == *($(OemSoftSpecialOption), 1) ! 2396: goto skip_setinstall ! 2397: endif ! 2398: endif ! 2399: ! 2400: ; choose file name and path based upon origin ! 2401: ! 2402: set OemSoftSrcDir = $(OemSoftDisketteSrc) ! 2403: ! 2404: shell "" GetOptionFile $(OemSoftOption) $(OemSoftOemINFOptions) ! 2405: ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ! 2406: set OemSoftINF = $(!STF_WINDOWSSYSPATH)"\"$($R1) ! 2407: set OemSoftSrcDir = $(OemSoftDisketteSrc) ! 2408: ; ! 2409: ; For both IDW and OEM, force "do copy" and "add copy" back to YES ! 2410: ; ! 2411: Set !STF_SRCDIR_OVERRIDE = $(OemSoftSrcDir) ! 2412: Set !NtLmDoCopy = "YES" ! 2413: Set !NtLmAddCopy = "YES" ! 2414: goto skip_setinstall ! 2415: endif ! 2416: ! 2417: ; check if our option ! 2418: ! 2419: shell "" GetOptionFile $(OemSoftOption) $(OemSoftOurINFOptions) ! 2420: ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ! 2421: set OemSoftINF = $($R1) ! 2422: set OemSoftSrcDir = $(!STF_SRCDIR) ! 2423: goto skip_setinstall ! 2424: endif ! 2425: ! 2426: skip_setinstall = + ! 2427: ! 2428: ifstr(i) $(OemSoftInstall) == "YES" ! 2429: ifstr(i) $(OemSoftINF) != "" ! 2430: ! 2431: shell $(OemSoftINF) InstallOption $(!STF_LANGUAGE) $(OemSoftOption) $(OemSoftSrcDir) + ! 2432: $(!NtLmAddCopy) $(!NtLmDoCopy) $(!NtLmDoConfig) ! 2433: ! 2434: Set !STF_SRCDIR_OVERRIDE = "" ! 2435: Set Status = $($R0) ! 2436: ! 2437: Ifstr(i) $(Status) == STATUS_USERCANCEL ! 2438: Goto oemsoft ! 2439: Endif ! 2440: endif ! 2441: endif ! 2442: ! 2443: finish_oemsoft = + ! 2444: ! 2445: Ifstr(i) $(OemSoftSrcDir) != "" ! 2446: Ifstr(i) $(OemSoftSrcDir) != $(!STF_SRCDIR) ! 2447: Set !STF_SRCDIR_OVERRIDE = $(OemSoftSrcDir) ! 2448: Endif ! 2449: Endif ! 2450: ! 2451: Return $(Status) ! 2452: ! 2453: ! 2454: ! 2455: ;----------------------------------------------------------------------- ! 2456: ; ! 2457: ; ROUTINE: InitOptionVars ! 2458: ; ! 2459: ; DESCRIPTION: This routine intialises the values for the option we are ! 2460: ; dealing with. It finds out the options supported by setup. ! 2461: ; It also sees if there is an OEM INF in the windows system ! 2462: ; directory which represents this option. If so it reads in ! 2463: ; the options supported by this INF and then forms a merged ! 2464: ; list from the two. ! 2465: ; ! 2466: ; INPUTS: $0: Language to use ! 2467: ; $1: OptionTypeList; e.g., { NetDriver, NetTransport } ! 2468: ; $2: Hardware detected option ! 2469: ; $3: Software set option ! 2470: ; $4: Default value for option ! 2471: ; ! 2472: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL | ! 2473: ; STATUS_FAILED ! 2474: ; ! 2475: ; $R1: OurINFOptions var {{filename, {OptionList}, {OptionTextList}}} ! 2476: ; $R2: OemINFOptions var {{filename, {OptionList}, {OptionTextList}}, etc} ! 2477: ; $R3: Merged INF Options {{OptionList}, {OptionTextList}} ! 2478: ; $R4: Special Options {Option, OptionText} ! 2479: ; $R5: Current Option {Option, OptionText} ! 2480: ; ! 2481: ;------------------------------------------------------------------------ ! 2482: [InitOptionVars] ! 2483: ! 2484: Debug-Output "NTLANMAN.INF: InitOptionVars called" ! 2485: ! 2486: set Status = STATUS_FAILED ! 2487: set OurINFOptions = {} ! 2488: set OemINFOptions = {} ! 2489: set MergedINFOptions = {} ! 2490: set SpecialOption = {} ! 2491: set CurrentOption = {} ! 2492: Set IovTypeList = $($1) ! 2493: ! 2494: ; ! 2495: ; Determine all Oem options for all types given. These ! 2496: ; are considered to be "our" options, as opposed to newly ! 2497: ; added INF files, which are "oem". ! 2498: ; ! 2499: ForListDo $(IovTypeList) ! 2500: Debug-Output "NTLANMAN.INF: Get options for type "$($) ! 2501: shell "OTHER.INF" ReturnOemOptions $($0) $($) ! 2502: ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ! 2503: Debug-Output "NTLANMAN.INF: Other OEM options found for type "$($) ! 2504: shell "" GenMergeLists $(OurINFOptions) $($R1) ! 2505: set OurINFOptions = $($R0) ! 2506: endif ! 2507: EndForListDo ! 2508: ; ! 2509: ; Merge the two and set the merged list ! 2510: ; ! 2511: shell "" MergeOptions $(OurINFOptions) $(OemINFOptions) ! 2512: ifstr(i) $($R0) == STATUS_SUCCESSFUL ! 2513: set MergedINFOptionList = $($R1) ! 2514: set MergedINFOptionTextList = $($R2) ! 2515: set MergedINFOptions = {$($R1), $($R2)} ! 2516: else ! 2517: Debug-Output "NTLANMAN.INF: InitOptionVars: MergeOptions failed" ! 2518: goto finish_InitOptionVars ! 2519: endif ! 2520: ! 2521: ; ! 2522: ; Form current option. ! 2523: ; ! 2524: ; Algorithm: ! 2525: ; ! 2526: ; Check software set value. If this doesn't exist get hardware detected ! 2527: ; value. If not detected set value to default. ! 2528: ; ! 2529: set Option = "" ! 2530: ifstr(i) $($3) != "" ! 2531: set Option = $($3) ! 2532: else ! 2533: ifstr(i) $($2) != "" ! 2534: set Option = $($2) ! 2535: else-ifstr(i) $($4) == "" ! 2536: set Option = "" ! 2537: else ! 2538: set Option = $($4) ! 2539: endif ! 2540: endif ! 2541: ! 2542: ; ! 2543: ; Check Option against all the options supported ! 2544: ; If found set Current Option, else set the special options var ! 2545: ; and set this to the current option. ! 2546: ; ! 2547: ! 2548: ifstr(i) $(Option) == "" ! 2549: set OptionText = "" ! 2550: else-ifcontains(i) $(Option) in $(MergedINFOptionList) ! 2551: set OptionText = *($(MergedINFOptionTextList), ~($(MergedINFOptionList), $(Option))) ! 2552: else ! 2553: set OptionText = $(Option) ! 2554: set Option = "OEMINSTALLEDOPTION" ! 2555: set SpecialOption = {$(Option), $(OptionText)} ! 2556: endif ! 2557: ! 2558: set CurrentOption = {$(Option), $(OptionText)} ! 2559: set Status = STATUS_SUCCESSFUL ! 2560: ! 2561: finish_InitOptionVars = + ! 2562: Debug-Output "NTLANMAN.INF::InitOptionVars complete " ! 2563: ! 2564: Return $(Status) $(OurINFOptions) $(OemINFOptions) $(MergedINFOptions) $(SpecialOption) $(CurrentOption) ! 2565: ! 2566: ! 2567: ;------------------------------------------------------------------------- ! 2568: ; ! 2569: ; ROUTINE: InitListBoxVars ! 2570: ; ! 2571: ; DESCRIPTION: This routine initialises the option list and the option text ! 2572: ; list to be displayed to the user. ! 2573: ; ! 2574: ; INPUTS: $0: Language ! 2575: ; $1: MergedINFOptions ! 2576: ; $2: SpecialOption ! 2577: ; $3: OtherOption ! 2578: ; $4: NoneOption ! 2579: ; ! 2580: ; OUTPUTS: $R0: STATUS: STATUS_FAILED | ! 2581: ; STATUS_SUCCESSFUL ! 2582: ; ! 2583: ; $R1: OptionList ! 2584: ; $R2: OptionTextList ! 2585: ; ! 2586: ;---------------------------------------------------------------------------- ! 2587: [InitListBoxVars] ! 2588: ! 2589: Debug-Output "NTLANMAN.INF::InitListBoxVars invoked" ! 2590: ! 2591: set Status = STATUS_FAILED ! 2592: set OptionList = {} ! 2593: set OptionTextList = {} ! 2594: Set OptOther = $($3) ! 2595: Set OptNone = $($4) ! 2596: Set UtilityInf = "UTILITY.INF" ! 2597: ! 2598: ; ! 2599: ; Process the standard options ! 2600: ; ! 2601: ! 2602: ifstr(i) $($1) != {} ! 2603: set OptionList = *($($1), 1) ! 2604: set OptionTextList = *($($1), 2) ! 2605: endif ! 2606: ! 2607: ; ! 2608: ; Process the special option if present ! 2609: ; ! 2610: ! 2611: ifstr(i) $($2) != {} ! 2612: set OptionList = >($(OptionList), *($($2), 1)) ! 2613: set OptionTextList = >($(OptionTextList), *($($2), 2)) ! 2614: endif ! 2615: ; ! 2616: ; Sort the lists ascending, case-insensitive ! 2617: ; ! 2618: Shell $(UtilityInf) SortListIndex $(OptionTextList) TRUE FALSE ! 2619: Set IndexList = $($R0) ! 2620: Shell $(UtilityInf) SortByIndex $(OptionTextList) $(IndexList) ! 2621: Set OptionTextList = $($R0) ! 2622: Shell $(UtilityInf) SortByIndex $(OptionList) $(IndexList) ! 2623: Set OptionList = $($R0) ! 2624: ! 2625: ; ! 2626: ; Add the "other" and "none" options only to the text list ! 2627: ; (if present) ! 2628: ; ! 2629: Ifstr(i) $(OptOther) != "" ! 2630: set OptionTextList = >($(OptionTextList), $(OptOther)) ! 2631: Endif ! 2632: Ifstr(i) $(OptNone) != "" ! 2633: set OptionTextList = >($(OptionTextList), $(OptNone)) ! 2634: Endif ! 2635: ! 2636: set Status = STATUS_SUCCESSFUL ! 2637: ! 2638: Return $(Status) $(OptionList) $(OptionTextList) ! 2639: ! 2640: ! 2641: ;----------------------------------------------------------------------- ! 2642: ; ! 2643: ; ROUTINE: MergeOptions ! 2644: ; ! 2645: ; DESCRIPTION: This merges the option lists to form the master list of ! 2646: ; options and optiontext. ! 2647: ; ! 2648: ; INPUTS: $0: OurOptionList ! 2649: ; $1: OemOptionList ! 2650: ; ! 2651: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL | ! 2652: ; STATUS_FAILED ! 2653: ; ! 2654: ; $R1: MergedOptionList ! 2655: ; $R2: MergedOptionTextList ! 2656: ; ! 2657: ; ! 2658: ;------------------------------------------------------------------------ ! 2659: [MergeOptions] ! 2660: ! 2661: Debug-Output "NTLANMAN.INF: MergeOptions called" ! 2662: ! 2663: set Status = STATUS_FAILED ! 2664: set MergedOptionList = {} ! 2665: set MergedOptionTextList = {} ! 2666: ! 2667: ; ! 2668: ; First merge our options in ! 2669: ; ! 2670: ! 2671: ForListDo $($0) ! 2672: set OptionList = *($($), 2) ! 2673: set OptionTextList = *($($), 3) ! 2674: ForListDo $(OptionList) ! 2675: Ifcontains $($) in $(MergedOptionList) ! 2676: else ! 2677: set MergedOptionList = >($(MergedOptionList), $($)) ! 2678: set MergedOptionTextList = >($(MergedOptionTextList), *($(OptionTextList), $(#))) ! 2679: endif ! 2680: EndForListDo ! 2681: EndForListDo ! 2682: ! 2683: ! 2684: ; ! 2685: ; Then merge the oem options in ! 2686: ; ! 2687: ! 2688: ForListDo $($1) ! 2689: set OptionList = *($($), 2) ! 2690: set OptionTextList = *($($), 3) ! 2691: ForListDo $(OptionList) ! 2692: Ifcontains $($) in $(MergedOptionList) ! 2693: else ! 2694: set MergedOptionList = >($(MergedOptionList), $($)) ! 2695: set MergedOptionTextList = >($(MergedOptionTextList), *($(OptionTextList), $(#))) ! 2696: endif ! 2697: EndForListDo ! 2698: EndForListDo ! 2699: ! 2700: set Status = STATUS_SUCCESSFUL ! 2701: Return $(Status) $(MergedOptionList) $(MergedOptionTextList) ! 2702: ! 2703: ! 2704: ;----------------------------------------------------------------------- ! 2705: ; ! 2706: ; ROUTINE: GetOptionFile ! 2707: ; ! 2708: ; DESCRIPTION: Given the Option list and the current option, determines ! 2709: ; if the current option is a supported option and returns the ! 2710: ; file representing the option ! 2711: ; ! 2712: ; INPUTS: $0: OptionChosen ! 2713: ; $1: OptionList {{filename, {optionlist}, {optiontextlist}} ! 2714: ; ! 2715: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL | ! 2716: ; STATUS_FILENOTFOUND | ! 2717: ; STATUS_FAILED ! 2718: ; ! 2719: ; $R1: FileName ! 2720: ; ! 2721: ;------------------------------------------------------------------------ ! 2722: [GetOptionFile] ! 2723: ! 2724: Debug-Output "NTLANMAN.INF: GetOptionFile called" ! 2725: ! 2726: set Status = STATUS_FILENOTFOUND ! 2727: set FileName = "" ! 2728: ; ! 2729: ForListDo $($1) ! 2730: set OptionFile = *($($), 1) ! 2731: set OptionList = *($($), 2) ! 2732: ForListDo $(OptionList) ! 2733: ifstr(i) $($) == $($0) ! 2734: set Status = STATUS_SUCCESSFUL ! 2735: set FileName = $(OptionFile) ! 2736: endif ! 2737: EndForListDo ! 2738: EndForListDo ! 2739: ! 2740: finish_GetOptionFile = + ! 2741: Debug-Output "NTLANMAN.INF: GetOptionFile status "$(Status)"; file: "$(FileName) ! 2742: Return $(Status) $(FileName) ! 2743: ! 2744: ;----------------------------------------------------------------------- ! 2745: ; ROUTINE: QueryUserQuit ! 2746: ; ! 2747: ; DESCRIPTION: This routine queries whether the user wants to quit ! 2748: ; networking setup. Three choices are allowed: ! 2749: ; ! 2750: ; OK means cancel the installation operation ! 2751: ; CANCEL means cancel ! 2752: ; ! 2753: ; ! 2754: ; INPUTS: $0: Language To Use ! 2755: ; ! 2756: ; OUTPUTS: $R0: STATUS_EXITNET if OK in WinNT ! 2757: ; STATUS_USERCANCEL if OK in LanmanNT (AS) ! 2758: ; STATUS_SUCCESSFUL if CANCEL (continue installation) ! 2759: ; ! 2760: ;------------------------------------------------------------------------ ! 2761: [QueryUserQuit] ! 2762: Set Status = STATUS_SUCCESSFUL ! 2763: Set StatusOK = STATUS_USERCANCEL ! 2764: ! 2765: ! 2766: ! 2767: ! 2768: Ifstr(i) $(!STF_PRODUCT) == "LANMANNT" ! 2769: read-syms LmExitWarningDlg$($0) ! 2770: Else ! 2771: Set StatusOK = STATUS_EXITNET ! 2772: read-syms ExitWarningDlg$($0) ! 2773: Endif ! 2774: ! 2775: ! 2776: ui start "MessageBox" ! 2777: Ifstr(i) $(DLGEVENT) == "OK" ! 2778: Set Status = $(StatusOK) ! 2779: Endif ! 2780: ! 2781: fin_QueryUserQuit = + ! 2782: Return $(Status) ! 2783: ! 2784: ;----------------------------------------------------------------------- ! 2785: ; ROUTINE: QueryNoNic ! 2786: ; ! 2787: ; DESCRIPTION: This routine queries whether the user really wants ! 2788: ; the "None" network card choice. ! 2789: ; ! 2790: ; INPUTS: $0: Language To Use ! 2791: ; ! 2792: ; OUTPUTS: $R0: OK or CANCEL ! 2793: ; ! 2794: ;------------------------------------------------------------------------ ! 2795: [QueryNoNic] ! 2796: read-syms NoNicWarningDlg$($0) ! 2797: ui start "MessageBox" ! 2798: return $(DLGEVENT) ! 2799: ! 2800: ! 2801: ;----------------------------------------------------------------------- ! 2802: ; ROUTINE: InstallLmNetFiles ! 2803: ; ! 2804: ; DESCRIPTION: Function called by NTLMINST.INF to install network files. ! 2805: ; ! 2806: ; INPUTS: none ! 2807: ; ! 2808: ; OUTPUTS: $R0: STATUS_SUCCESSFUL ! 2809: ; or STATUS_USERCANCEL ! 2810: ; or STATUS_FAILED ! 2811: ; ! 2812: ;------------------------------------------------------------------------ ! 2813: [InstallLmNetFiles] ! 2814: read-syms GeneralConstants ! 2815: read-syms DestNetPathNames ! 2816: Set Status = STATUS_FAILED ! 2817: ! 2818: Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(!STF_SRCDIR) NO ! 2819: ! 2820: Ifint $($ShellCode) != $(!SHELL_CODE_OK) ! 2821: Goto ILMNF_Return ! 2822: Else-Ifstr(i) $($R0) == STATUS_FAILED ! 2823: Goto ILMNF_Return ! 2824: Else-Ifstr(i) $($R0) == STATUS_USERCANCEL ! 2825: Set Status = $($R0) ! 2826: Goto ILMNF_Return ! 2827: Endif ! 2828: ! 2829: Set !STF_SRCDIR = $($R1) ! 2830: ! 2831: Set Status = STATUS_SUCCESSFUL ! 2832: ! 2833: ILMNF_Return = + ! 2834: Return $(Status) ! 2835: ! 2836: ! 2837: ! 2838: ;----------------------------------------------------------------------- ! 2839: ; ! 2840: ; ROUTINE: InstallOemHook ! 2841: ; ! 2842: ; DESCRIPTION: Install the INF file OEMHOOK.INF, which contains ! 2843: ; whatever network alterations and enhancements the ! 2844: ; OEM requires. ! 2845: ; ! 2846: ; Since this file is not required, no error checking ! 2847: ; is done. ! 2848: ; ! 2849: ; INPUTS: None ! 2850: ; ! 2851: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL always ! 2852: ; ! 2853: ;------------------------------------------------------------------------ ! 2854: [InstallOemHook] ! 2855: Set InfName = "OEMHOOK.INF" ! 2856: ! 2857: Debug-Output "NTLANMAN.INF: Installing OEMHOOK.INF if present" ! 2858: ! 2859: Shell $(InfName) InstallOption $(!STF_LANGUAGE) $(InfOption) $(!STF_SRCDIR) "YES" "NO" "NO" ! 2860: ! 2861: IHK_Exit = + ! 2862: Return STATUS_SUCCESSFUL ! 2863: ! 2864: ! 2865: ! 2866: ! 2867: ! 2868: ! 2869: ! 2870: ! 2871: ! 2872: ! 2873: ! 2874: ! 2875: ! 2876: ! 2877: ! 2878: ! 2879: ! 2880: ! 2881: ! 2882: ! 2883: ! 2884: ! 2885: ! 2886: ! 2887: ! 2888: ! 2889: ! 2890: ! 2891: ! 2892: ! 2893: ! 2894: ! 2895: ! 2896: ! 2897: ! 2898: ! 2899: ! 2900: ! 2901: ! 2902: ! 2903: ! 2904: ! 2905: ! 2906: ! 2907: ! 2908: ! 2909: ! 2910: ! 2911: ! 2912: ;----------------------------------------------------------------------- ! 2913: ; ! 2914: ; ROUTINE: StartDetection ! 2915: ; ! 2916: ; DESCRIPTION: Start the newly installed netcard detection service ! 2917: ; ! 2918: ; ! 2919: ; INPUTS: None ! 2920: ; ! 2921: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL always ! 2922: ; ! 2923: ;------------------------------------------------------------------------ ! 2924: [StartDetection] ! 2925: Set UtilityInf = "UTILITY.INF" ! 2926: Set ServiceName = "NETDETECT" ! 2927: Set ReturnStatus = STATUS_SUCCESSFUL ! 2928: ! 2929: Debug-Output "NTLANMAN.INF: Starting the netcard detection service" ! 2930: ! 2931: Set FLibraryErrCtl = 1 ! 2932: LibraryProcedure StartResult $(!NCPA_HANDLE), CPlSetup $(!STF_HWND), STARTSVC, $(ServiceName) ! 2933: Set FLibraryErrCtl = 0 ! 2934: ! 2935: Set StartStatus = *($(StartResult),1) ! 2936: Debug-Output "NTLANMAN.INF: NETDETECT status was: "$(StartStatus) ! 2937: ! 2938: ; Check that it started or is already running ! 2939: ! 2940: Ifint $(StartStatus) != 0 ! 2941: Ifint $(StartStatus) != 1056 ! 2942: Set ReturnStatus = STATUS_FAILED ! 2943: Endif ! 2944: Endif ! 2945: ! 2946: ; Update the netcard detection DLL name list ! 2947: ! 2948: Shell $(UtilityInf) UpdateDetectionDllNames ! 2949: ! 2950: IHK_Exit = + ! 2951: Return $(ReturnStatus) ! 2952: ! 2953: ! 2954: ;----------------------------------------------------------------------- ! 2955: ; ! 2956: ; ROUTINE: WarnDetectStart ! 2957: ; ! 2958: ; DESCRIPTION: Warn the user that netcard detection is about to start ! 2959: ; ! 2960: ; INPUTS: None ! 2961: ; ! 2962: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL if detection desired ! 2963: ; STATUS_FAILED if undesirable ! 2964: ; ! 2965: ;------------------------------------------------------------------------ ! 2966: [WarnDetectStart] ! 2967: Set Result = STATUS_SUCCESSFUL ! 2968: Read-syms WarnDetectDlg$(!STF_LANGUAGE) ! 2969: ! 2970: ui start "Info" ! 2971: ! 2972: Ifstr(i) $(DLGEVENT) != CONTINUE ! 2973: Set Result = STATUS_FAILED ! 2974: Endif ! 2975: ! 2976: ui pop 1 ! 2977: Return $(Result) ! 2978: ! 2979: ;----------------------------------------------------------------------- ! 2980: ; ! 2981: ; ROUTINE: WarnDetectAccept ! 2982: ; ! 2983: ; DESCRIPTION: Warn the user that netcard detection is about to start ! 2984: ; ! 2985: ; INPUTS: $0: Name of netcard found ! 2986: ; ! 2987: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL if card is OK ! 2988: ; STATUS_FAILED if detection is to cease ! 2989: ; STATUS_TRY_AGAIN if another card is to be found ! 2990: ; ! 2991: ;------------------------------------------------------------------------ ! 2992: [WarnDetectAccept] ! 2993: Set Result = STATUS_SUCCESSFUL ! 2994: Set DlgData = $($0) ! 2995: Read-syms WarnDetectAccept$(!STF_LANGUAGE) ! 2996: ui start "Info" ! 2997: ! 2998: Ifstr(i) $(DLGEVENT) == EXIT ! 2999: Set Result = STATUS_FAILED ! 3000: Else-Ifstr(i) $(DLGEVENT) == BACK ! 3001: Set Result = STATUS_TRY_AGAIN ! 3002: Else ! 3003: Set Result = STATUS_SUCCESSFUL ! 3004: Endif ! 3005: ! 3006: ui pop 1 ! 3007: Return $(Result) ! 3008: ! 3009: ;----------------------------------------------------------------------- ! 3010: ; ! 3011: ; ROUTINE: WarnDetectFail ! 3012: ; ! 3013: ; DESCRIPTION: Warn the user that netcard detection has failed. ! 3014: ; Allow reiteration ! 3015: ; ! 3016: ; INPUTS: $0: YES if a netcard was detected previously ! 3017: ; ! 3018: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL if user wants to stop ! 3019: ; STATUS_FAILED if user wants to retry ! 3020: ; ! 3021: ;------------------------------------------------------------------------ ! 3022: [WarnDetectFail] ! 3023: Set FoundCard = $($0) ! 3024: Set Result = STATUS_SUCCESSFUL ! 3025: Read-syms WarnDetectFail$(!STF_LANGUAGE) ! 3026: Ifstr(i) $(FoundCard) != YES ! 3027: Read-syms WarnDetectFail2$(!STF_LANGUAGE) ! 3028: Endif ! 3029: ! 3030: ui start "Info" ! 3031: ! 3032: Ifstr(i) $(DLGEVENT) != CONTINUE ! 3033: Set Result = STATUS_FAILED ! 3034: Endif ! 3035: ! 3036: ui pop 1 ! 3037: Return $(Result) ! 3038: ! 3039: ;----------------------------------------------------------------------- ! 3040: ; ! 3041: ; ROUTINE: WarnCheckRas ! 3042: ; ! 3043: ; DESCRIPTION: See if the user wants RAS installed. ! 3044: ; ! 3045: ; INPUTS: None ! 3046: ; ! 3047: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL if continue to pick net card ! 3048: ; STATUS_WANTRAS if RAS is to be installed ! 3049: ; ! 3050: ;------------------------------------------------------------------------ ! 3051: [WarnCheckRas] ! 3052: Set Result = STATUS_SUCCESSFUL ! 3053: Read-syms WarnInstallRas$(!STF_LANGUAGE) ! 3054: ! 3055: ui start "Info" ! 3056: ! 3057: Ifstr(i) $(DLGEVENT) != CONTINUE ! 3058: Set Result = STATUS_WANTRAS ! 3059: Endif ! 3060: ! 3061: ui pop 1 ! 3062: Return $(Result) ! 3063: ! 3064: ! 3065: ! 3066: ! 3067: ! 3068: ! 3069: ! 3070: ! 3071: ! 3072: ! 3073: ! 3074: ! 3075: ! 3076: ! 3077: ! 3078: ! 3079: ! 3080: ! 3081: ! 3082: ! 3083: ! 3084: ! 3085: ! 3086: ! 3087: ! 3088: ! 3089: ! 3090: ! 3091: ! 3092: ! 3093: ! 3094: ! 3095: ! 3096: ! 3097: ! 3098: ! 3099: ! 3100: ! 3101: ! 3102: ! 3103: ! 3104: ! 3105: ! 3106: ! 3107: ! 3108: ! 3109: ! 3110: ! 3111: ! 3112: ! 3113: ! 3114: ! 3115: ;**************************************************************************** ! 3116: ; * ! 3117: ; Network File Installation * ! 3118: ; * ! 3119: ;**************************************************************************** ! 3120: [Install-All-Files-Now] ! 3121: set !STF_NCPA_FLASH_COPYLIST = TRUE ! 3122: CopyFilesInCopyList ! 3123: exit ! 3124: ! 3125: ! 3126: ! 3127: ! 3128: ! 3129: ! 3130: ! 3131: ! 3132: ! 3133: ! 3134: ! 3135: ! 3136: ! 3137: ! 3138: ! 3139: ! 3140: ! 3141: ! 3142: ;*********************************************************************************************** ! 3143: ; ! 3144: ; File Lists ! 3145: ; ! 3146: ; ! 3147: ; Network INF files must already be present on the drive when this INF is run. ! 3148: ; ! 3149: ;***********************************************************************************************
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.