OEMSETUP.inf Driver File Contents (120TDRVR.EXE)

;-----------------------------------------------------------------------
; 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 = TAPE

;-----------------------------------------------------------------------
; 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]
	 BNCHTAPE	=bnchtape
;-----------------------------------------------------------------------
; 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]
	 BNCHTAPE	= "BENCHMARK Digital Linear Tape NT4.0 Ver 1.5"
;-----------------------------------------------------------------------------------------
; TAPE CLASS DRIVERS:
;
; Order of the information:
;
; Class driver = Type, Group, ErrorControl, Dependencies, EventMessageFile, TypesSupported
;
; NOTE: \ in the dependency list means that the dependency is on a group.
;-----------------------------------------------------------------------------------------

[ClassDrivers]
	 bnchtape	= !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\bnchtape.sys"   , 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 = {}

	 ;
	 ; Check if NONE or UNKNOWN
	 ;
	 ifstr(i) $($1) == NONE
		  set Status = STATUS_SUCCESSFUL
		  goto finish_InstallOption
	 else-ifstr(i) $($1) == UNKNOWN
		  set Status = STATUS_SUCCESSFUL
		  goto finish_InstallOption
	 endif

	 ;
	 ; 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
		  goto finish_InstallOption
	 endif
	 set OptionList = ""

	 ;
	 ; Option has been defined already
	 ;

	 set ClassDriver		 =   #(Options,		$(Option),		 1)
	 set Type				 = $(#(ClassDrivers, $(ClassDriver), 1))
	 set Group				 =   #(ClassDrivers, $(ClassDriver), 2)
	 set ErrorControl 	 = $(#(ClassDrivers, $(ClassDriver), 3))
	 set Dependencies 	 =   #(ClassDrivers, $(ClassDriver), 4)
	 set EventMessageFile =   #(ClassDrivers, $(ClassDriver), 5)
	 set TypesSupported	 =   #(ClassDrivers, $(ClassDriver), 6)

installtheoption = +

	 ;
	 ; Code to add files to copy list
	 ;

	 ifstr(i) $(AddCopy) == "YES"
		  set DoActualCopy = NO
		  set FileToCheck = #(Files-TapeClassDrivers, $(ClassDriver), 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 "TAPE.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 "TAPE.INF: User cancelled Tape installation"
					 goto finish_InstallOption
				else
					 Debug-Output "TAPE.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 "TAPE.INF: shelling DoAskSource failed"
					 goto finish_InstallOption
				endif

				ifstr(i) $($R0) == STATUS_SUCCESSFUL
					 set SrcDir = $($R1)
					 ifstr(i) $($R2) != ""
						  set DrivesToFree = >($(DrivesToFree), $($R2))
					 endif
				else
					 Debug-Output "TAPE.INF: User cancelled asking source."
					 goto finish_InstallOption
				endif

				install Install-AddCopyOption
				ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
					 Debug-Output "Adding mouse 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 tape entry, the entry is created automatically
		  ; enabled
		  ;

		  set ServiceNode 	  = $(ClassDriver)
		  set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-TapeClassDrivers, $(ClassDriver), 2)

		  set ServicesValues   = { +
					 {Type,				0, $(!REG_VT_DWORD), 	 $(Type) 					  }, +
					 {Start, 			0, $(!REG_VT_DWORD), 	 $(!SERVICE_SYSTEM_START) }, +
					 {Group, 			0, $(!REG_VT_SZ), 		 $(Group)					  }, +
					 {ErrorControl,	0, $(!REG_VT_DWORD), 	 $(ErrorControl)			  }, +
					 {Dependencies,	0, $(!REG_VT_MULTI_SZ),  {$(Dependencies)}		  }, +
					 {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 tape"
				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-TapeClassDrivers 		  +
											 $(ClassDriver)					  +
											 $(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 ClassDriver = #(Options, $(Option), 1)
	 set ClassFile   = #(Files-TapeClassDrivers, $(ClassDriver), 2)
	 set FilePath		  = $(!STF_WINDOWSSYSPATH)"\drivers\"$(ClassFile)

	 ;
	 ; disable the registry entry
	 ;

	 shell "registry.inf" RemoveServicesEntry $(ClassDriver)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
		  Debug-Output "TAPE.INF: Failed to shell RemoveServicesEntry"
		  goto finish_DeInstallOption
	 endif

	 ifstr(i) $($R0) != STATUS_SUCCESSFUL
		  Debug-Output "TAPE.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 ClassDriver = #(Options, $($), 1)
		  set ClassFile	= #(Files-TapeClassDrivers, $(ClassDriver), 2)
		  set FilePath 		= $(!STF_WINDOWSSYSPATH)"\drivers\"$(ClassFile)
		  LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
		  ifstr(i) $(STATUS) == "YES"
				shell "registry.inf" GetServicesEntryStart $(ClassDriver)
				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 = "Tape Device"
	 String2 = "Please enter the full path to the OEM Tape Device "+
				  "files.  Then choose Continue."

[Source Media Descriptions]
	 1  = "OEM DISK (TAPE)"
;	 1  = "OEM DISK (TAPE)"  , TAGFILE = disk1

[Files-TapeClassDrivers]
bnchtape = 1,bnchtape.sys, SIZE=999

Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web1, load: 1.27