home *** CD-ROM | disk | FTP | other *** search
INI File | 1996-11-27 | 31.9 KB | 936 lines |
-
- [Source Media Descriptions]
- 1 = "IR Setup 1", TAGFILE = disk1
-
- [FixedVars]
- ;
- ; Other misc compatibility stuff.
- ;
- LanguageList = {"ENG"}
- DebugOutputControl = 1
- STF_CONTROLSET = CurrentControlSet
- STF_DISPLAYDEBUGOUTPUT = 1
- STF_LANGUAGE = ENG
- STF_VITAL = ""
-
-
- [VariableVars]
- STF_PLATFORM = "" ? $(!LEGACYDLL) GetPlatform
- STF_WINDOWSSYSPATH = "" ? $(!LEGACYDLL) GetWindowsNtSysDir
- STF_WINDOWSPATH = "" ? $(!LEGACYDLL) GetWindowsNtDir
- STF_WINDIRPATH = "" ? $(!LEGACYDLL) GetNtDir
- STF_INSTALLED = "NO"
-
- [LoadSetupLibraries]
- ; LoadLibrary x $(!STF_SYSTEM_DIR)\setupdll.dll !LEGACYDLL
- ; LoadLibrary x %SystemRoot%\System32\setupdll.dll !LEGACYDLL
- LoadLibrary "x" $(!STF_CWDDIR)setupdll.dll !LEGACYDLL
-
- LoadLibrary y iruidlg.dll !IRUIDLGHANDLE
- ;
- ; Some old infs expect !LIBHANDLE to be valid.
- ;
- set !LIBHANDLE = $(!LEGACYDLL)
- exit
-
- [FreeSetupLibraries]
- FreeLibrary !LEGACYDLL
- FreeLibrary !IRUIDLGHANDLE
- exit
-
- [Install-Shutdown]
- LibraryProcedure STATUS,$(!LIBHANDLE),ShutdownSystem $(Reboot)
- exit
-
- [DriversExistDlgENG]
- Caption = "Windows NT Infrared Driver Setup"
- DlgText = "You can install or de-install the Windows NT infra red drivers."+
- "Choose an action to continue:"
- Current = "&Install"
- New = "&DeInstall"
- Cancel = "Cancel"
- Help = "&Help"
- DlgType = "Info"
- DlgTemplate = "DRIVEREXISTS"
- HelpContext = 1043 ; 5010 ; $(!IDH_DB_MAINTAIN_INS) ; $(!IDH_DB_DRIVEREXIST_INS)
-
- [UserCancelENG]
- DlgType = "MessageBox"
- STF_MB_TITLE = "Windows NT Infrared Drivers Setup"
- STF_MB_TEXT = "The drivers are not correctly installed. Are you sure you want to cancel?"
- STF_MB_TYPE = 3
- STF_MB_ICON = 2
- STF_MB_DEF = 1
-
- [SetupCompleteDlgENG]
- Caption = "Windows NT Infrared Drivers Setup"
- DlgText = "The drivers have been installed." ; $(!LF)$(!LF)+
- ; "Remove the installation disk before you reboot."
- Reboot = "&Restart Computer"
- Windows = "E&xit to Windows NT"
- DlgType = "Info"
- DlgTemplate = "REBREST"
-
- [Shell Commands]
- ;
- ; Load libraries and set up static inf variables.
- ;
- StartWait
- set-title "Infrared Data Association Driver Setup"
-
- install LoadSetupLibraries
-
-
- read-syms FixedVars
- detect VariableVars
-
- ; set-subst CR = "\r"
- set-subst LF = "\n"
-
-
- LibraryProcedure CurDir,$(!IRUIDLGHANDLE),IrUiQueryCurrentDirectory
- ; shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "CurrentDirectory="$(CurDir)
-
-
- shell "subroutn.inf" ReadSetupHelpIds ; To read the driver exist help ID (1042)
- SetHelpFile "setup_ir.hlp" 1042 1043
-
- UserAction =+
- read-syms DriversExistDlg$(!STF_LANGUAGE)
- ui start "DriversExist"
- ifstr(i) $(DLGEVENT) == "DLGBUTTON0" ; Choose to install
- ui pop 1
- Shell "" InstallOption $(STF_LANGUAGE) "OEMIR" $(CurDir) "YES" "YES" "YES"
- else-ifstr(i) $(DLGEVENT) == "DLGBUTTON1" ; choose to de-install
- ui pop 1
- Shell "" DeInstallOption $(STF_LANGUAGE) "OEMIR" $(CurDir) "YES" "YES" "YES"
- else-ifstr(i) $(DLGEVENT) == "BACK"
- ui pop 1
- read-syms UserCancel$(!STF_LANGUAGE)
- ui start "SureToCancel?"
- ui pop 1
- ifstr(i) $(DLGEVENT) == "NO"
- goto UserAction
- endif
- endif
-
- EndWait
-
- ifstr(i) $($R0) == STATUS_SUCCESSFUL
- read-syms SetupCompleteDlg$(STF_LANGUAGE)
-
- ui start "SetupComplete"
-
- ifstr(i) $(DLGEVENT) == "CONTINUE"
- ui pop 1
- goto rebootend
- else
- ui pop 1
- goto end
- endif
- else
- ; may need to let user knows that the setup has failed !!
- ; ????????????????
-
- goto end
- endif
-
- rebootend =+
- set Reboot = YES
- install Install-Shutdown
-
- end =+
- install FreeSetupLibrary
- exit
-
- ;---------------------------------------------------------------------------
- ; 0. Introduction
- ;
- ; There are three drivers to installed in addition to three VDD Dlls
- ; Three virtual device drivers DLLs are:
- ; - IBMIR.dll (16-bit, loaded by TranXit, a 16 bit IR application)
- ; - IRDA_DLL.DLL (16-bit, loaded by IBMIR.DLL)
- ; - IRVDD.DLL (32-bit, loaded by IRDA_DLL.DLL)
- ;
- ; These three drivers are:
- ; - Ir Communication (one and only and is shared with RAS)
- ; - Ir Protocol (one and only)
- ; - Ir Physical (this can vary depend on the DMA chip used for the IrCom port)
- ;
- ;---------------------------------------------------------------------------
-
- [Identification]
- OptionType = DRIVER
-
- [LanguagesSupported]
- ENG
-
- [Options]
- "OEMIR" = oemir
-
- [OptionsTextENG]
- "OEMIR" = "IBM Infrared Data Association Drivers"
-
- [Drivers]
- oemir = !SERVICE_KERNEL_DRIVER, "IRDA", !SERVICE_ERROR_NORMAL, 17, %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 = {}
-
- 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, 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
- ;
- ; Ask user for parameters
- ; return: PortSelection
- ;
- ; Check if driver exist (re-installation)
- ; if not exist, goto copy file
- ; if exist, ask user to use the current or the new ones
- ;
- ; Copy files
- ; (new installation or use the new drivers)
- ;
- ; Configure the registry
- ; (if new or registry has been changed)
- ;
- ;------------------------------------------------------------------------
-
- [InstallOption]
- ;
- ; Set default values
- ;
- 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 "Setup_IR.INF: IrDA option is not supported."
- goto finish_InstallOption
- endif
-
- Debug-Output "Setup_IR.INF: After Check Options."
-
- set OptionList = ""
-
- ;
- ; Option has been defined already
- ;
- set Driver = #(Options, $(Option), 1)
- set Type = $(#(Drivers, $(Driver), 1))
- set Group = #(Drivers, $(Driver), 2)
- set ErrorControl = $(#(Drivers, $(Driver), 3))
- set Tag = #(Drivers, $(Driver), 4)
- set EventMessageFile = #(Drivers, $(Driver), 5)
- set TypesSupported = #(Drivers, $(Driver), 6)
-
- set Start = $(!SERVICE_AUTO_START)
-
- ;
- ; Code to add files to copy list
- ;
-
- read-syms Files-DriverName
-
- ;set PhysicalDriver = #(Files-IrDADrivers, irda_phy, 2)
- ;set ProtocolDriver = #(Files-IrDADrivers, ibmirpro, 2)
- ;set CommDriver = #(Files-IrDADrivers, ircomm, 2)
-
- AddFileOption =+
-
- ;
- ; Query if Irda_phy's IoBase Exist ?; No? new installation; YES? Query its IoBase Setting
- ;
-
- set ComPort = IRPORT ; or COMPORT
- set BaseAddr = 2F8 ; or 3F8
- set CfgChanged = YES
-
- OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Irda_phy" $(!REG_KEY_READ) Irda_PhyKey
- ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; i.e. 0
- Debug-Output "Setup_ir.inf: Failed to open Irda_Phy key"
- ; shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Failed to open the Irda_Phy key. New install ?" ; New installation
- ; New installation!
- else
- ; current version exist !!??
- set CfgChanged = NO ; if exists, set to yes only if user change existing setting.
-
- GetRegValue $(Irda_PhyKey) "IoBase" IoBaseList
- set IoBase = *($(IoBaseList), 4)
-
- ifint $(IoBase) == 760 ; 760 = 0x2F8
- set BaseAddr = 2F8
- else
- set BaseAddr = 3F8
- endif
-
- GetRegValue $(Irda_PhyKey) "EnabledIrPort" IrEnabledList
- set IrEnabled = *($(IrEnabledList), 4)
-
- ifint $(IrEnabled) == 0
- set ComPort = COMPORT
- else
- set ComPort = IRPORT
- endif
-
- endif
- CloseRegKey $(Irda_PhyKey)
-
- ;
- ; Ask user's for driver installation parameters
- ; Returns:
- ; COM1 = 3f8, IRQ4
- ; COM2 = 2f8, IRQ3
- ;
-
- set CfgChanged = YES
-
- ; Default them to this and the physical driver will verify them (assumption)
- set PortSel = IRPORT
- set AddrSel = 3F8
-
- ;
- ; Check to see if the drivers are already existed.
- ; if already exist,
- ; ask user to use either the new ones or the current ones (and do the configuration only)
- ;
- CheckDriversExist =+
- set DoActualCopy = NO
-
- LibraryProcedure PhysicalDriverExist,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(PhysicalDriver)
- ifstr(i) $(Driver1Exist) == "YES"
- goto UseNewOrCurrent
- endif
-
- LibraryProcedure ProtocolDriverExist,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(ProtocolDriver)
- ifstr(i) $(ProtocolDriverExist) == "YES"
- goto UseNewOrCurrent
- endif
-
- LibraryProcedure CommDriverExist,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(CommDriver)
- ifstr(i) $(CommDriverExist) == "YES"
- goto UseNewOrCurrent
- endif
-
- set DoActualCopy = YES
-
- goto AddFilesToList
-
- ;
- ; Use the new or the current drivers ?
- ;
-
- UseNewOrCurrent = +
- shell "subroutn.inf" DriversExist $($0) $(String1)
-
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "Setup_IR.INF: shelling DriversExist failed"
- goto finish_InstallOption
- endif
-
- set UseCurDrivers = "NO"
-
- ;
- ; Always update the registry weather it is a new drivers and using current drivers (setting may have changed!).
- ;
- ui pop 1
- ifstr(i) $($R0) == STATUS_CURRENT
- ; set UseCurDrivers = YES
- goto DoConfigRegistry
- else-ifstr(i) $($R0) == STATUS_NEW
- set CfgChanged = YES
- goto AddFilesToList
- else-ifstr(i) $($R0) == STATUS_USERCANCEL
- read-syms UserCancel$(!STF_LANGUAGE)
- ui start "SureToCancel?"
- ifstr(i) $(DLGEVENT) == "NO"
- ui pop 1
- goto UseNewOrCurrent
- endif
- Debug-Output "Setup_IR.INF: User cancelled IrDA installation"
- goto finish_InstallOption
- else
- Debug-Output "Setup_IR.INF: Error reported in DriversExist routine in SUBROUTN.INF"
- goto finish_InstallOption
- endif
-
- ;
- ; Add files to the copy list and then copy them
- ;
-
- AddFilesToList = +
- LibraryProcedure IRCOMMSrcExist,$(!LIBHANDLE),CheckFileExistance $(SrcDir)"\"$(CommDriver)
-
- ifstr(i) $(IRCOMMSrcExist) == "NO"
- shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2)
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "IRCONFIG.INF: shelling DoAskSourceEx failed"
- goto finish_InstallOption
- endif
-
- ifstr(i) $($R0) == STATUS_SUCCESSFUL
- ; New src directory
- set SrcDir = $($R1)
-
- ifstr(i) $($R2) != ""
- set DrivesToFree = >($(DrivesToFree), $($R2))
- endif
- else
- Debug-Output "IRCONFIG.INF: User cancelled asking source."
- goto finish_InstallOption
- endif
-
- goto AddFilesToList
- else
- ; add drivers and DLLs to the list
- install Install-AddCopyOption
-
- ; Copy them
- read-syms ProgressCopy$($0)
- install Install-DoCopyOption
-
- ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
- Debug-Output "Setup_IR:INF: Copying files failed"
- goto finish_InstallOption
-
- else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
- set Status = STATUS_USERCANCEL
- goto finish_InstallOption
- endif
- endif
- Debug-Output "Setup_IR.INF: After DoCopy."
-
-
- ;
- ; Configure the registry
- ;
-
- DoConfigRegistry = +
- ifstr(i) $(CfgChanged) == "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
- shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Do not have administrator privilage to change the registry."
- goto finish_InstallOption
- endif
-
- set ServiceNode1 = irda_phy
- set ServiceNode2 = ibmirpro
- set ServiceNode3 = ircomm
- set ServiceBinary1 = System32\drivers\$(PhysicalDriver) ; #(Files-IrDADrivers, irda_phy, 2)
- set ServiceBinary2 = System32\drivers\$(ProtocolDriver) ; #(Files-IrDADrivers, ibmirpro, 2)
- set ServiceBinary3 = System32\drivers\$(CommDriver) ; #(Files-IrDADrivers, ircomm, 2)
-
- set ServicesValues2 = { +
- {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) }, +
- {DependOnService,0, $(!REG_VT_SZ), irda_phy }, +
- {LsapClients, 0, $(!REG_VT_DWORD), 8 }, +
- {LapWindowSize, 0, $(!REG_VT_DWORD), 7 }, +
- {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary2) } +
- }
-
- ; 3F8 is always COM1, but I will select IRQ4 ??
- ifstr(i) $(AddrSel) == "3F8"
- set IoBaseList = {IoBase, 0, $(!REG_VT_DWORD), 1016}
- set IrdaIrqList = {IrdaIrq, 0, $(!REG_VT_DWORD), 4}
- set ComPortList = {ComPort, 0, $(!REG_VT_DWORD), 1}
- else
- set IoBaseList = {IoBase, 0, $(!REG_VT_DWORD), 760}
- set IrdaIrqList = {IrdaIrq, 0, $(!REG_VT_DWORD), 3}
- set ComPortList = {ComPort, 0, $(!REG_VT_DWORD), 2}
- endif
-
- ifstr(i) $(PortSel) == "COMPORT"
- set EnabledIRList = {"EnabledIrPort", 0, $(!REG_VT_DWORD), 0} ; 0 = Disabled
- else
- set EnabledIRList = {"EnabledIrPort", 0, $(!REG_VT_DWORD), 1} ; 1 = Enabled
- endif
-
- set ServicesValues1 = { +
- {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) }, +
- {HighSpeedBase, 0, $(!REG_VT_DWORD), 0 }, +
- {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary1) }, +
- $(IoBaseList), +
- $(IrdaIrqList), +
- $(EnabledIRList) +
- }
-
- set ServicesValues3 = { +
- {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) }, +
- {DependOnService,0, $(!REG_VT_SZ), ibmirpro }, +
- {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary3) }, +
- $(ComPortList) +
- }
-
-
- ;
- ; Event log
- ;
- set ParametersValues = ""
- set DeviceValues = {}
- set EventLogValues = { +
- {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
- {TypesSupported, 0, $(!REG_VT_DWORD), $(TypesSupported) } +
- }
-
- shell "registry.inf" MakeServicesEntry $(ServiceNode1) +
- $(ServicesValues1) +
- $(ParametersValues) +
- $(DeviceValues) +
- $(EventLogValues) +
- Parameters
-
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "Setup_IR.INF: Couldn't execute MakeServicesEntry in registry.inf"
- goto finish_InstallOption
- endif
-
- ifstr(i) $($R0) != STATUS_SUCCESSFUL
- Debug-Output "Setup_IR.INF: MakeServicesEntry failed for IrDA"
- goto finish_InstallOption
- endif
-
-
- shell "registry.inf" MakeServicesEntry $(ServiceNode2) +
- $(ServicesValues2) +
- $(ParametersValues) +
- $(DeviceValues) +
- $(EventLogValues) +
- Parameters
-
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "Setup_IR.INF: Couldn't execute MakeServicesEntry in registry.inf"
- goto finish_InstallOption
- endif
-
- ifstr(i) $($R0) != STATUS_SUCCESSFUL
- Debug-Output "Setup_IR.INF: MakeServicesEntry failed for IrDA"
- goto finish_InstallOption
- endif
-
-
- shell "registry.inf" MakeServicesEntry $(ServiceNode3) +
- $(ServicesValues3) +
- $(ParametersValues) +
- $(DeviceValues) +
- $(EventLogValues) +
- Parameters
-
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "Setup_IR.INF: Couldn't execute MakeServicesEntry in registry.inf"
- goto finish_InstallOption
- endif
-
- ifstr(i) $($R0) != STATUS_SUCCESSFUL
- Debug-Output "Setup_IR.INF: MakeServicesEntry failed for IrDA"
- goto finish_InstallOption
- endif
-
-
- ;
- ; Open serial key to disable the user selected serial port
- ;
- OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters" $(!REG_KEY_ALL_ACCESS) SerialParamKey
- ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; 0 ; "REG_ERROR_SUCCESS"
- Debug-Output "Setup_ir.inf: Failed to open Serial key"
- shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Failed to open Serial Param key"
- goto finish_InstallOption
- endif
-
-
- set CreateInfraRedPort = YES
- EnumRegKey $(SerialParamKey) SerialParamSubKeyList
-
- ForListDo $(SerialParamSubKeyList)
- set SerialPortName = *($($),1)
-
- OpenRegKey $(SerialParamKey) "" $(SerialPortName) $(!REG_KEY_ALL_ACCESS) SerialKey
- ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
- Debug-Output "Setup_ir.inf: Failed to open Serial key"
- shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Failed to open Serial key "$(SerialPortName)
- else
- GetRegValue $(SerialKey) "DosDevices" DosDevicesPort
- ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; i.e. 0
- shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "DosDevices does not exist in "$(SerialPortName)
- else
- set DosDevice = *($(DosDevicesPort),4)
- ; We found the port that we want to disable.
- ifstr(i) $(DosDevice) == "COM1"
- ; we want the infrared port key to be created so it can never
- ; be accidentally delted by the user from the control panel applet:PORT.
- ; set CreateInfraRedPort = NO
- set DisabledPortList = {"DisablePort",0,$(!REG_VT_DWORD), 1}
- SetRegValue $(SerialKey) $(DisabledPortList)
-
- ; shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Added DisablePort=1 to ..\Parmeters\"$(SerialPortName)
- endif
- endif
- endif
- CloseRegKey $(SerialKey)
- EndForListDo
-
-
- ifstr(i) CreateInfraRedPort == NO
- CloseRegKey $(SerialParamKey)
- set Status = STATUS_SUCCESSFUL
- goto Finish_InstallOption
- endif
-
-
- CreateRegKey $(SerialParamKey) {"InfraRedPort",0,GenericClass} "" $(!REG_KEY_SET_VALUE) 0 InfraPortKey
- ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
- ifstr(i) $(InfraPortKey) == ""
- OpenRegKey $(SerialParamKey) "" "InfraRedPort" $(!REG_KEY_SET_VALUE) InfraPortKey
- ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
- CloseRegKey $(SerialParamKey)
- Debug-Output "Setup_ir.inf: Failed to open InfraRedPort key"
- shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Failed to open InfraRedPort key"
- goto finish_InstallOption
- endif
- ; shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "InfraRedPort already exist. Ready to over-write!"
- else
- CloseRegKey $(SerialParamKey)
- Debug-Output "Setup_ir.inf: Failed to create InfraRedPort key"
- shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Failed to create InfraRedPort key"
- goto finish_InstallOption
- endif
- endif
-
-
- SetRegValue $(InfraPortKey) {"DisablePort",0,$(!REG_VT_DWORD), 1}
- ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
- CloseRegKey $(InfraPortKey)
- Debug-Output "Setup_ir.inf: Failed to create DisablePort value"
- shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Failed to create DisablePort value"
- goto finish_InstallOption
- endif
-
- ; Disable this com port from being initialized by the serial driver and let IR driver initialze it
- SetRegValue $(InfraPortKey) {"DosDevices",0,$(!REG_VT_SZ), "COM1"}
- SetRegValue $(InfraPortKey) {"PortAddress",0,$(!REG_VT_DWORD), 1016} ; 0x3f8 = 1016
- SetRegValue $(InfraPortKey) {"Interrupt",0,$(!REG_VT_DWORD), 4}
-
- CloseRegKey $(SerialParamKey)
-
- endif
-
- set Status = STATUS_SUCCESSFUL
-
- finish_InstallOption = +
-
- ForListDo $(DrivesToFree)
- LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
- EndForListDo
-
- Return $(Status)
-
-
- [Install-AddCopyOption]
-
- AddSectionFilesToCopyList Files-IrDADrivers $(SrcDir) $(!STF_WINDOWSPATH)\system32\drivers
- AddSectionFilesToCopyList Files-VddDlls $(SrcDir) $(!STF_WINDOWSPATH)\system32
- AddSectionFilesToCopyList Files-16BitDlls $(SrcDir) $(!STF_WINDOWSPATH)\system
- exit
-
-
- [Install-DoCopyOption]
-
- CopyFilesInCopyList
-
- exit
-
- [Install-DeleteFilesOption]
-
- AddFileToDeleteList $(!STF_WINDOWSPATH)\system32\drivers\$(PhysicalDriver)
- AddFileToDeleteList $(!STF_WINDOWSPATH)\system32\drivers\$(ProtocolDriver)
- AddFileToDeleteList $(!STF_WINDOWSPATH)\system32\drivers\$(CommDriver)
-
- AddFileToDeleteList $(!STF_WINDOWSPATH)\system32\Irvdd.dll
-
- AddFileToDeleteList $(!STF_WINDOWSPATH)\system\ibmir.dll
- AddFileToDeleteList $(!STF_WINDOWSPATH)\system\irda_dll.dll
-
- exit
-
-
-
- ;---------------------------------------------------------
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;---------------------------------------------------------
-
- [DeInstallOption]
-
- set Status = STATUS_FAILED
- set Option = OEMIR ; IrDA_Drivers
-
- set LanguageList = ^(LanguagesSupported, 1)
- Ifcontains(i) $($0) in $(LanguageList)
- else
- set Status = STATUS_NOLANGUAGE
- goto finish_DeInstallOption
- endif
- read-syms Strings$($0)
-
- set OptionList = ^(Options, 0)
- ifcontains $(Option) in $(OptionList)
- else
- goto finish_DeInstallOption
- endif
- set OptionList = ""
-
-
- read-syms Files-DriverName
-
- shell "registry.inf" RemoveServicesEntry irda_phy
- shell "registry.inf" RemoveServicesEntry ibmirpro
- shell "registry.inf" RemoveServicesEntry ircomm
-
- remove_DisablePort =+
- ;
- ; Make the port available for the Serial driver; set DisablePort to 0
- ;
- OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters" $(!REG_KEY_ALL_ACCESS) SerialParamKey
- ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; 0 ; "REG_ERROR_SUCCESS"
- Debug-Output "Setup_ir.inf: Failed to open Serial key"
- shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Failed to open Serial Param key"
- goto finish_DeInstallOption
- endif
-
- set DeleteInfraRedPort = YES
- EnumRegKey $(SerialParamKey) SerialParamSubKeyList
-
- ForListDo $(SerialParamSubKeyList)
- set SerialPortName = *($($),1)
-
- ifstr(i) $(SerialPortName) == "InfraRedPort" ; this is unique and this subkey should be deleted!!
- ; shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Deleting InfraRedPort subkey:"$(SerialPortName)
-
- DeleteRegTree $(SerialParamKey) "InfraRedPort"
- ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; 0 ; "REG_ERROR_SUCCESS"
- Debug-Output "Setup_ir.inf: Failed to open Serial key"
- shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Failed to delete InfraRedPort subkey."
- endif
- else
- OpenRegKey $(SerialParamKey) "" $(SerialPortName) $(!REG_KEY_ALL_ACCESS) SerialKey
- ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
- Debug-Output "Setup_ir.inf: Failed to open Serial key"
- shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Failed to open Serial key "$(SerialPortName)
- else
- GetRegValue $(SerialKey) "DosDevices" DosDevicesPort
- ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; i.e. 0
- shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "DosDevices does not exist in "$(SerialPortName)
- else
- set DosDevice = *($(DosDevicesPort),4)
- ifstr(i) $(DosDevice) == "COM1"
- set CreateInfraRedPort = NO
- set DisabledPortList = {"DisablePort",0,$(!REG_VT_DWORD), 0} ; Set DisablePort to 0
- SetRegValue $(SerialKey) $(DisabledPortList)
-
- ; shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Added DisablePort=0 to ..\Parmeters\"$(SerialPortName)
- endif
- endif
- endif
- CloseRegKey $(SerialKey)
- endif
- EndForListDo
-
- CloseRegKey $(SerialParamKey)
-
-
- delete_Drivers =+
-
-
- install Install-DeleteFilesOption
-
- set Status = STATUS_SUCCESSFUL
-
- finish_DeInstallOption =+
- Return $(Status)
-
- [Install-DoRemoval]
- set Status = STATUS_FAILED
-
- ; Why does not work ??
- ;shell "registry.inf" RemoveServicesEntry $(DriverFilename)
- shell "registry.inf" ModifyServiceEntry $(DriverFilename) $(!SERVICE_DISABLED)
-
-
- ifint $($ShellCode) != $(!SHELL_CODE_OK)
- Debug-Output "Setup_IR.INF: Failed to shell RemoveServicesEntry"
- return $(Status)
- endif
-
- ifstr(i) $($R0) != STATUS_SUCCESSFUL
- Debug-Output "Setup_IR.INF: Failed to disable services entry"
- return $(Status)
- endif
-
- set Status = STATUS_SUCCESSFUL
- exit
-
- ;------------------------------------------------------------------------
- ; Constant data area:
- ;
- ;
- ;
- ;------------------------------------------------------------------------
-
- [ProgressCopyENG]
- ; For CopyFilesInCopyList command
- ProCaption = "Windows NT Setup"
- ProCancel = "Cancel"
- ProCancelMsg = "Windows NT Infrared Drivers are not correcly installed. Are you sure you want "+
- "to cancel copying files?"
- ProCancelCap = "Setup Message"
- ProText1 = "Copying:"
- ProText2 = "To:"
-
- [StringsENG]
- String1 = "Infrared Devices"
- String2 = "Please enter the full path of the directory containing the infrared drivers. Then choose Continue."
-
- [Files-IrDADrivers]
- irda_phy = 1,irda_phy.sys , SIZE=999
- ibmirpro = 1,ibmirpro.sys , SIZE=999
- ircomm = 1,ircomm.sys , SIZE=999
-
- [Files-VddDlls]
- VDD = 1,irvdd.dll , SIZE=999
-
- [Files-16bitDlls]
- IBMIR = 1,ibmir.dll , SIZE=999
- irda_dll = 1,irda_dll.dll , SIZE=999
-
-
- [Files-DriverName]
- PhysicalDriver = #(Files-IrDADrivers, irda_phy, 2)
- ProtocolDriver = #(Files-IrDADrivers, ibmirpro, 2)
- CommDriver = #(Files-IrDADrivers, ircomm, 2)
-
-