home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IBM Thinkpad Drivers FTP
/
IRTPGWNT.ZIP
/
SETUP_IR.INF
< prev
Wrap
INI File
|
1996-11-27
|
33KB
|
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)