|
|
1.1 ! root 1: ;----------------------------------------------------------------------- ! 2: ; OPTION TYPE ! 3: ; ----------- ! 4: ; This identifies the Option type we are dealing with. The different ! 5: ; possible types are: ! 6: ; ! 7: ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ... ! 8: ;----------------------------------------------------------------------- ! 9: ! 10: [Identification] ! 11: OptionType = VIDEO ! 12: ! 13: ;----------------------------------------------------------------------- ! 14: ; LANGUAGES SUPPORTED ! 15: ; ------------------- ! 16: ; ! 17: ; The languages supported by the OEM INF, For every language supported ! 18: ; we need to have a separate text section for every displayable text ! 19: ; section. ! 20: ; ! 21: ;----------------------------------------------------------------------- ! 22: ! 23: [LanguagesSupported] ! 24: ENG ! 25: ! 26: ;----------------------------------------------------------------------- ! 27: ; OPTION LIST ! 28: ; ----------- ! 29: ; This section lists the OEM Option key names. These keys are locale ! 30: ; independent and used to represent the option in a locale independent ! 31: ; manner. ! 32: ; ! 33: ;----------------------------------------------------------------------- ! 34: ! 35: ; ! 36: ; Option list order: ! 37: ; Option = Miniport driver, BitsPerPel, XResolution, YResolution, VRefresh, Interlaced ! 38: ; ! 39: ; If you don't want to create a VRefresh or Interlaced value under the service ! 40: ; parameters then use the value "" ! 41: ! 42: [Options] ! 43: "OEMJazzVXL484" = oemvxl , 8 , 1024 , 768 , 60 , 0 ! 44: ! 45: ; ! 46: ; This maps detected options into the options we support ! 47: ; ! 48: ; Format: DetectedOption = MappedOption ! 49: ; ! 50: ! 51: [MapOfOptions] ! 52: "Jazz G300" = "Jazz G300" ! 53: "Jazz G364" = "Jazz G364" ! 54: "Jazz VXL484" = "Jazz VXL484" ! 55: ! 56: ; ! 57: ; Order of the information: ! 58: ; ! 59: ; Port driver = Type, Group, ErrorControl, Tag, InstalledDisplay, VgaCompatible, EventMessageFile, TypesSupported ! 60: ; ! 61: ! 62: [MiniportDrivers] ! 63: oemvxl = !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, 2, {oemvxl}, 0, %SystemRoot%\System32\IoLogMsg.dll , 7 ! 64: ! 65: ;----------------------------------------------------------------------- ! 66: ; OPTION TEXT SECTION ! 67: ; ------------------- ! 68: ; These are text strings used to identify the option to the user. There ! 69: ; are separate sections for each language supported. The format of the ! 70: ; section name is "OptionsText" concatenated with the Language represented ! 71: ; by the section. ! 72: ; ! 73: ;----------------------------------------------------------------------- ! 74: ! 75: [OptionsTextENG] ! 76: "OEMJazzVXL484" = "Oem for Frame Buffer Video VXL484" ! 77: ! 78: ! 79: ;--------------------------------------------------------------------------- ! 80: ; 1. Identify ! 81: ; ! 82: ; DESCRIPTION: To verify that this INF deals with the same type of options ! 83: ; as we are choosing currently. ! 84: ; ! 85: ; INPUT: None ! 86: ; ! 87: ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL ! 88: ; $($R1): Option Type (COMPUTER ...) ! 89: ; $($R2): Diskette description ! 90: ;--------------------------------------------------------------------------- ! 91: ! 92: [Identify] ! 93: ; ! 94: ; ! 95: read-syms Identification ! 96: ! 97: set Status = STATUS_SUCCESSFUL ! 98: set Identifier = $(OptionType) ! 99: set Media = #("Source Media Descriptions", 1, 1) ! 100: ! 101: Return $(Status) $(Identifier) $(Media) ! 102: ! 103: ! 104: ! 105: ;------------------------------------------------------------------------ ! 106: ; 2. ReturnOptions: ! 107: ; ! 108: ; DESCRIPTION: To return the option list supported by this INF and the ! 109: ; localised text list representing the options. ! 110: ; ! 111: ; ! 112: ; INPUT: $($0): Language used. ( ENG | FRN | ... ) ! 113: ; ! 114: ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ! 115: ; STATUS_NOLANGUAGE ! 116: ; STATUS_FAILED ! 117: ; ! 118: ; $($R1): Option List ! 119: ; $($R2): Option Text List ! 120: ;------------------------------------------------------------------------ ! 121: ! 122: [ReturnOptions] ! 123: ; ! 124: ; ! 125: set Status = STATUS_FAILED ! 126: set OptionList = {} ! 127: set OptionTextList = {} ! 128: ! 129: ; ! 130: ; Check if the language requested is supported ! 131: ; ! 132: set LanguageList = ^(LanguagesSupported, 1) ! 133: Ifcontains(i) $($0) in $(LanguageList) ! 134: goto returnoptions ! 135: else ! 136: set Status = STATUS_NOLANGUAGE ! 137: goto finish_ReturnOptions ! 138: endif ! 139: ! 140: ; ! 141: ; form a list of all the options and another of the text representing ! 142: ; ! 143: ! 144: returnoptions = + ! 145: set OptionList = ^(Options, 0) ! 146: set OptionTextList = ^(OptionsText$($0), 1) ! 147: set Status = STATUS_SUCCESSFUL ! 148: ! 149: finish_ReturnOptions = + ! 150: Return $(Status) $(OptionList) $(OptionTextList) ! 151: ! 152: ! 153: ;--------------------------------------------------------------------------- ! 154: ; MapToSupportedOption ! 155: ; ! 156: ; DESCRIPTION: To map a hardware detected option to the NT Supported ! 157: ; option which represents it. ! 158: ; ! 159: ; INPUT: $($0): Option ! 160: ; ! 161: ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL ! 162: ; $($R1): Mapped Option ! 163: ; ! 164: ;--------------------------------------------------------------------------- ! 165: ! 166: [MapToSupportedOption] ! 167: ; ! 168: set Status = STATUS_FAILED ! 169: set MappedOption = $($0) ! 170: ! 171: ; ! 172: ; If the option is one we can support using one of our standard options ! 173: ; then map it to the standard option else pass it back as such to be ! 174: ; an OEM installed option ! 175: ; ! 176: ! 177: set OptionList = ^(MapOfOptions, 0) ! 178: ifcontains $($0) in $(OptionList) ! 179: set MappedOption = #(MapOfOptions, $($0), 1) ! 180: endif ! 181: ! 182: set Status = STATUS_SUCCESSFUL ! 183: Return $(Status) $(MappedOption) ! 184: ! 185: ! 186: ! 187: [ServicesEntry] ! 188: CurrentEntry = "" ? $(!LIBHANDLE) GetDevicemapValue Video \Device\Video0 ! 189: ! 190: ; ! 191: ; InstallOption: ! 192: ; ! 193: ; FUNCTION: To copy files representing Options ! 194: ; To configure the installed option ! 195: ; To update the registry for the installed option ! 196: ; ! 197: ; INPUT: $($0): Language to use ! 198: ; $($1): OptionID to install ! 199: ; $($2): SourceDirectory ! 200: ; $($3): AddCopy (YES | NO) ! 201: ; $($4): DoCopy (YES | NO) ! 202: ; $($5): DoConfig (YES | NO) ! 203: ; ! 204: ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ! 205: ; STATUS_NOLANGUAGE | ! 206: ; STATUS_USERCANCEL | ! 207: ; STATUS_FAILED ! 208: ; ! 209: ! 210: [InstallOption] ! 211: ! 212: ; ! 213: ; Set default values for ! 214: ; ! 215: set Status = STATUS_FAILED ! 216: set DrivesToFree = {} ! 217: ! 218: ; ! 219: ; extract parameters ! 220: ; ! 221: set Option = $($1) ! 222: set SrcDir = $($2) ! 223: set AddCopy = $($3) ! 224: set DoCopy = $($4) ! 225: set DoConfig = $($5) ! 226: ! 227: ; ! 228: ; Check if the language requested is supported ! 229: ; ! 230: set LanguageList = ^(LanguagesSupported, 1) ! 231: Ifcontains(i) $($0) in $(LanguageList) ! 232: else ! 233: set Status = STATUS_NOLANGUAGE ! 234: goto finish_InstallOption ! 235: endif ! 236: read-syms Strings$($0) ! 237: ! 238: ; ! 239: ; check to see if Option is supported. ! 240: ; ! 241: ! 242: set OptionList = ^(Options, 0) ! 243: ifcontains $(Option) in $(OptionList) ! 244: else ! 245: goto finish_InstallOption ! 246: endif ! 247: set OptionList = "" ! 248: ! 249: ; ! 250: ; Option has been defined already ! 251: ; ! 252: ! 253: set MiniportDriver = #(Options, $(Option), 1) ! 254: set BitsPerPel = #(Options, $(Option), 2) ! 255: set XResolution = #(Options, $(Option), 3) ! 256: set YResolution = #(Options, $(Option), 4) ! 257: set VRefresh = #(Options, $(Option), 5) ! 258: set Interlaced = #(Options, $(Option), 6) ! 259: ! 260: set Type = $(#(MiniportDrivers, $(MiniportDriver), 1)) ! 261: set Group = #(MiniportDrivers, $(MiniportDriver), 2) ! 262: set ErrorControl = $(#(MiniportDrivers, $(MiniportDriver), 3)) ! 263: set Tag = #(MiniportDrivers, $(MiniportDriver), 4) ! 264: set InstalledDisplays = #(MiniportDrivers, $(MiniportDriver), 5) ! 265: set VgaCompatible = #(MiniportDrivers, $(MiniportDriver), 6) ! 266: set EventMessageFile = #(MiniportDrivers, $(MiniportDriver), 7) ! 267: set TypesSupported = #(MiniportDrivers, $(MiniportDriver), 8) ! 268: ! 269: ! 270: read-syms ServicesEntry ! 271: detect ServicesEntry ! 272: ! 273: installtheoption = + ! 274: ! 275: ; ! 276: ; Code to add files to copy list ! 277: ; ! 278: ! 279: ifstr(i) $(AddCopy) == "YES" ! 280: set DoActualCopy = NO ! 281: set FileToCheck = #(Files-DisplayMiniportDrivers, $(MiniportDriver), 2) ! 282: LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck) ! 283: ifstr(i) $(STATUS) == NO ! 284: set DoActualCopy = YES ! 285: goto addfiles ! 286: endif ! 287: ForListDo $(InstalledDisplays) ! 288: set FileToCheck = #(Files-DisplayDLLs, $($), 2) ! 289: LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck) ! 290: ifstr(i) $(STATUS) == NO ! 291: set DoActualCopy = YES ! 292: endif ! 293: EndForListDo ! 294: ! 295: addfiles = + ! 296: ifstr(i) $(DoActualCopy) == NO ! 297: shell "subroutn.inf" DriversExist $($0) $(String1) ! 298: ifint $($ShellCode) != $(!SHELL_CODE_OK) ! 299: Debug-Output "VIDEO.INF: shelling DriversExist failed" ! 300: goto finish_InstallOption ! 301: endif ! 302: ! 303: ifstr(i) $($R0) == STATUS_CURRENT ! 304: else-ifstr(i) $($R0) == STATUS_NEW ! 305: set DoActualCopy = YES ! 306: else-ifstr(i) $($R0) == STATUS_USERCANCEL ! 307: Debug-Output "VIDEO.INF: User cancelled video installation" ! 308: goto finish_InstallOption ! 309: else ! 310: Debug-Output "VIDEO.INF: Error reported in DriversExist routine in SUBROUTN.INF" ! 311: goto finish_InstallOption ! 312: endif ! 313: endif ! 314: ! 315: ifstr(i) $(DoActualCopy) == YES ! 316: ! 317: shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2) ! 318: ifint $($ShellCode) != $(!SHELL_CODE_OK) ! 319: Debug-Output "Video.INF: shelling DoAskSourceEx failed" ! 320: goto finish_InstallOption ! 321: endif ! 322: ! 323: ifstr(i) $($R0) == STATUS_SUCCESSFUL ! 324: set SrcDir = $($R1) ! 325: ifstr(i) $($R2) != "" ! 326: set DrivesToFree = >($(DrivesToFree), $($R2)) ! 327: endif ! 328: else ! 329: Debug-Output "Video.inf: User cancelled asking source." ! 330: goto finish_InstallOption ! 331: endif ! 332: ! 333: install Install-AddCopyOption ! 334: ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS" ! 335: Debug-Output "Adding video files to copy list failed" ! 336: goto finish_InstallOption ! 337: endif ! 338: else ! 339: set DoCopy = NO ! 340: endif ! 341: endif ! 342: ! 343: ifstr(i) $(DoCopy) == "YES" ! 344: read-syms ProgressCopy$($0) ! 345: install Install-DoCopyOption ! 346: ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE" ! 347: Debug-Output "Copying files failed" ! 348: goto finish_InstallOption ! 349: else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT" ! 350: set Status = STATUS_USERCANCEL ! 351: goto finish_InstallOption ! 352: endif ! 353: endif ! 354: ! 355: ifstr(i) $(DoConfig) == "YES" ! 356: ! 357: ; ! 358: ; first run a privilege check on modifying the setup node ! 359: ; ! 360: ! 361: shell "registry.inf" CheckSetupModify ! 362: ifint $($ShellCode) != $(!SHELL_CODE_OK) ! 363: goto finish_InstallOption ! 364: endif ! 365: ! 366: ifstr(i) $($R0) != STATUS_SUCCESSFUL ! 367: goto finish_InstallOption ! 368: endif ! 369: ! 370: ; ! 371: ; first make a new video entry, the entry is created automatically ! 372: ; enabled ! 373: ; ! 374: ! 375: set ServiceNode = $(MiniportDriver) ! 376: set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-DisplayMiniportDrivers, $(MiniportDriver), 2) ! 377: ! 378: set ServicesValues = { + ! 379: {Type, 0, $(!REG_VT_DWORD), $(Type) }, + ! 380: {Start, 0, $(!REG_VT_DWORD), $(!SERVICE_SYSTEM_START) }, + ! 381: {Group, 0, $(!REG_VT_SZ), $(Group) }, + ! 382: {ErrorControl, 0, $(!REG_VT_DWORD), $(ErrorControl) }, + ! 383: {Tag, 0, $(!REG_VT_DWORD), $(Tag) }, + ! 384: {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary) } + ! 385: } ! 386: set ParametersValues = { + ! 387: {InstalledDisplayDrivers, 0, $(!REG_VT_MULTI_SZ), $(InstalledDisplays) }, + ! 388: {VgaCompatible, 0, $(!REG_VT_DWORD), $(VgaCompatible) }, + ! 389: {DefaultSettings.BitsPerPel, 0, $(!REG_VT_DWORD), $(BitsPerPel) }, + ! 390: {DefaultSettings.XResolution, 0, $(!REG_VT_DWORD), $(XResolution) }, + ! 391: {DefaultSettings.YResolution, 0, $(!REG_VT_DWORD), $(YResolution) } + ! 392: } ! 393: ! 394: ifstr(i) $(VRefresh) != "" ! 395: set VRefreshValue = {DefaultSettings.VRefresh, 0, $(!REG_VT_DWORD), $(VRefresh)} ! 396: set ParametersValue = >($(ParametersValue), $(VRefreshValue)) ! 397: endif ! 398: ! 399: ifstr(i) $(Interlaced) != "" ! 400: set InterlacedValue = {DefaultSettings.Interlaced, 0, $(!REG_VT_DWORD), $(Interlaced)} ! 401: set ParametersValue = >($(ParametersValue), $(InterlacedValue)) ! 402: endif ! 403: ! 404: set DeviceValues = {} ! 405: set EventLogValues = { + ! 406: {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, + ! 407: {TypesSupported, 0, $(!REG_VT_DWORD), $(TypesSupported) } + ! 408: } ! 409: ! 410: ! 411: shell "registry.inf" MakeServicesEntry $(ServiceNode) + ! 412: $(ServicesValues) + ! 413: $(ParametersValues) + ! 414: $(DeviceValues) + ! 415: $(EventLogValues) + ! 416: Device0 ! 417: ! 418: ! 419: ifint $($ShellCode) != $(!SHELL_CODE_OK) ! 420: Debug-Output "Couldn't execute MakeServicesEntry in registry.inf" ! 421: goto finish_InstallOption ! 422: endif ! 423: ! 424: ifstr(i) $($R0) != STATUS_SUCCESSFUL ! 425: Debug-Output "MakeServicesEntry failed for video" ! 426: goto finish_InstallOption ! 427: endif ! 428: ! 429: ; ! 430: ; ! 431: ; then disable the previous video entry ! 432: ; ! 433: ! 434: ifstr(i) $(CurrentEntry) != $(MiniportDriver) ! 435: ifstr(i) $(CurrentEntry) != VGA ! 436: ifstr(i) $(CurrentEntry) != "" ! 437: shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_DISABLED) ! 438: ! 439: ifint $($ShellCode) != $(!SHELL_CODE_OK) ! 440: Debug-Output "Couldn't find DisableServicesEntry in registry.inf" ! 441: goto errorconfig ! 442: endif ! 443: ! 444: ifstr(i) $($R0) != STATUS_SUCCESSFUL ! 445: Debug-Output "DisableServices entry failed" ! 446: endif ! 447: endif ! 448: endif ! 449: endif ! 450: ! 451: goto configdone ! 452: ! 453: errorconfig = + ! 454: ifstr(i) $(CurrentEntry) != $(MiniportDriver) ! 455: shell "registry.inf" ModifyServicesEntry $(MiniportDriver) $(!SERVICE_DISABLED) ! 456: ifstr(i) $(CurrentEntry) != "" ! 457: shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_SYSTEM_START) ! 458: endif ! 459: endif ! 460: goto finish_InstallOption ! 461: ! 462: configdone = + ! 463: ! 464: endif ! 465: ! 466: set Status = STATUS_SUCCESSFUL ! 467: ! 468: finish_InstallOption = + ! 469: ForListDo $(DrivesToFree) ! 470: LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE" ! 471: EndForListDo ! 472: ! 473: Return $(Status) ! 474: ! 475: ! 476: [Install-AddCopyOption] ! 477: ! 478: set STF_VITAL = "" ! 479: ; ! 480: ; Add the files to the copy list ! 481: ; ! 482: AddSectionKeyFileToCopyList Files-DisplayMiniportDrivers + ! 483: $(MiniportDriver) + ! 484: $(SrcDir) + ! 485: $(!STF_WINDOWSSYSPATH)\drivers ! 486: ! 487: ForListDo $(InstalledDisplays) ! 488: AddSectionKeyFileToCopyList Files-DisplayDLLs + ! 489: $($) + ! 490: $(SrcDir) + ! 491: $(!STF_WINDOWSSYSPATH) ! 492: ! 493: EndForListDo ! 494: ! 495: exit ! 496: ! 497: ! 498: [Install-DoCopyOption] ! 499: ! 500: ; ! 501: ; Copy files in the copy list ! 502: ; ! 503: CopyFilesInCopyList ! 504: exit ! 505: ! 506: ;************************************************************************** ! 507: ; PROGRESS GUAGE VARIABLES ! 508: ;************************************************************************** ! 509: ! 510: [ProgressCopyENG] ! 511: ProCaption = "Windows NT Setup" ! 512: ProCancel = "Cancel" ! 513: ProCancelMsg = "Windows NT is not correcly installed. Are you sure you want "+ ! 514: "to cancel copying files?" ! 515: ProCancelCap = "Setup Message" ! 516: ProText1 = "Copying:" ! 517: ProText2 = "To:" ! 518: ! 519: [StringsENG] ! 520: String1 = "Display" ! 521: String2 = "Please enter the full path to the Windows NT Display "+ ! 522: "driver files. Then choose Continue." ! 523: ! 524: ! 525: ! 526: ;----------------------------------------------------------------------- ! 527: ; SOURCE MEDIA DESCRIPTIONS ! 528: ; ------------------------- ! 529: ; The OEM should list all the diskette labels here. The source media ! 530: ; description is used during copy to prompt the user for a diskette ! 531: ; if the source is diskettes. ! 532: ; ! 533: ; Use 1 = "Diskette 1 Label" , TAGFILE = disk1 ! 534: ; 2 = "Diskette 2 Label" , TAGFILE = disk2 ! 535: ; ... ! 536: ;----------------------------------------------------------------------- ! 537: ! 538: ;-------------------------------------------------------------------- ! 539: ; THE SECTIONS BELOW SHOULD BE AUTOMATICALLY GENERATED BY THE EXCEL ! 540: ; SPREAD SHEETS ! 541: ;-------------------------------------------------------------------- ! 542: [Source Media Descriptions] ! 543: 1 = "OEM DISK (VIDEO)" , TAGFILE = disk1 ! 544: ! 545: ! 546: [Files-DisplayDLLs] ! 547: oemvxl = 1,oemvxl.dll , SIZE=999 ! 548: ! 549: [Files-DisplayMiniportDrivers] ! 550: oemvxl = 1,oemvxl.sys , SIZE=999
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.