OEMSCSAT.INF Driver File Contents (DRV_NT_w9X_USB.zip)

[Identification]
    OptionType = SCSI

[LanguagesSupported]
    ENG

[Options]
    "IMGATAPI"    = imgatapi

[OptionsTextENG]
    "IMGATAPI"    = "Iomega ZIP IDE / ATAPI"

[MiniportDrivers]
    imgatapi  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  257, %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)


;
; 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)
    ; Added by Iomega 9-9-96
    set SrcDir   = "A:\ide"
    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 "OEMSETUP.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 "OEMSETUP.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 "OEMSETUP.INF: User cancelled SCSI installation"
		goto finish_InstallOption
	    else
		Debug-Output "OEMSETUP.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 "OEMSETUP.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 "OEMSETUP.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

	;// added last week of July 1996 by Iomega
    ;===========================================================================
    ;Make Scsidisk a system device if currently set to disabled.

	set KeyName = "System\CurrentControlSet\Services\Scsidisk"
	OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) ScsidiskKeyHandle
	set ScsiDiskExists = 0
	ifstr(i) $(ScsidiskKeyHandle) != ""
	    set ScsiDiskExists = 1
		GetRegValue $(ScsidiskKeyHandle) Start StartInfo
		ifint *($(StartInfo),4) == 4      
			SetRegValue     $(ScsidiskKeyHandle) {Start,0,$(!REG_VT_DWORD),1}
		endif
	endif
	CloseRegKey $(ScsidiskKeyHandle)
	;===========================================================================
	;
	;   added 8/1/96 to disable atapi.sys by Iomega
	;   remove 10-11-96 for gateway with IDE Zip on secondary
	;   changed 10/28/96 just change atapi's error control to 0 so no user dialog
	;                    and the same if the intel bus mastering piixide driver is there
   ;   added 11/18/96 to disable  error message for ATDISK.SYS by Iomega  NRS
   ;===========================================================================
    
    ;Disable error message for ATDISK if currently set to enabled.  And there was a ScsidiskKey Handle
	;
    set KeyName = "System\CurrentControlSet\Services\Atdisk"
    OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) AtdiskKeyHandle

    set StartDisable = 4
	set Zero = 0
    ifstr(i) $(AtdiskKeyHandle) != ""
		   ; Turn off the driver did not load message
		   GetRegValue $(AtdiskKeyHandle) Start StartInfo
	       SetRegValue $(AtdiskKeyHandle) {Start,0,$(!REG_VT_DWORD),$(StartDisable)}
		   CloseRegKey $(AtdiskKeyHandle)
    endif

    ;Disable error message Atapi if currently set to enabled.  And there was a ScsidiskKey Handle
	;
    set KeyName = "System\CurrentControlSet\Services\Atapi"
    OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) AtapiKeyHandle

    set StartDisable = 4
	set Zero = 0
    ifstr(i) $(AtapiKeyHandle) != ""
		   ; Turn off the driver did not load message
		   GetRegValue $(AtapiKeyHandle) Start StartInfo
	       SetRegValue $(AtapiKeyHandle) {Start,0,$(!REG_VT_DWORD),$(StartDisable)}
		   CloseRegKey $(AtapiKeyHandle)
    endif

    set KeyName = "System\CurrentControlSet\Services\Piixide"
	set Device  = "Device0"
    OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) PiixideKeyHandle
	; if the PIIXIDE driver (intel bus mastering) then add "AtapiOnly" to our driver parameters
    ifstr(i) $(PiixideKeyHandle) != ""
	       GetRegValue $(PiixideKeyHandle) Start StartInfo
		   CloseRegKey $(PiixideKeyHandle)
		   ifint *($(StartInfo),4) <= 3
				LoadLibrary "Iomega ZIP IDE / ATAPI Driver Disk - Win NT" a:\IDE\Oemsetup.dll DllHandle
				ifstr(i) $(DllHandle) != ""
					LibraryProcedure Result $(DllHandle) MakeAtapiOnly
					FreeLibrary $(DllHandle)
				endif
;  11-5-96 TLM I never could get the SetRegValue below to work! so I wrote a DLL!
;  "OEMSETUP.DLL" contains the function MakeAtapiOnly which will set the ImgAtapi Parameter to 
;  "AtapiOnly"
;					; Turn off the driver did not load message for intel bus mastering (PIIXIDE)
;			        SetRegValue $(PiixideKeyHandle) {ErrorControl,0,$(!REG_VT_DWORD),$(ErrorsOff)}
;					set KeyName = "System\CurrentControlSet\Services\imgatapi"
;					OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) ImgatapiKeyHandle
;					ifstr(i) $(ImgatapiKeyHandle) != ""
;						    CreateRegKey $(ImgatapiKeyHandle) {"Parameters\Device0", $(Zero), GenericClass}  "" $(!REG_KEY_ALL_ACCESS) "" $(ImgatapiKeyHandle)
;							FlushRegKey $(ImgatapiKeyHandle)
;							CloseRegKey $(ImgatapiKeyHandle)
;							set KeyName = "System\CurrentControlSet\Services\imgatapi\Parameters\Device0"
;							OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) ImgatapiKeyHandle
;
;							ifstr(i) $(ImgatapiKeyHandle) != ""
;							    set AtapiOnly = "AtapiOnly"
;								set DriverParameter = "DriverParameter"
;								SetRegValue $(ImgatapiKeyHandle) ( $(DriverParameter), +
;								                                   $(Zero),            +
;																   $(!REG_VT_SZ),      +
;																   $(AtapiOnly))
;							endif
;							CloseRegKey $(ImgatapiKeyHandle)
;				    endif
		   endif
	endif
	;===========================================================================


	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 "OEMSETUP.INF: Failed to shell RemoveServicesEntry"
	goto finish_DeInstallOption
    endif

    ifstr(i) $($R0) != STATUS_SUCCESSFUL
	Debug-Output "OEMSETUP.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  = "Iomega ZIP IDE / ATAPI Driver Disk"  , TAGFILE = disk1


[Files-ScsiMiniportDrivers]
imgatapi = 1,imgatapi.sys , SIZE=50000
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: web5, load: 1.41