;--------------------------------------------------------------------
; QMS DeskLaser600 printer setup for Windows NT
;--------------------------------------------------------------------
[ProcessorID]
ProcessorID_I386 = I386
ProcessorID_I486 = I486
ProcessorID_I586 = I586
[PlatformID]
PlatformID_I386 = I386
[ProcessorVar]
STF_PROCESSOR = "" ? $(!LIBHANDLE) GetProcessor
[LanguageVar]
STF_LANGUAGE = "" ? $(!LIBHANDLE) GetLanguage
[UiVars]
STF_NTDRIVE = ""
STF_NTPATH = ""
STF_WINDOWSPATH = "" ? $(!LIBHANDLE) GetWindowsNtDir
STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
STF_PRNMONITORPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
STF_INSTALL_MODE = "CUSTOM"
STF_INSTALL_TYPE = "MAINTENANCE"
STF_UPGRADE = "YES"
STF_CONTROLSET = "CurrentControlSet"
STF_COMPUTERNAME = "" ? $(!LIBHANDLE) GetMyComputerName
[VarsI386]
DefaultVideo = "VGA"
[ProductType]
STF_PRODUCT = Winnt
STF_PLATFORM = I386
[Shell Commands]
set Exit_Code = $(!SETUP_ERROR_GENERAL)
;
;Set Titel
;
set-title "QMS DeskLaser600 Printer Setup"
LoadLibrary "x" $(!STF_CWDDIR)\setupdll.dll !LIBHANDLE
set-subst LF = "\n"
StartWait
read-syms LanguageVar
detect LanguageVar
read-syms ProcessorID
read-syms PlatformID
read-syms ProductType
read-syms ProcessorVar
detect ProcessorVar
read-syms MsgStrings$(!STF_LANGUAGE)
ifstr(i) $(STF_PLATFORM) != $(PlatformID_I386)
EndWait
shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(MsgString10)
StartWait
goto end
endif
read-syms Vars$(!STF_PLATFORM)
Split-String $(!STF_SRCINFPATH) "\\" DestinationList
QueryListSize ListSize $(DestinationList)
set STF_SRCDIR = ""
ForListDo $(DestinationList)
ifint $(#) != $(ListSize)
set STF_SRCDIR = $(!STF_SRCDIR)$($)
endif
EndForListDo
read-syms UiVars
detect UiVars
set !STF_NTPATH = $(!STF_WINDOWSSYSPATH)
GetDriveInPath !STF_NTDRIVE $(!STF_WINDOWSSYSPATH)
shell "registry.inf" CheckSetupModify
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto end
else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(MsgString3)
StartWait
goto end
endif
set HelpDisp = 0
Welcome = +
;
read-syms CustomDlgMsg$(!STF_LANGUAGE)
EndWait
ui start "WELCOME"
ifstr(i) $(DLGEVENT) == "OK"
ui pop 1
StartWait
goto dosetup
else
ui pop 1
StartWait
set Exit_Code = $(!SETUP_ERROR_USERCANCEL)
goto end
endif
dosetup = +
shell "" DoInstall
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto end
endif
ifstr(i) $($R0) == STATUS_SUCCESSFUL
set Exit_Code = $(!SETUP_ERROR_SUCCESS)
else-ifstr(i) $($R0) == STATUS_USERCANCEL
set Exit_Code = $(!SETUP_ERROR_USERCANCEL)
endif
end = +
EndWait
FreeLibrary $(!LIBHANDLE)
exit
[DoInstall]
set Status = STATUS_FAILED
read-syms MsgStrings$(!STF_LANGUAGE)
set SrcDir = $(!STF_SRCDIR)
;
; [ Parallel Class Driver ]
;
shell "" GetInstalledOptions $(!STF_LANGUAGE)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(MsgString1)
goto skip_install
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(MsgString1)
set Status = $($R0)
goto skip_install
endif
QueryListSize ListSize $($R1)
shell "" InstallOption $(!STF_LANGUAGE) "M353Par" $(SrcDir) "YES" "YES" "YES"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(MsgString1)
goto skip_install
endif
ifstr(i) $($R0) != STATUS_SUCCESSFUL
set Status = $($R0)
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(MsgString1)
goto skip_install
endif
;
; [ Status Monitor ]
;
install AddFilesToCopyList_StMonitor
ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
Debug-Output "Adding files to copy list failed"
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(MsgString2)
goto skip_install
endif
read-syms ProgressCopy$(!STF_LANGUAGE)
install InstallCopyFilesOption
ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
Debug-Output "Copying files failed"
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(MsgString2)
goto skip_install
else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
set Status = STATUS_USERCANCEL
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(MsgString2)
goto skip_install
endif
set Status = STATUS_SUCCESSFUL
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" $(MsgString12)
skip_install = +
StartWait
Return $(Status)
[AddFilesToCopyList_StMonitor]
;
; Add the files to the copy list
;
AddSectionFilesToCopyList StatusMonitorFiles +
$(SrcDir) +
$(!STF_WINDOWSSYSPATH)
exit
[AddFilesToCopyList_ClassDriver]
;
; Add the files to the copy list
;
AddSectionKeyFileToCopyList Files-Drivers +
$(OurDriver) +
$(SrcDir) +
$(!STF_WINDOWSSYSPATH)\drivers
exit
[InstallCopyFilesOption]
;
; Copy files in the copy list
;
CopyFilesInCopyList
exit
;------------------------------------------------------------------------
;InstallOption:
;------------------------------------------------------------------------
[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 OurDriver = #(Options, $(Option), 1)
set Type = $(#(Drivers, $(OurDriver), 1))
set Group = #(Drivers, $(OurDriver), 2)
set ErrorControl = $(#(Drivers, $(OurDriver), 3))
set Dependencies = #(Drivers, $(OurDriver), 4)
set EventMessageFile = #(Drivers, $(OurDriver), 5)
set TypesSupported = #(Drivers, $(OurDriver), 6)
set Start = $(#(DriversStart, $(OurDriver), 1))
set DependOnGroup = {"Parallel arbitrator"}
set DependOnService = {"Parport"}
set ParametersValues = { +
{"TransferType", $(Notitle), $(!REG_VT_DWORD), 0 }, +
{"UseNT35Priority", $(Notitle), $(!REG_VT_DWORD), 1 }, +
{"DosDevice", $(Notitle), $(!REG_VT_SZ), "Bi_LPT"}, +
{"BusyTime", $(Notitle), $(!REG_VT_DWORD), 3000} }
installtheoption = +
;
; Code to add files to copy list
;
ifstr(i) $(AddCopy) == "YES"
set DoActualCopy = NO
set FileToCheck = #(Files-Drivers, $(OurDriver), 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 driver 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 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 "OEMSETUP.INF: User cancelled asking source."
; goto finish_InstallOption
; endif
install AddFilesToCopyList_ClassDriver
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 InstallCopyFilesOption
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 driver entry, the entry is created automatically
; enabled
;
set ServiceNode = $(OurDriver)
set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-Drivers, $(OurDriver), 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) } +
}
ifstr(i) $(DependOnGroup) != {}
set ServicesValues = >($(ServicesValues),{DependOnGroup, 0, $(!REG_VT_MULTI_SZ), $(DependOnGroup) })
endif
ifstr(i) $(DependOnServices) != {}
set ServicesValues = >($(ServicesValues),{DependOnService,0,$(!REG_VT_MULTI_SZ),$(DependOnService)})
endif
; 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 driver"
goto finish_InstallOption
endif
endif
set Status = STATUS_SUCCESSFUL
finish_InstallOption = +
Return $(Status)
;-------------------------------------------------------------------------
;GetInstalledOptions:
;-------------------------------------------------------------------------
[GetInstalledOptions]
set Status = STATUS_FAILED
set InstalledOptions = {}
set InstalledOptionsText = {}
Debug-Output "Enter:[M353Par.inf] GetInstalledOptions "
; language check
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) in $(LanguageList)
else
set Status = STATUS_NOLANGUAGE
goto finish_GetInstalledOptions
endif
set OptionList = ^(Options, 0)
Debug-Output "[M353Par.inf] OptionList=$(OptionList) "
ForListDo $(OptionList)
Debug-Output "Enter ForListDo! "
set OurDriver = #(Options, $($), 1)
set OurFile = #(Files-Drivers, $(OurDriver), 2)
set FilePath = $(!STF_WINDOWSSYSPATH)"\drivers\"$(OurFile)
Debug-Output "[M353Par.inf] $(OurDriver) $(OurFile) $(FilePath)"
LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
Debug-Output "Passed : LibraryProcedure"
ifstr(i) $(STATUS) == "YES"
shell "registry.inf" GetServicesEntryStart $(OurDriver)
Debug-Output "AAA:$($ShellCode) $($R0) $($R1)"
ifint $($ShellCode) == $(!SHELL_CODE_OK)
Debug-Output "Passed : ShellCode"
ifstr(i) $($R0) == STATUS_SUCCESSFUL
Debug-Output "Passed : R0"
ifstr(i) $($R1) != $(!SERVICE_DISABLED)
Debug-Output "Passed : R1"
set OptionText = #(OptionsText$($0), $($), 1)
set InstalledOptions = >($(InstalledOptions), $($))
set InstalledOptionsText = >($(InstalledOptionsText), $(OptionText))
Debug-Output "OptionText = $(OptionText)"
Debug-Output "InstalledOptions = $(InstalledOptions)"
Debug-Output "InstalledOptionsText = $(InstalledOptionsText)"
endif
endif
endif
endif
EndForListDo
set Status = STATUS_SUCCESSFUL
finish_GetInstalledOptions =+
Debug-Output "End Section [GetInstalledOptions] $(Status) $(InstalledOptions) $(InstalledOptionsText)"
Return $(Status) $(InstalledOptions) $(InstalledOptionsText)
;**************************************************************************
;**************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Parallel Port Driver
;
;
;-----------------------------------------------------------------------
; 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 = Driver
;-----------------------------------------------------------------------
; 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]
M353Par = M353Par
;-----------------------------------------------------------------------
; 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]
M353Par = "QMS DeskLaser600 Parallel Class Driver"
;-----------------------------------------------------------------------------------------
; DRIVERS
; -------
; Order of the information:
;
; driver = Type, Group, ErrorControl, Dependencies, EventMessageFile, TypesSupported
;
; NOTE: \ in the dependency list means that the dependency is on a group.
;-----------------------------------------------------------------------------------------
[Drivers]
M353Par = !SERVICE_KERNEL_DRIVER, "Extended Base" , !SERVICE_ERROR_NORMAL, "", "%SystemRoot%\System32\IoLogMsg.dll" , 7
[DriversStart]
M353Par = !SERVICE_AUTO_START
;**************************************************************************
; PROGRESS GUAGE VARIABLES
;**************************************************************************
[MsgStringsENG]
MsgString1 = "Installation failed! ( Parallel Class Driver)"
MsgString2 = "Installation failed! ( Status Monitor)"
MsgString3 = "You can't setup. "$(!LF)+
"Please log on the PC using an user account"$(!LF)+
"that has Full Control permission"
MsgString10 = "This INSTALL.INF file isn't a match for this computer."
; MsgString11 = "Can't install the printer driver on your PC's processor."+
; $(!LF)$(!LF)"Installation failed."
MsgString12 = "Installation of Parallel Class Driver/Status Monitor are Completed."$(!LF)$(!LF)+
"Please setup a printer continually."
[CustomDlgMsgENG]
DlgType = "MessageBox"
DlgTemplate = "WELCOME"
STF_MB_TITLE = "Printer set up for QMS DeskLaser600"
STF_MB_TEXT = $(LF)$(LF)+
"You can install drivers"$(LF)+
" Parallel Class Driver"$(LF)+
" Status Monitor "$(LF)$(LF)+
"If you continue a installation, you click the OK button."$(LF)+
"If you cancel an installation, you click the CANCEL button."
STF_MB_TYPE = 2
STF_MB_DEF = 1
STF_MB_ICON = 5
OK = "OK (&O)"
CANCEL = "Cancel (&C)"
[ProgressCopyENG]
ProCaption = "QMS DeskLaser600 Driver Setup"
ProCancel = "CANCEL(&A)"
ProCancelMsg = "Status Monitor is not installed."+
"Are you cancel setup of printer driver?"
ProCancelCap = "CANCEL"
ProText1 = "From:"
ProText2 = "To :"
[ProgressCopyENG]
ProCaption = "Driver Setup"
ProCancel = "CANCEL(&A)"
ProCancelMsg = "Parallel class driver is not installed."+
"Are you cancel setup of printer driver?"
ProCancelCap = "CANCEL"
ProText1 = "From:"
ProText2 = "To :"
[StringsENG]
String1 = "QMS DeskLaser600 Parallel Class Driver"
[Source Media Descriptions]
1 = "QMS DeskLaser600 Paralle Class Driver Setup Disk" , TAGFILE = disk1
[StatusMonitorFiles]
1,m353st.exe, OVERWRITE=VERIFYSOURCEOLDER
1,m353st.hlp, OVERWRITE=VERIFYSOURCEOLDER
; 1,m353st.gid, OVERWRITE=VERIFYSOURCEOLDER
[Files-Drivers]
M353Par = 1, M353Par.SYS
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.