[Identification]
    OptionType = SCSI
[MiniportDrivers]
    ncr53c9x = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  1, %SystemRoot%\System32\IoLogMsg.dll , 7
    spock    = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  2, %SystemRoot%\System32\IoLogMsg.dll , 7
    oliscsi  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  3, %SystemRoot%\System32\IoLogMsg.dll , 7
    ncrc700  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  4, %SystemRoot%\System32\IoLogMsg.dll , 7
    ncrc710  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  5, %SystemRoot%\System32\IoLogMsg.dll , 7
    aha154x  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  6, %SystemRoot%\System32\IoLogMsg.dll , 7
    sparrow  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  7, %SystemRoot%\System32\IoLogMsg.dll , 7
    aha174x  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  8, %SystemRoot%\System32\IoLogMsg.dll , 7
    dptscsi  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  9, %SystemRoot%\System32\IoLogMsg.dll , 7
    ultra14f = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 10, %SystemRoot%\System32\IoLogMsg.dll , 7
    ultra124 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 11, %SystemRoot%\System32\IoLogMsg.dll , 7
    ultra24f = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 12, %SystemRoot%\System32\IoLogMsg.dll , 7
    buslogic = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 13, %SystemRoot%\System32\IoLogMsg.dll , 7
    fd7000ex = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 14, %SystemRoot%\System32\IoLogMsg.dll , 7
    fd8xx    = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 15, %SystemRoot%\System32\IoLogMsg.dll , 7
    fd16_700 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 16, %SystemRoot%\System32\IoLogMsg.dll , 7
    wd33c93  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 17, %SystemRoot%\System32\IoLogMsg.dll , 7
    t128     = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 18, %SystemRoot%\System32\IoLogMsg.dll , 7
    t13b     = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 19, %SystemRoot%\System32\IoLogMsg.dll , 7
    always   = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 20, %SystemRoot%\System32\IoLogMsg.dll , 7
    arrow    = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 21, %SystemRoot%\System32\IoLogMsg.dll , 7
    dtc329x  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 23, %SystemRoot%\System32\IoLogMsg.dll , 7
    tmv1     = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 24, %SystemRoot%\System32\IoLogMsg.dll , 7
[Identify]
    read-syms Identification
    set Status     = STATUS_SUCCESSFUL
    set Identifier = $(OptionType)
    set Media      = #("Source Media Descriptions", 1, 1)
    Return $(Status) $(Identifier) $(Media)
[ReturnOptions]
    set Status        = STATUS_FAILED
    set OptionList     = {}
    set OptionTextList = {}
    set LanguageList = ^(LanguagesSupported, 1)
    Ifcontains(i) $($0) in $(LanguageList)
        goto returnoptions
    else
        set Status = STATUS_NOLANGUAGE
        goto finish_ReturnOptions
    endif
returnoptions = +
    set OptionList     = ^(Options, 0)
    set OptionTextList = ^(OptionsText$($0), 1)
    set Status         = STATUS_SUCCESSFUL
finish_ReturnOptions = +
    Return $(Status) $(OptionList) $(OptionTextList)
[InstallOption]
    set Status = STATUS_FAILED
    set DrivesToFree = {}
    set Option   = $($1)
    set SrcDir   = $($2)
    set AddCopy  = $($3)
    set DoCopy   = $($4)
    set DoConfig = $($5)
    set LanguageList = ^(LanguagesSupported, 1)
    Ifcontains(i) $($0) in $(LanguageList)
    else
        set Status = STATUS_NOLANGUAGE
        goto finish_InstallOption
    endif
    read-syms Strings$($0)
    set OptionList = ^(Options, 0)
    ifcontains $(Option) in $(OptionList)
    else
        Debug-Output "SCSI.INF: SCSI option is not supported."
        goto finish_InstallOption
    endif
    set OptionList = ""
    set MiniportDriver   =   #(Options,         $(Option),         1)
    set Type             = $(#(MiniportDrivers, $(MiniportDriver), 1))
    set Group            =   #(MiniportDrivers, $(MiniportDriver), 2)
    set ErrorControl     = $(#(MiniportDrivers, $(MiniportDriver), 3))
    set Tag              =   #(MiniportDrivers, $(MiniportDriver), 4)
    set EventMessageFile =   #(MiniportDrivers, $(MiniportDriver), 5)
    set TypesSupported   =   #(MiniportDrivers, $(MiniportDriver), 6)
    set Start            =   $(!SERVICE_BOOT_START)
installtheoption = +
    ifstr(i) $(AddCopy) == "YES"
        set DoActualCopy = NO
        set FileToCheck = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
        LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck)
        ifstr(i) $(STATUS) == NO
            set DoActualCopy = YES
        endif
        ifstr(i) $(DoActualCopy) == NO
            shell "subroutn.inf" DriversExist $($0) $(String1)
            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                Debug-Output "SCSI.INF: shelling DriversExist failed"
                goto finish_InstallOption
            endif
            ifstr(i) $($R0) == STATUS_CURRENT
            else-ifstr(i) $($R0) == STATUS_NEW
                set DoActualCopy = YES
            else-ifstr(i) $($R0) == STATUS_USERCANCEL
                Debug-Output "SCSI.INF: User cancelled SCSI installation"
                goto finish_InstallOption
            else
                Debug-Output "SCSI.INF: Error reported in DriversExist routine in SUBROUTN.INF"
                goto finish_InstallOption
            endif
        endif
        ifstr(i) $(DoActualCopy) == YES
            shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2)
            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                Debug-Output "SCSI.INF: shelling DoAskSourceEx failed"
                goto finish_InstallOption
            endif
            ifstr(i) $($R0) == STATUS_SUCCESSFUL
                set SrcDir = $($R1)
                ifstr(i) $($R2) != ""
                    set DrivesToFree = >($(DrivesToFree), $($R2))
                endif
            else
                Debug-Output "SCSI.INF: User cancelled asking source."
                goto finish_InstallOption
            endif
            install Install-AddCopyOption
            ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
                Debug-Output "Adding SCSI files to copy list failed"
                goto finish_InstallOption
            endif
        else
            set DoCopy = NO
        endif
    endif
    ifstr(i) $(DoCopy) == "YES"
        read-syms ProgressCopy$($0)
        install Install-DoCopyOption
        ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
            Debug-Output "Copying files failed"
            goto finish_InstallOption
        else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
            set Status = STATUS_USERCANCEL
            goto finish_InstallOption
        endif
    endif
    ifstr(i) $(DoConfig) == "YES"
        shell "registry.inf" CheckSetupModify
        ifint $($ShellCode) != $(!SHELL_CODE_OK)
            goto finish_InstallOption
        endif
        ifstr(i) $($R0) != STATUS_SUCCESSFUL
            goto finish_InstallOption
        endif
        set ServiceNode   = $(MiniportDriver)
        set ServiceBinary = System32\drivers\#(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
        set ServicesValues   = { +
                {Type,           0, $(!REG_VT_DWORD),     $(Type)                  }, +
                {Start,          0, $(!REG_VT_DWORD),     $(Start)                 }, +
                {Group,          0, $(!REG_VT_SZ),        $(Group)                 }, +
                {ErrorControl,   0, $(!REG_VT_DWORD),     $(ErrorControl)          }, +
                {Tag,            0, $(!REG_VT_DWORD),     $(Tag)                   }, +
                {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary)         }  +
                }
        set ParametersValues = ""
        set DeviceValues     = {}
        set EventLogValues   = { +
                {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
                {TypesSupported,   0, $(!REG_VT_DWORD),     $(TypesSupported)   }  +
                }
        shell "registry.inf"  MakeServicesEntry $(ServiceNode)      +
                                                $(ServicesValues)   +
                                                $(ParametersValues) +
                                                $(DeviceValues)     +
                                                $(EventLogValues)   +
                                                Parameters
        ifint $($ShellCode) != $(!SHELL_CODE_OK)
            Debug-Output "Couldn't execute MakeServicesEntry in registry.inf"
            goto finish_InstallOption
        endif
        ifstr(i) $($R0) != STATUS_SUCCESSFUL
            Debug-Output "MakeServicesEntry failed for SCSI"
            goto finish_InstallOption
        endif
    endif
    set Status = STATUS_SUCCESSFUL
finish_InstallOption = +
    ForListDo $(DrivesToFree)
        LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
    EndForListDo
    Return $(Status)
[Install-AddCopyOption]
    AddSectionKeyFileToCopyList   Files-ScsiMiniportDrivers         +
                                  $(MiniportDriver)                 +
                                  $(SrcDir)                      +
                                  $(!STF_WINDOWSSYSPATH)\drivers
    exit
[Install-DoCopyOption]
    CopyFilesInCopyList
    exit
[DeInstallOption]
    set Status   = STATUS_FAILED
    set Option   = $($1)
    set LanguageList = ^(LanguagesSupported, 1)
    Ifcontains(i) $($0) in $(LanguageList)
    else
        set Status = STATUS_NOLANGUAGE
        goto finish_DeInstallOption
    endif
    read-syms Strings$($0)
    set OptionList = ^(Options, 0)
    ifcontains $(Option) in $(OptionList)
    else
        goto finish_DeInstallOption
    endif
    set OptionList = ""
    set MiniportDriver = #(Options, $(Option), 1)
    set MiniportFile   = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
    set FilePath       = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile)
    LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
    ifstr(i) $(STATUS) == "NO"
        set Status = STATUS_SUCCESSFUL
        goto finish_DeInstallOption
    endif
    shell "registry.inf" GetServicesEntryStart $(MiniportDriver)
    ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
        set Status = STATUS_SUCCESSFUL
        goto finish_DeInstallOption
    endif
do_removal =+
    shell "registry.inf" RemoveServicesEntry $(MiniportDriver)
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "SCSI.INF: Failed to shell RemoveServicesEntry"
        goto finish_DeInstallOption
    endif
    ifstr(i) $($R0) != STATUS_SUCCESSFUL
        Debug-Output "SCSI.INF: Failed to disable services entry"
        goto finish_DeInstallOption
    endif
    set Status = STATUS_SUCCESSFUL
finish_DeInstallOption =+
    return $(Status)
[GetInstalledOptions]
    set Status = STATUS_FAILED
    set InstalledOptions = {}
    set InstalledOptionsText = {}
    set LanguageList = ^(LanguagesSupported, 1)
    Ifcontains(i) $($0) in $(LanguageList)
    else
        set Status = STATUS_NOLANGUAGE
        goto finish_GetInstalledOptions
    endif
    set OptionList = ^(Options, 0)
    ForListDo $(OptionList)
        set MiniportDriver = #(Options, $($), 1)
        set MiniportFile   = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
        set FilePath       = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile)
        LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
        ifstr(i) $(STATUS) == "YES"
            shell "registry.inf" GetServicesEntryStart $(MiniportDriver)
            ifint $($ShellCode) == $(!SHELL_CODE_OK)
                ifstr(i) $($R0) == STATUS_SUCCESSFUL
                    ifstr(i) $($R1) != $(!SERVICE_DISABLED)
                        set OptionText = #(OptionsText$($0), $($), 1)
                        set InstalledOptions     = >($(InstalledOptions), $($))
                        set InstalledOptionsText = >($(InstalledOptionsText), $(OptionText))
                    endif
                endif
            endif
        endif
    EndForListDo
    set Status = STATUS_SUCCESSFUL
finish_GetInstalledOptions =+
    Return $(Status) $(InstalledOptions) $(InstalledOptionsText)
[Source Media Descriptions]
    1	= "Windows NT Advanced Server Setup Disk #1"   , TAGFILE = disk1
    2	= "Windows NT Advanced Server Setup Disk #2"   , TAGFILE = disk2
    3	= "Windows NT Advanced Server Setup Disk #3"   , TAGFILE = disk3
    4	= "Windows NT Advanced Server Setup Disk #4"   , TAGFILE = disk4
    5	= "Windows NT Advanced Server Setup Disk #5"   , TAGFILE = disk5
    6	= "Windows NT Advanced Server Setup Disk #6"   , TAGFILE = disk6
    7	= "Windows NT Advanced Server Setup Disk #7"   , TAGFILE = disk7
    8	= "Windows NT Advanced Server Setup Disk #8"   , TAGFILE = disk8
    9	= "Windows NT Advanced Server Setup Disk #9"   , TAGFILE = disk9
    10	= "Windows NT Advanced Server Setup Disk #10"  , TAGFILE = disk10
    11	= "Windows NT Advanced Server Setup Disk #11"  , TAGFILE = disk11
    12	= "Windows NT Advanced Server Setup Disk #12"  , TAGFILE = disk12
    13	= "Windows NT Advanced Server Setup Disk #13"  , TAGFILE = disk13
    14	= "Windows NT Advanced Server Setup Disk #14"  , TAGFILE = disk14
    15	= "Windows NT Advanced Server Setup Disk #15"  , TAGFILE = disk15
    16	= "Windows NT Advanced Server Setup Disk #16"  , TAGFILE = disk16
    17	= "Windows NT Advanced Server Setup Disk #17"  , TAGFILE = disk17
    18	= "Windows NT Advanced Server Setup Disk #18"  , TAGFILE = disk18
    19	= "Windows NT Advanced Server Setup Disk #19"  , TAGFILE = disk19
    20	= "Windows NT Advanced Server Setup Disk #20"  , TAGFILE = disk20
    21	= "Windows NT Advanced Server Setup Disk #21"  , TAGFILE = disk21
    22	= "Windows NT Advanced Server Setup Disk #22"  , TAGFILE = disk22
    23	= "Windows NT Advanced Server Setup Disk #23"  , TAGFILE = disk23
    24	= "Windows NT Advanced Server Setup Disk #24"  , TAGFILE = disk24
    25	= "Windows NT Advanced Server Setup Disk #25"  , TAGFILE = disk25
    26	= "Windows NT Advanced Server Setup Disk #26"  , TAGFILE = disk26
    27	= "Windows NT Advanced Server Setup Disk #27"  , TAGFILE = disk27
    28	= "Windows NT Advanced Server Setup Disk #28"  , TAGFILE = disk28
    29	= "Windows NT Advanced Server Setup Disk #29"  , TAGFILE = disk29
[ProductType]
STF_PRODUCT  = LanmanNT
STF_PLATFORM = I386
[Files-ScsiMiniportDrivers]
aha154x = 1,AHA154X.SYS , SIZE=15872
aha174x = 1,AHA174X.SYS , SIZE=12288
always = 1,ALWAYS.SYS , SIZE=34304
arrow = 1,ARROW.SYS , SIZE=29696
buslogic = 1,BUSLOGIC.SYS , SIZE=15360
dptscsi = 1,DPTSCSI.SYS , SIZE=16384
dtc329x = 1,DTC329X.SYS , SIZE=13312
fd16_700 = 1,FD16_700.SYS , SIZE=18432
fd7000ex = 1,FD7000EX.SYS , SIZE=11776
fd8xx = 1,FD8XX.SYS , SIZE=16896
ncr53c9x = 1,NCR53C9X.SYS , SIZE=19968
ncrc700 = 1,NCRC700.SYS , SIZE=17920
ncrc710 = 1,NCRC710.SYS , SIZE=17920
oliscsi = 1,OLISCSI.SYS , SIZE=20992
sparrow = 1,SPARROW.SYS , SIZE=28160
spock = 1,SPOCK.SYS , SIZE=13312
t128 = 1,T128.SYS , SIZE=19456
t13b = 1,T13B.SYS , SIZE=19968
tmv1 = 1,TMV1.SYS , SIZE=19968
ultra124 = 1,ULTRA124.SYS , SIZE=12288
ultra14f = 1,ULTRA14F.SYS , SIZE=11776
ultra24f = 1,ULTRA24F.SYS , SIZE=11264
wd33c93 = 3,WD33C93.SYS , SIZE=18944
[LanguagesSupported]
    ENG
[OptionsTextENG]
    "AHA154X"    = "Adaptec 154x/164x"
    "AHA174X"    = "Adaptec 174x"
    "SPARROW"    = "Adaptec 151x/152x/AIC 6260/6360"
    "ARROW"      = "Adaptec 2740 / AIC 777x"
    "ALWAYS"     = "Always IN-2000"
    "BUSLOGIC"   = "BusLogic Family"
    "DPTSCSI"    = "DPT PM201x"
    "DTC329X"    = "DTC 329X"
    "FD16_700"   = "Future Domain 16xx"
    "FD7000EX"   = "Future Domain / Western Digital 7000EX"
    "FD8XX"      = "Future Domain 8xx"
    "WD33C93"    = "Maynard / Western Digital 33c93"
    "NCR53C9X"   = "NCR 53c9x"
    "NCRC700"    = "NCR 53c700"
    "NCRC710"    = "NCR 53c710"
    "OLISCSI"    = "Olivetti ESC-1/ESC-2"
    "SPOCK"      = "IBM PS/2"
    "T128"       = "Trantor T128/T228"
    "T13B"       = "Trantor T130b"
    "TMV1"       = "Trantor MediaVision"
    "ULTRA14F"   = "UltraStor 14f, 34f"
    "ULTRA24F"   = "UltraStor 24f"
    "ULTRA124"   = "UltraStor 124f"
[Options]
    "AHA154X"    = aha154x
    "AHA174X"    = aha174x
    "SPARROW"    = sparrow
    "ARROW"      = arrow
    "ALWAYS"     = always
    "BUSLOGIC"   = buslogic
    "DPTSCSI"    = dptscsi
    "DTC329X"    = dtc329x
    "FD16_700"   = fd16_700
    "FD7000EX"   = fd7000ex
    "FD8XX"      = fd8xx
    "WD33C93"    = wd33c93
    "NCR53C9X"   = ncr53c9x
    "NCRC700"    = ncrc700
    "NCRC710"    = ncrc710
    "OLISCSI"    = oliscsi
    "SPOCK"      = spock
    "T128"       = t128
    "T13B"       = t13b
    "TMV1"       = tmv1
    "ULTRA14F"   = ultra14f
    "ULTRA24F"   = ultra24f
    "ULTRA124"   = ultra124
[ProgressCopyENG]
    ProCaption   = "Windows NT Setup"
    ProCancel    = "Cancel"
    ProCancelMsg = "Windows NT is not correcly installed.  Are you sure you want "+
                   "to cancel copying files?"
    ProCancelCap = "Setup Message"
    ProText1     = "Copying:"
    ProText2     = "To:"
[StringsENG]
    String1 = "SCSI Adapter"
    String2 = "Please enter the full path to the Windows NT SCSI "+
              "Adapter files.  If you want to install files from the "+
              "original Setup floppy disks, type a drive letter (such "+
              "as A:) and Setup will prompt you for the correct disk.  "+
              "Then choose Continue."



