;-----------------------------------------------------------------------
; 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]
4MMDAT---SEAGATE = 4mmdat--SESFT
ARCHQIC--SEAGATE = archqic-SESFT
DLTTAPE--SEAGATE = dlttape-SESFT
EXABMQIC-SEAGATE = exabmqicSESFT
EXABYTE1-SEAGATE = exabyte1SESFT
EXABYTE2-SEAGATE = exabyte2SESFT
HPT4QIC--SEAGATE = hpt4qic-SESFT
SONYSDX--SEAGATE = sonysdx-SESFT
TANDMQIC-SEAGATE = tandmqicSESFT
TANDQIC--SEAGATE = tandqic-SESFT
TRATAPI--SEAGATE = tratapi-SESFT
TRSCSI---SEAGATE = trscsi--SESFT
WANGQIC--SEAGATE = wangqic-SESFT
WANGQIC2-SEAGATE = wangqic2SESFT
SCSIOPTICAL = SCSIOptical
SCSIOPTICALF = SCSIOpticalF
;-----------------------------------------------------------------------
; 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]
4MMDAT---SEAGATE = "Seagate 4mmdat (4mm DAT drives, all except Sony)"
ARCHQIC--SEAGATE = "Seagate archqic (Conner/Archive QIC SCSI drives, all)"
DLTTAPE--SEAGATE = "Seagate dlttape (Quantum/DEC/Cipher DLT SCSI drives, all)"
EXABMQIC-SEAGATE = "Seagate exabmqic (Exabyte mini data cartridge SCSI drives)"
EXABYTE1-SEAGATE = "Seagate exabyte1 (Exabyte 8xxx SCSI-1 drives, all)"
EXABYTE2-SEAGATE = "Seagate exabyte2 (Exabyte 8xxx SCSI-2 drives, all)"
HPT4QIC--SEAGATE = "Seagate hpt4qic (HP T4000s mini data cartridge)"
SONYSDX--SEAGATE = "Seagate sonysdx (Sony 4mm DAT and 8mm drives)"
TANDMQIC-SEAGATE = "Seagate tandmqic (Tandberg Data mini data cartridge SCSI drives)"
TANDQIC--SEAGATE = "Seagate tandqic (Tandberg Data QIC SCSI drives, all)"
TRATAPI--SEAGATE = "Seagate tratapi (Mini data cartridge ATAPI drives)"
TRSCSI---SEAGATE = "Seagate trscsi (Mini data cartridge SCSI drives)"
WANGQIC--SEAGATE = "Seagate wangqic (WANGTEK QIC SCSI-1 drives, all)"
WANGQIC2-SEAGATE = "Seagate wangqic2 (WANGTEK 9500 QIC SCSI-2 drive)"
SCSIOPTICAL = "Seagate optical (tape emulation) driver"
SCSIOPTICALF = "Seagate optical (tape emulation w/FAT) driver"
;-----------------------------------------------------------------------------------------
; TAPE CLASS DRIVERS:
;
; Order of the information:
;
; Class driver = Type, Group, ErrorControl, Dependencies, EventMessageFile, TypesSupported, Start
;
; NOTE: \ in the dependency list means that the dependency is on a group.
;-----------------------------------------------------------------------------------------
[ClassDrivers]
4mmdat--SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\4mmdat.sys" , 7, !SERVICE_SYSTEM_START
archqic-SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\archqic.sys" , 7, !SERVICE_SYSTEM_START
dlttape-SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\dlttape.sys" , 7, !SERVICE_SYSTEM_START
exabmqicSESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\exabmqic.sys", 7, !SERVICE_SYSTEM_START
exabyte1SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\exabyte1.sys", 7, !SERVICE_SYSTEM_START
exabyte2SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\exabyte2.sys", 7, !SERVICE_SYSTEM_START
hpt4qic-SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\exabyte2.sys", 7, !SERVICE_SYSTEM_START
sonysdx-SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\sonysdx.sys" , 7, !SERVICE_SYSTEM_START
tandmqicSESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\tandmqic.sys", 7, !SERVICE_SYSTEM_START
tandqic-SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\tandqic.sys" , 7, !SERVICE_SYSTEM_START
tratapi-SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\tratapi.sys" , 7, !SERVICE_SYSTEM_START
trscsi--SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\trscsi.sys", 7, !SERVICE_SYSTEM_START
wangqic-SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\wangqic.sys" , 7, !SERVICE_SYSTEM_START
wangqic2SESFT = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\wangqic2.sys", 7, !SERVICE_SYSTEM_START
SCSIOptical = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\scsiopt.sys" , 7, !SERVICE_SYSTEM_START
SCSIOpticalF = !SERVICE_KERNEL_DRIVER, "SCSI Class" , !SERVICE_ERROR_NORMAL, "\SCSI Miniport", "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\scsioptf.sys" , 7, !SERVICE_SYSTEM_START
;---------------------------------------------------------------------------
; 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)
set Start = $(#(ClassDrivers, $(ClassDriver), 7))
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), $(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)" , TAGFILE = disk1
[Files-TapeClassDrivers]
4mmdat--SESFT = 1, 4mmdat.sys, SIZE=999
archqic-SESFT = 1, archqic.sys, SIZE=999
dlttape-SESFT = 1, dlttape.sys, SIZE=999
exabmqicSESFT = 1, exabmqic.sys, SIZE=999
exabyte1SESFT = 1, exabyte1.sys, SIZE=999
exabyte2SESFT = 1, exabyte2.sys, SIZE=999
hpt4qic-SESFT = 1, hpt4qic.sys, SIZE=999
sonysdx-SESFT = 1, sonysdx.sys, SIZE=999
tandmqicSESFT = 1, tandmqic.sys, SIZE=999
tandqic-SESFT = 1, tandqic.sys, SIZE=999
tratapi-SESFT = 1, tratapi.sys, SIZE=999
trscsi--SESFT = 1, trscsi.sys, SIZE=999
wangqic-SESFT = 1, wangqic.sys, SIZE=999
wangqic2SESFT = 1, wangqic2.sys, SIZE=999
SCSIOptical = 1, scsiopt.sys, SIZE=999
SCSIOpticalF = 1, scsioptf.sys, SIZE=999
Download Driver Pack
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.