diff options
Diffstat (limited to '')
-rw-r--r-- | private/ntos/miniport/qlogic/oemsetup.inf | 571 |
1 files changed, 571 insertions, 0 deletions
diff --git a/private/ntos/miniport/qlogic/oemsetup.inf b/private/ntos/miniport/qlogic/oemsetup.inf new file mode 100644 index 000000000..8ec7286f1 --- /dev/null +++ b/private/ntos/miniport/qlogic/oemsetup.inf @@ -0,0 +1,571 @@ +;----------------------------------------------------------------------- +; OPTION TYPE +; ----------- +; This identifies the Option type we are dealing with. The different +; possible types are: +; +; COMPUTER, VIDEO, POINTER, KEYBOARD, LAYOUT, SCSI, TAPE, PRINTER, ... +;----------------------------------------------------------------------- + +[Identification] + OptionType = SCSI + +;----------------------------------------------------------------------- +; LANGUAGES SUPPORTED +; ------------------- +; +; The languages supported by the INF, For every language supported +; we need to have a separate text section for every displayable text +; section. +; +;----------------------------------------------------------------------- + +[LanguagesSupported] + ENG + + +;----------------------------------------------------------------------- +; OPTION LIST +; ----------- +; This section lists the Option key names. These keys are locale +; independent and used to represent the option in a locale independent +; manner. +; +;----------------------------------------------------------------------- + +[Options] + "QLA100" = ql10wnt + "QLA10035" = ql10nt35 + +;----------------------------------------------------------------------- +; OPTION TEXT SECTION +; ------------------- +; These are text strings used to identify the option to the user. There +; are separate sections for each language supported. The format of the +; section name is "OptionsText" concatenated with the Language represented +; by the section. +; +;----------------------------------------------------------------------- + +[OptionsTextENG] + "QLA100" = "QLogic Fast!SCSI/QLA100 (Windows NT V3.1)" + "QLA10035" = "QLogic Fast!SCSI/QLA100 (Windows NT V3.5)" + +;----------------------------------------------------------------------------------------- +; SCSI MINIPORT DRIVERS: +; +; Order of the information: +; +; Class driver = Type, Group, ErrorControl, Tag, EventMessageFile, TypesSupported +; +;----------------------------------------------------------------------------------------- + +[MiniportDrivers] + ql10wnt = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 31, %SystemRoot%\System32\IoLogMsg.dll , 7 + ql10nt35 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 31, %SystemRoot%\System32\IoLogMsg.dll , 7 + +;--------------------------------------------------------------------------- +; 1. Identify +; +; DESCRIPTION: To verify that this INF deals with the same type of options +; as we are choosing currently. +; +; INPUT: None +; +; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL +; $($R1): Option Type (COMPUTER ...) +; $($R2): Diskette description +;--------------------------------------------------------------------------- + +[Identify] + ; + ; + read-syms Identification + + set Status = STATUS_SUCCESSFUL + set Identifier = $(OptionType) + set Media = #("Source Media Descriptions", 1, 1) + + Return $(Status) $(Identifier) $(Media) + + + +;------------------------------------------------------------------------ +; 2. ReturnOptions: +; +; DESCRIPTION: To return the option list supported by this INF and the +; localised text list representing the options. +; +; +; INPUT: $($0): Language used. ( ENG | FRN | ... ) +; +; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | +; STATUS_NOLANGUAGE +; STATUS_FAILED +; +; $($R1): Option List +; $($R2): Option Text List +;------------------------------------------------------------------------ + +[ReturnOptions] + ; + ; + set Status = STATUS_FAILED + set OptionList = {} + set OptionTextList = {} + + ; + ; Check if the language requested is supported + ; + set LanguageList = ^(LanguagesSupported, 1) + Ifcontains(i) $($0) in $(LanguageList) + goto returnoptions + else + set Status = STATUS_NOLANGUAGE + goto finish_ReturnOptions + endif + + ; + ; form a list of all the options and another of the text representing + ; + +returnoptions = + + set OptionList = ^(Options, 0) + set OptionTextList = ^(OptionsText$($0), 1) + set Status = STATUS_SUCCESSFUL + +finish_ReturnOptions = + + Return $(Status) $(OptionList) $(OptionTextList) + + +; +; 3. InstallOption: +; +; FUNCTION: To copy files representing Options +; To configure the installed option +; To update the registry for the installed option +; +; INPUT: $($0): Language to use +; $($1): OptionID to install +; $($2): SourceDirectory +; $($3): AddCopy (YES | NO) +; $($4): DoCopy (YES | NO) +; $($5): DoConfig (YES | NO) +; +; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | +; STATUS_NOLANGUAGE | +; STATUS_USERCANCEL | +; STATUS_FAILED +; + +[InstallOption] + + ; + ; Set default values for + ; + set Status = STATUS_FAILED + set DrivesToFree = {} + + ; + ; extract parameters + ; + set Option = $($1) + set SrcDir = $($2) + set AddCopy = $($3) + set DoCopy = $($4) + set DoConfig = $($5) + + ; + ; Check if the language requested is supported + ; + set LanguageList = ^(LanguagesSupported, 1) + Ifcontains(i) $($0) in $(LanguageList) + else + set Status = STATUS_NOLANGUAGE + goto finish_InstallOption + endif + read-syms Strings$($0) + + ; + ; check to see if Option is supported. + ; + + set OptionList = ^(Options, 0) + ifcontains $(Option) in $(OptionList) + else + Debug-Output "SCSI.INF: SCSI option is not supported." + goto finish_InstallOption + endif + set OptionList = "" + + ; + ; Option has been defined already + ; + + 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 = + + + ; + ; Code to add files to copy list + ; + + 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" + ; + ; first run a privilege check on modifying the setup node + ; + + shell "registry.inf" CheckSetupModify + ifint $($ShellCode) != $(!SHELL_CODE_OK) + goto finish_InstallOption + endif + + ifstr(i) $($R0) != STATUS_SUCCESSFUL + goto finish_InstallOption + endif + + ; + ; then make a new SCSI entry, the entry is created automatically + ; enabled + ; + + 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] + + ; + ; Add the files to the copy list + ; + AddSectionKeyFileToCopyList Files-ScsiMiniportDrivers + + $(MiniportDriver) + + $(SrcDir) + + $(!STF_WINDOWSSYSPATH)\drivers + + exit + + +[Install-DoCopyOption] + + ; + ; Copy files in the copy list + ; + CopyFilesInCopyList + exit + +;------------------------------------------------------------------------- +; 4. DeInstallOption: +; +; FUNCTION: To remove files representing Option +; To remove the registry entry corresponding to the Option +; +; INPUT: $($0): Language to use +; $($1): OptionID to install +; +; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | +; STATUS_NOLANGUAGE | +; STATUS_USERCANCEL | +; STATUS_FAILED +;------------------------------------------------------------------------- +[DeInstallOption] + ; + ; Set default values for + ; + set Status = STATUS_FAILED + ; + ; extract parameters + ; + set Option = $($1) + + ; + ; Check if the language requested is supported + ; + set LanguageList = ^(LanguagesSupported, 1) + Ifcontains(i) $($0) in $(LanguageList) + else + set Status = STATUS_NOLANGUAGE + goto finish_DeInstallOption + endif + read-syms Strings$($0) + + ; + ; check to see if Option is supported. + ; + + set OptionList = ^(Options, 0) + ifcontains $(Option) in $(OptionList) + else + goto finish_DeInstallOption + endif + set OptionList = "" + + ; + ; fetch details about option + ; + + set MiniportDriver = #(Options, $(Option), 1) + set MiniportFile = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2) + set FilePath = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile) + + ; + ; check to see if file is installed + ; if not give success + ; + + 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" + ; this could happen if there is no start value or there is no + ; key, in which case the option is not installed + set Status = STATUS_SUCCESSFUL + goto finish_DeInstallOption + endif + + ifstr(i) $($R1) == $(!SERVICE_BOOT_START) + shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(String3) + ifstr(i) $($R0) != STATUS_SUCCESSFUL + goto do_removal + endif + ifstr(i) $($R1) == "CANCEL" + goto finish_DeInstallOption + endif + endif + +do_removal =+ + ; + ; disable the registry entry + ; + + 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 + + ; + ; we won't remove the file because we can only do so during the next boot. + ; if the user chooses to reinstall the same driver during this boot + ; he will still end up deleting the driver on next boot. if the file + ; should be deleted a warning should be put up saying that the user should + ; not try to reinstall the driver during this boot + ; + ; AddFileToDeleteList $(FilePath) + + set Status = STATUS_SUCCESSFUL + +finish_DeInstallOption =+ + return $(Status) + + +;------------------------------------------------------------------------- +; 5. GetInstalledOptions: +; +; FUNCTION: To find out the list of options which are installed +; +; INPUT: $($0): Language to Use +; +; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | +; STATUS_FAILED +; +; $($R1): List of options installed +; $($R2): Option installed Text List +;------------------------------------------------------------------------- +[GetInstalledOptions] + set Status = STATUS_FAILED + set InstalledOptions = {} + set InstalledOptionsText = {} + + ; + ; Check if the language requested is supported + ; + 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) + + +;************************************************************************** +; PROGRESS GUAGE VARIABLES +;************************************************************************** + +[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 OEM SCSI "+ + "Adapter files. Then choose Continue." + String3 = "The SCSI Adapter has been marked as a boot device. Removing "+ + "it may cause the system not to boot."$(!LF)$(!LF)"Are you sure "+ + "you want to remove the Adapter." + +[Source Media Descriptions] + 1 = "QLogic SCSI Software Diskette" , TAGFILE = qlscsi + +[Files-ScsiMiniportDrivers] +ql10wnt = 1,ql10wnt.sys , SIZE=36864 +ql10nt35 = 1,ql10nt35.sys , SIZE=36864 |