Annotation of ntddk/src/setup/inf/video/alpha/oemsetup.inf, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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