;***************************************************************************
; 1. Identifikation
;
; Beschreibung: überprüfe ob der OptionType der Inf-Datei der gleiche ist
; wie der im ControlPanelApplet ausgewählte.
;
; Input: keine
;
; 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:
;
; Beschreibung: To return the option list supported by this INF and the
; localised text list representing the options.
;
;
; Input: $($0): Language used. ( ENG | FRN | ... )
; $($1): Platform used. ( ISA | PCI | ... )
;
; Output: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE
; STATUS_FAILED
; STATUS_NOTSUPPORTED
;
; $($R1): Option List
; $($R2): Option Text List
;------------------------------------------------------------------------
[ReturnOptions]
Set !DebugOutputControl = 1
Debug-Output "ReturnOptions >"
Set Status = STATUS_FAILED
Set Language = $($0)
Set PlatForm = $($1)
Set OptionList = {}
Set OptionTextList = {}
Set LanguageList = ^(LanguagesSupported, 1)
Set PlatformList = ^(PlatformsSupported, 1)
Debug-Output "ReturnOptions Language "$(Language)
Debug-Output "ReturnOptions PlatForm "$(PlatForm)
; get current InstallLanguage
Shell "" InstallLanguageSupported
Set Language = $($R1)
Debug-Output "ReturnOptions Language "$(Language)
Read-Syms GeneralConstants
Read-Syms ProductConstants
; teste ob die Installationssprache unterstützt wird
; --------------------------------------------------
Ifcontains(i) $(Language) in $(LanguageList)
; teste ob keine Platform gefordert wurde
; ---------------------------------------
ifstr(i) $(PlatForm) == ""
; Sprache und Platform o.k.
; stelle OptionListe und OptionTextListe zusammen
; -----------------------------------------------
Set OptionList = ^(Options, 1)
Set OptionTextList = ^(OptionsText, 1)
Set Status = STATUS_SUCCESSFUL
else
Ifcontains(i) $(PlatForm) in $(PlatformList)
; Sprache und Platform o.k.
; stelle OptionListe und OptionTextListe zusammen
; -----------------------------------------------
Set Status = STATUS_SUCCESSFUL
Set OptionList = ^(Options, 1)
Set OptionTextList = ^(OptionsText, 1)
else
; *** ERROR **** Platform nicht unterstützt
; -----------------------------------------
Set Status = STATUS_NOTSUPPORTED
endif
endif
else
; *** ERROR *** Sprache nicht unterstützt
; ---------------------------------------
set Status = STATUS_NOLANGUAGE
endif
Debug-Output "ReturnOptions * Status "$(Status)
Return $(Status) $(OptionList) $(OptionTextList)
;***************************************************************************
;
; InstallOption:
;
; This section is shelled to by main installation processing
; or by NCPASHEL.INF during reconfig, removal, update, etc.
;
;
; 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 !DebugOutputControl = 1
Set Language = $($0)
Set Option = $($1)
Set SrcDir = $($2)
Set RasDir = $($2)
Set AddCopy = $($3)
Set DoCopy = $($4)
Set DoConfig = $($5)
Debug-Output "InstallOption >"
; get current InstallLanguage
Shell "" InstallLanguageSupported
Set Language = $($R1)
Debug-Output "InstallOption Language "$(Language)
; wähle die aktuelle SetupProzedur aus
; ------------------------------------
IfStr(i) $(!NTN_InstallMode) == install
; Adapter hinzufügen
; ------------------
shell "" AddAdapter $(Language) $(Option) $(SrcDir) $(RasDir) $(AddCopy) $(DoCopy) $(DoConfig)
Else-IfStr(i) $(!NTN_InstallMode) == deinstall
; Adapter entfernen
; -----------------
shell "" RemoveAdapter $(Language) $(Option) $(SrcDir) $(RasDir) $(AddCopy) $(DoCopy) $(DoConfig)
Else-IfStr(i) $(!NTN_InstallMode) == Update
; Adapter aktualisieren
; ---------------------
shell "" UpdateAdapter $(Language) $(Option) $(SrcDir) $(RasDir) $(AddCopy) $(DoCopy) $(DoConfig)
Else-IfStr(i) $(!NTN_InstallMode) == bind
; Adapter neu binden
; ------------------
shell "" BindAdapter $(Language) $(Option) $(SrcDir) $(RasDir) $(AddCopy) $(DoCopy) $(DoConfig)
Else-IfStr(i) $(!NTN_InstallMode) == configure
; Adapter konfigurieren
; ---------------------
shell "" ConfigureAdapter $(Language) $(Option)
Else
; *** ERROR ***
; -------------
Debug-Output " nicht unterstützter Installmode"
EndIf
Set Status = $($R0)
Debug-Output "InstallOption Status: "$(Status)
Debug-Output "InstallOption *"
Return $(Status)
Exit
;***************************************************************************
;
; A d d A d a p t e r
;
; This section is shelled to by main installation processing
; or by NCPASHEL.INF during reconfig, removal, update, etc.
;
;
; 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): SourceDirectory
; $($4): AddCopy (YES | NO)
; $($5): DoCopy (YES | NO)
; $($6): DoConfig (YES | NO)
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE |
; STATUS_USERCANCEL |
; STATUS_FAILED
;
;------------------------------------------------------------------------
[AddAdapter]
Set !DebugOutputControl = 1
Set Status = STATUS_SUCCESSFUL
Debug-Output "AddAdapter >"
; Aufrufparameter
Set Language = $($0)
Set Option = $($1)
Set SrcDir = $($2)
Set RasDir = $($3)
Set AddCopy = $($4)
Set DoCopy = $($5)
Set DoConfig = $($6)
; print callerparams
Debug-Output "AddAdapter Language "$(Language)
Debug-Output "AddAdapter Option "$(Option)
Debug-Output "AddAdapter SrcDir "$(SrcDir)
Debug-Output "AddAdapter RasDir "$(RasDir)
Debug-Output "AddAdapter AddCopy "$(AddCopy)
Debug-Output "AddAdapter DoCopy "$(DoCopy)
Debug-Output "AddAdapter DoConfig "$(DoConfig)
; read first GeneralConstants
Read-Syms GeneralConstants
Read-Syms ProductConstants
; then get the real Option
Set OptionList = *(^($(OEM),$(OtNeO)),~(^($(OEM),$(OtO)),$(Option)))
Debug-Output "####### AddAdapter OptionList "$(OptionList)
ForListDo $(OptionList)
Debug-Output "Item "$($)
Debug-Output "Item "$(#)
IfStr(i) $(#) == 1
Set Option = $($)
Else-IfStr(i) $(#) == 2
Set NextOption = $($)
EndIf
EndForListDo
; ???
Set OptionList = {}
Debug-Output "####### AddAdapter RealOption "$(Option)
Debug-Output "####### AddAdapter NextOption "$(NextOption)
; and now read the ProductConstants again
Read-Syms ProductConstants
; start wait
StartWait
; wurde diese ProductOption bereits installiert
; ---------------------------------------------
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) hKeyProduct
IfStr $(hKeyProduct) != $(KeyNull)
; noch unklar
; -----------
Debug-Output "AddAdapter die ProduktOption ist bereits installiert"
Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", +
#(SetupMessage$(Language), OptionAlreadyInstalled, 1)
CloseRegKey $(hKeyProduct)
Set Status = STATUS_FAILED
EndWait
Return $(Status)
Exit
EndIf
; diese ProductOption wurde noch nicht installiert
; ------------------------------------------------
; initialisiere die CleanUpList
Set !CleanUpList = "{}"
Shell "subroutn.inf" PushBillboard NETSTATUSDLG #(SetupMessage$(Language),SetServiceGroupOrder,1)
; 1. setze die ServiceGroupOrderList für den zu installierenden Adapter
; =====================================================================
Shell "" SetServiceGroupOrder, $(Language), $(Option)
Set Status = $($R0)
Debug-Output "AddAdapter RegistryErrorIndex "$(Status)
Debug-Output "AddAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** ServiceGroup konnte nicht eingerichtet werden
; ----------------------------------------------------------
Debug-Output "AddAdapter *Error* SetServiceGroupOrder"
Shell "" CleanUpInstalledComponents $(Language)
Set Status = STATUS_FAILED
EndWait
Return $(Status)
Exit
EndIf
Shell "subroutn.inf" PushBillboard NETSTATUSDLG #(SetupMessage$(Language),SetNewCapiDevice,1)
; 2. erzeuge einen neunen CapiController im Capi20Key
; ===================================================
Shell "" SetNewCapiDevice, $(Language), $(Option)
Set Status = $($R0)
Debug-Output "AddAdapter RegistryErrorIndex "$(Status)
Debug-Output "AddAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** CapiController konnte nicht eingerichtet werden
; ------------------------------------------------------------
Debug-Output "AddAdapter *Error* SetNewCapiDevice"
Shell "" CleanUpInstalledComponents $(Language)
Set Status = STATUS_FAILED
EndWait
Return $(Status)
Exit
EndIf
Set CapiDevice = $($R1)
; dump the result
; ---------------
Debug-Output "AddAdapter CapiDevice "$(CapiDevice)
Shell "subroutn.inf" PushBillboard NETSTATUSDLG #(SetupMessage$(Language),AddNewSoftware,1)
; 3. installiere die neue Software
; ================================
Shell "" NewSoftwareComponent, $(Language), $(Option)
Set Status = $($R0)
Set NewService = $($R1)
Debug-Output "AddAdapter RegistryErrorIndex "$(Status)
Debug-Output "AddAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** die neue Software konnte nicht installiert werden
; --------------------------------------------------------------
Debug-Output "AddAdapter *Error* NewSoftwareComponent"
Shell "" CleanUpInstalledComponents $(Language)
Set Status = STATUS_FAILED
EndWait
Return $(Status)
Exit
EndIf
; dump the result
; ---------------
Debug-Output "AddAdapter NewService "$(NewService)
Shell "subroutn.inf" PushBillboard NETSTATUSDLG #(SetupMessage$(Language),AddNewNetworkCard,1)
; 4. installiere die neue Netwerkkarte
; ====================================
Shell "" NewNetworkCard, $(Language), $(Option), $(CapiDevice)
Set Status = $($R0)
Set NetCardService = $($R1)
Set NetCardNumber = $($R2)
Debug-Output "AddAdapter RegistryErrorIndex "$(Status)
Debug-Output "AddAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** der Service füer die neue Netwerkkarte konnte nicht installiert werden
; -----------------------------------------------------------------------------------
Debug-Output "AddAdapter *Error* NewNetCard"
Shell "" CleanUpInstalledComponents $(Language)
EndWait
Return $(Status)
Exit
EndIf
Shell "subroutn.inf" PushBillboard NETSTATUSDLG #(SetupMessage$(Language),InitNetworkCard,1)
; 5. initialisiere den ParametersKey des Driver
; =============================================
Shell "" InitParametersKey, $(Language), $(Option), $(NetCardService), $(NetCardNumber), $(CapiDevice)
Set Status = $($R0)
Debug-Output "AddAdapter InitParametersKey RegistryErrorIndex "$(Status)
Debug-Output "AddAdapter InitParametersKey ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** der ParametersKey des Treibers konnte nicht initialisiert werden
; -----------------------------------------------------------------------------------
Debug-Output "AddAdapter *Error* InitParametersKey"
Shell "" CleanUpInstalledComponents $(Language)
EndWait
Return $(Status)
Exit
EndIf
Shell "subroutn.inf" PushBillboard NETSTATUSDLG #(SetupMessage$(Language),CopyFiles,1)
; 6. kopiere alle Dateien
; =======================
Install CopyFiles
StartWait
; 7. erzeuge verschiedene Optionsabhängige RegistrierungsEinträge
; ===============================================================
; --> Pcmcia-Cards
Set IsPcmcia = *(^(HardWare,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
IfStr(i) $(IsPcmcia) == "Pcmcia"
Shell "subroutn.inf" PushBillboard NETSTATUSDLG #(SetupMessage$(Language),PcmciaSupport,1)
Shell "" PcmciaSupport, $(Language), $(Option), $(NetCardService)
Set Status = $($R0)
Debug-Output "AddAdapter RegistryErrorIndex "$(Status)
Debug-Output "AddAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** die neue Software konnte nicht installiert werden
; --------------------------------------------------------------
Debug-Output "AddAdapter *Error* PcmciaSupport"
Shell "" CleanUpInstalledComponents $(Language)
EndWait
Return $(Status)
Exit
EndIf
EndIf
; --> Box
Set IsBox = *(^(HardWare,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
IfStr(i) $(IsBox) == "ParallelPort"
Shell "subroutn.inf" PushBillboard NETSTATUSDLG #(SetupMessage$(Language),ParallelPortSupport,1)
Shell "" ParallelPortSupport, $(Language), $(Option), $(NetCardService)
Set Status = $($R0)
Debug-Output "AddAdapter RegistryErrorIndex "$(Status)
Debug-Output "AddAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** die neue Software konnte nicht installiert werden
; --------------------------------------------------------------
Debug-Output "AddAdapter *Error* BoxSupport"
Shell "" CleanUpInstalledComponents $(Language)
EndWait
Return $(Status)
Exit
EndIf
EndIf
; --> PnpSupport
Set IsPnp = *(^(Hardware,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
IfStr(i) $(IsPnp) == "Pnp"
Shell "subroutn.inf" PushBillboard NETSTATUSDLG #(SetupMessage$(Language),PnpSupport,1)
Shell "" SetPnpSupport, $(Language), $(Option), $(NetCardService)
Set Status = $($R0)
Debug-Output "AddAdapter RegistryErrorIndex "$(Status)
Debug-Output "AddAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** die neue Software konnte nicht installiert werden
; --------------------------------------------------------------
Debug-Output "AddAdapter *Error* SetPnpSupport"
Shell "" CleanUpInstalledComponents $(Language)
EndWait
Return $(Status)
Exit
EndIf
EndIf
; --> NdisSupport
IfStr(i) $(Option) == "Ndis"
Shell "subroutn.inf" PushBillboard NETSTATUSDLG #(SetupMessage$(Language),NdisSupport,1)
Shell "" SetNdisSupport, $(Language), $(Option), $(NetCardService), $(NetCardNumber)
Set Status = $($R0)
Debug-Output "AddAdapter RegistryErrorIndex "$(Status)
Debug-Output "AddAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** die neue Software konnte nicht installiert werden
; --------------------------------------------------------------
Debug-Output "AddAdapter *Error* SetNdisSupport"
Shell "" CleanUpInstalledComponents $(Language)
EndWait
Return $(Status)
Exit
EndIf
EndIf
; ---> set Type of ConfigDialog
; =============================
IfStr(i) $(Option) == "Ndis"
Set DialogType = "Ndis"
Else
Set DialogType = "Card"
Endif
Shell "" ConfigDialogType, $(Option), $(NetCardService), $(DialogType), $(NetCardService)
Set Status = $($R0)
Debug-Output "AddAdapter RegistryErrorIndex "$(Status)
Debug-Output "AddAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** der KonfigurationsDialogType konnte nicht aktualisiert werden
; --------------------------------------------------------------------------
Debug-Output "AddAdapter *Error* ConfigDialogType"
Shell "" CleanUpInstalledComponents $(Language)
EndWait
Return $(Status)
Exit
EndIf
Debug-Output "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
IfStr(i) $(NextOption) != ""
Shell $(STF_CONTEXTINFNAME) InstallOption $(!STF_LANGUAGE), $(NextOption), $(SrcDir), "YES", "YES", "YES"
Debug-Output "SetNdisSupport ReturnValue "$($R0)
; korrigiere ValueKey CapiDevice in SEDLWAN\Parameters
EndIf
Debug-Output "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
; xx. konfiguriere den Adapter
; ===========================
Shell "" "SetDefaultParams", $(Option)
Set Status = $($R0)
Debug-Output "AddAdapter RegistryErrorIndex SetDefaultParams "$(Status)
Debug-Output "AddAdapter ShellCode SetDefaultParams "$($ShellCode)
IfStr(i) $(Status) == "yes"
Shell "subroutn.inf" PushBillboard NETSTATUSDLG #(SetupMessage$(Language),ConfigureAdapter,1)
Shell "" ConfigureAdapterParameter, $(Language), $(Option), $(NetCardService)
Set Status = $($R0)
Debug-Output "AddAdapter RegistryErrorIndex "$(Status)
Debug-Output "AddAdapter ShellCode "$($ShellCode)
EndIf
Set Status = STATUS_SUCCESSFUL
Return $(Status)
Exit
;***************************************************************************
;
; R e m o v e A d a p t e r
;
; This section is shelled to by main installation processing
; or by NCPASHEL.INF during reconfig, removal, update, etc.
;
;
; 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): SourceDirectory
; $($4): AddCopy (YES | NO)
; $($5): DoCopy (YES | NO)
; $($6): DoConfig (YES | NO)
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE |
; STATUS_USERCANCEL |
; STATUS_FAILED
;
;------------------------------------------------------------------------
[RemoveAdapter]
Set !DebugOutputControl = 1
Set Status = STATUS_SUCCESSFUL
Debug-Output "RemoveAdapter >"
; save the callerparameter
Set Language = $($0)
Set Option = $($1)
Set SrcDir = $($2)
Set RasDir = $($3)
Set AddCopy = $($4)
Set DoCopy = $($5)
Set DoConfig = $($6)
; print the callerparameter
Debug-Output "RemoveAdapter Language "$(Language)
Debug-Output "RemoveAdapter Option "$(Option)
Debug-Output "RemoveAdapter SrcDir "$(SrcDir)
Debug-Output "RemoveAdapter RasDir "$(RasDir)
Debug-Output "RemoveAdapter AddCopy "$(AddCopy)
Debug-Output "RemoveAdapter DoCopy "$(DoCopy)
Debug-Output "RemoveAdapter DoConfig "$(DoConfig)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
StartWait
; 1. finde den ServiceName des Adapters
; =====================================
Shell "" GetNetCardServiceName
Set Status = $($R0)
Debug-Output "RemoveAdapter RegistryErrorIndex "$(Status)
Debug-Output "RemoveAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR ***
; -------------
Debug-Output "RemoveAdapter *Error* GetNetCardServiceName"
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Set CardServiceName = $($R1)
; print the result
Debug-Output "RemoveAdapter CardServiceName "$(CardServiceName)
; 2. finde den aktuellen CAPIController des Adapters
; ==================================================
Shell "" GetCurrentCapiDevice $(CardServiceName)
Set Status = $($R0)
Debug-Output "RemoveAdapter RegistryErrorIndex "$(Status)
Debug-Output "RemoveAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR ***
; -------------
Debug-Output "RemoveAdapter *Error* GetCurrentCapiDevice"
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Set CapiDevice = $($R1)
; print the result
Debug-Output "RemoveAdapter CapiDevice "$(CapiDevice)
; 3. finde den ServiceName des Adapters
; =====================================
Shell "" GetCurrentServiceName, $(Language), $(Option)
Set Status = $($R0)
Debug-Output "RemoveAdapter RegistryErrorIndex "$(Status)
Debug-Output "RemoveAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR ***
; -------------
Debug-Output "RemoveAdapter *Error* GetCurrentServiceName"
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Set ServiceName = $($R1)
; print the result
Debug-Output "RemoveAdapter ServiceName "$(ServiceName)
; 4. entferne die Netzwerkkarte aus der ControllerList
; ====================================================
Shell "" UpdateControllerList, $(Language), $(Option), "remove", $(CardServiceName)
Set RegistryErrorIndex = $($R0)
Debug-Output "RemoveAdapter RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "RemoveAdapter ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != STATUS_SUCCESSFUL
Set Status = STATUS_FAILED
Debug-Output "RemoveNetworkCard *Error* UpdateControllerList"
Return $(Status)
Exit
EndIf
Set ControllerList = $($R1)
; 5. entferne die Netzwerkkarte
; =============================
Shell "" RemoveNetworkCard, $(Language), $(Option)
Set Status = $($R0)
Debug-Output "RemoveAdapter RegistryErrorIndex "$(Status)
Debug-Output "RemoveAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR ***
; -------------
Debug-Output "RemoveAdapter *Error* RemoveNetworkCard"
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
; 6. entferne den CapiController aus dem Capi20Key
; ================================================
Shell "" SetCapiDevice "remove", $(CapiDevice)
Set Status = $($R0)
Debug-Output "RemoveAdapter RegistryErrorIndex "$(Status)
Debug-Output "RemoveAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** ServiceGroup konnte nicht etabliert werden
; -------------------------------------------------------
Debug-Output "RemoveAdapter *Error* SetCapiDevice modus remove"
Shell "" CleanUpInstalledComponents $(Language)
Return $(Status)
Exit
EndIf
Set AvailableCapiDevice = $($R1)
Debug-Output "RemoveAdapter AvailableCapiDevice "$(AvailableCapiDevice)
; die folgenden schritte nur wenn der PnpSupport installiert wurde
; ----------------------------------------------------------------
Set IsPnp = *(^(HardWare,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
IfStr(i) $(IsPnp) == "Pnp"
IfStr(i) $(ControllerList) == {}
; 7. ProductServiceName aus der AdapterListe entfernen
; ====================================================
Shell "" UpdateAdapterList, $(Language), $(Option), "remove", $(ServiceName)
Set RegistryErrorIndex = $($R0)
Debug-Output "RemoveAdapter RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "RemoveAdapter ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != STATUS_SUCCESSFUL
Set Status = STATUS_FAILED
Debug-Output "RemoveNetworkCard *Error* UpdateAdapterList"
Return $(Status)
Exit
EndIf
Set AdapterList = $($R1)
Debug-Output "RemoveAdapter AdapterList "$(AdapterList)
; 7. PnpService und PnpServiceGroup entfernen
; ===========================================
IfStr(i) $(AdapterList) == {}
; PnpService entfernen wenn keine PnpAdapter mehr im system sind
; --------------------------------------------------------------
Shell "utility.inf", RemoveService, $(PnpServiceName), "YES"
Set RegistryErrorIndex = $($R0)
Debug-Output "RemoveAdapter RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "RemoveAdapter ShellCode "$($ShellCode)
; ServiceGroupOrder entfernen wenn keine PnpAdapter mehr im system sind
; ---------------------------------------------------------------------
Shell "", ServiceGroupOrderList, "remove", {$(PnpServiceGroup),""}
Set RegistryErrorIndex = $($R0)
Debug-Output "RemoveAdapter RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "RemoveAdapter ShellCode "$($ShellCode)
EndIf
EndIf
EndIf
; 8. bereinige die ServiceGroupOrder für ParallelPortUnterstützung
; ================================================================
Set IsBox = *(^(HardWare,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
IfStr(i) $(IsBox) == "ParallelPort"
IfStr(i) $(ControllerList) == {}
; ServiceGroupOrder entfernen wenn keine PnpAdapter mehr im system sind
; ---------------------------------------------------------------------
Shell "", ServiceGroupOrderList, "set", {"Parallel arbitrator", "Extended base"}
Set RegistryErrorIndex = $($R0)
Debug-Output "RemoveAdapter RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "RemoveAdapter ShellCode "$($ShellCode)
EndIf
EndIf
; 9. bereinige die ServiceGroupOrder für CAPI20
; ===========================================
IfStr(i) $(AvailableCapiDevice) == "no"
IfStr(i) $(ControllerList) == {}
; ServiceGroupOrder entfernen wenn keine PnpAdapter mehr im system sind
; ---------------------------------------------------------------------
Shell "", ServiceGroupOrderList, "remove", {"CAPI20",""}
Set RegistryErrorIndex = $($R0)
Debug-Output "RemoveAdapter RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "RemoveAdapter ShellCode "$($ShellCode)
EndIf
EndIf
; --> lösche die nicht mehr benötigten Dateien
Debug-Output "RemoveAdapter *"
EndWait
Return $(Status)
Exit
;***************************************************************************
;
; C o n f i g u r e A d a p t e r
;
; This section is shelled to by main installation processing
; or by NCPASHEL.INF during reconfig, removal, update, etc.
;
;
; 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
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE |
; STATUS_USERCANCEL |
; STATUS_FAILED
;
;------------------------------------------------------------------------
[ConfigureAdapter]
Set !DebugOutputControl = 1
Set Status = STATUS_SUCCESSFUL
Debug-Output "ConfigureAdapter >"
; Aufrufparameter
Set Language = $($0)
Set Option = $($1)
; print callerparams
Debug-Output "AddAdapter Language "$(Language)
Debug-Output "AddAdapter Option "$(Option)
; 1. finde den ServiceName des Adapters
; =====================================
Shell "" GetNetCardServiceName
Set Status = $($R0)
Debug-Output "ConfigureAdapter RegistryErrorIndex "$(Status)
Debug-Output "ConfigureAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR ***
; -------------
Debug-Output "ConfigureAdapter *Error* GetNetCardServiceName"
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Set NetCardService = $($R1)
; 2. konfiguriere den Adapter
; ===========================
Shell "" ConfigureAdapterParameter, $(Language), $(Option), $(NetCardService)
Set Status = $($R0)
Debug-Output "ConfigureAdapter RegistryErrorIndex "$(Status)
Debug-Output "ConfigureAdapter ShellCode "$($ShellCode)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
IfStr(i) $(Status) != STATUS_USERCANCEL
; ***ERROR *** die neue Software konnte nicht installiert werden
; --------------------------------------------------------------
Debug-Output "ConfigureAdapter *Error* ConfigureAdapter"
Set Status = STATUS_FAILED
EndIf
EndIf
Debug-Output "ConfigureAdapter *"
Return $(Status)
Exit
;***************************************************************************
;
; U p d a t e A d a p t e r
;
; This section is shelled to by main installation processing
; or by NCPASHEL.INF during reconfig, removal, update, etc.
;
;
; 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): SourceDirectory
; $($4): AddCopy (YES | NO)
; $($5): DoCopy (YES | NO)
; $($6): DoConfig (YES | NO)
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE |
; STATUS_USERCANCEL |
; STATUS_FAILED
;
;------------------------------------------------------------------------
[UpdateAdapter]
Set !DebugOutputControl = 1
Set Status = STATUS_SUCCESSFUL
Debug-Output "UpdateAdapter >"
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
; print the callerparameters
Debug-Output "UpdateAdapter Language "$(Language)
Debug-Output "UpdateAdapter Option "$(Option)
Debug-Output "UpdateAdapter *"
Return $(Status)
Exit
;#######################################################################################################
;
; S U B R O U T I N E N
;
;***************************************************************************
;
; C l e a n U p I n s t a l l e d C o m p o n e n t s
;
; Input: $($0) Language
;
; Output: $($R0) Status
;
;------------------------------------------------------------------------
[CleanUpInstalledComponents]
Debug-Output "CleanUpInstalledComponents >"
Set Status = STATUS_SUCCESSFUL
Set Language = $($0)
; print the CleanUpList
Debug-Output "CleanUpInstalledComponents CleanUpList "$(!CleanUpList)
; die Installation ist fehlgeschlagen
Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "FATAL", +
;Shell "subroutn.inf" PushBillboard NETSTATUSDLG, +
#(SetupMessage$(Language), InstallationFailed, 1)
; scann the CleanUpList
ForListDo $(!CleanUpList)
Set p1 = *($($),1)
Set p2 = *($($),2)
Set p3 = *($($),3)
Set p4 = *($($),4)
Set p5 = *($($),5)
Debug-Output "CleanUpInstalledComponents p1 "$(p1)
Debug-Output "CleanUpInstalledComponents p2 "$(p2)
Debug-Output "CleanUpInstalledComponents p3 "$(p3)
Debug-Output "CleanUpInstalledComponents p4 "$(p4)
Debug-Output "CleanUpInstalledComponents p5 "$(p5)
Shell $(p1), $(p2), $(p3), $(p4), $(p5)
EndForListDo
Debug-Output "CleanUpInstalledComponents *"
Return $(Status)
Exit
;***************************************************************************
;
; AddCleanUpList
;
; Input: $($0) CleanUpElement // e.g. {"x","y","z", ...}
;
; Output: $($R0) Status
;
;------------------------------------------------------------------------
[AddCleanUpList]
Debug-Output "AddCleanUpList >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameter
Set CleanUpElement = {$($0)}
; print callerparameter
Debug-Output "AddCleanUpList CleanUpElement "$(CleanUpElement)
; cat CleanUpElement, CleanUpList
ForListDo $(!CleanUpList)
Set CleanUpElement = >($(CleanUpElement),$($))
EndForListDo
; restore the CleanUpList
Set !CleanUpList = $(CleanUpElement)
Debug-Output "AddCleanUpList *"
Return $(Status)
Exit
;***************************************************************************
;
; S e t S e r v i c e G r o u p O r d e r
;
; Input: $($0) Language
; $($1) Option
;
; Output: $($R0) Status
;
;------------------------------------------------------------------------
[SetServiceGroupOrder]
Debug-Output "SetServiceGroupOrder >"
Set Status = STATUS_SUCCESSFUL
Set Language = $($0)
Set Option = $($1)
; Print the Parameters
Debug-Output "SetServiceGroupOrder Language "$(Language)
Debug-Output "SetServiceGroupOrder Option "$(Option)
Read-Syms GeneralConstants
Read-Syms ProductConstants
IfStr(i) $(ServiceGroup) != "NDIS"
; lese die aktuelle ServiceGroupOrder für den CapiService
; -------------------------------------------------------
Set ServiceGroupOrder = {$(ServiceGroup),"NDIS"}
Shell "" ServiceGroupOrderList, "get", $(ServiceGroupOrder)
Set Status = $($R0)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
Debug-Output "SetServiceGroupOrder can't set ServiceGroupOrder for '"$(ServiceGroupName)"'"
Return $(Status)
Exit
EndIf
Set CurrentServiceGroupOrder = $($R1)
Debug-Output "SetServiceGroupOrder CurrentServiceGroupOrder "$(CurrentServiceGroupOrder)
IfStr(i) $(ServiceGroupOrder) != $(CurrentServiceGroupOrder)
; Setze die ServiceGroupOrder für den CapiService wenn diese GroupOrder nicht eingst. ist
; ---------------------------------------------------------------------------------------
Shell "" ServiceGroupOrderList, "set", $(ServiceGroupOrder)
Set Status = $($R0)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
Debug-Output "SetServiceGroupOrder can't set ServiceGroupOrder for '"$(ServiceGroupName)"'"
Return $(Status)
Exit
EndIf
; Aufbau CleanUpList
; ------------------
Shell "" AddCleanUpList {"","ServiceGroupOrderList","remove",{$(ServiceGroup),""}}
EndIf
EndIf
Debug-Output "SetServiceGroupOrder *"
Return $(Status)
Exit
;***************************************************************************
;
; S e t N d i s S u p p o r t
;
; Input: $($0) Language
; $($1) Option
; $($2) NetCardServiceName
; $($3) NetCardNumber
;
; Output: $($R0) Status
;
;------------------------------------------------------------------------
[SetNdisSupport]
Debug-Output "SetNdisSupport >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
Set NetCardServiceName = $($2)
Set NetCardNumber = $($3)
; print the callerparameter
Debug-Output "SetNdisSupport > Option "$(Option)
Debug-Output "SetNdisSupport > NetCardServiceName "$(NetCardServiceName)
Debug-Output "SetNdisSupport > NetCardNumber "$(NetCardNumber)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
; Create the TapiDevices
; ----------------------
; open Hardware\DeviceMap
OpenRegKey $(!REG_H_LOCAL) "" $(DeviceMapPath) $(MAXIMUM_ALLOWED) hDeviceMap
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
Shell "utility.inf" RegistryErrorString $(RegLastError)
Debug-Output "SetNdisSupport RegLastError "$(RegLastError)" "$($R0)
Debug-Output "SetNdisSupport *Error* can't open RegistryKey "$(DeviceMapPath)
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; hDeviceMap
;##############################################
; erzeuge den Schlüssel TapiDevices
OpenRegKey $(hDeviceMap) "" $(TapiDevicesPath) $(MAXIMUM_ALLOWED) hTapiDevices
Debug-Output "SetNdisSupport hTapiDevices "$(hTapiDevices)
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
; der schlüssel existiert noch nicht
Shell "utility.inf" RegistryErrorString $(RegLastError)
Debug-Output "SetNdisSupport RegLastError "$(RegLastError)" "$($R0)
CreateRegKey $(hDeviceMap) {$(TapiDevicesPath), 0, GenericClass} "" $(MAXIMUM_ALLOWED) "" hTapiDevices
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "SetNdisSupport *Error* can't create RegistryKey "$(TapiDevicesPath)
CloseRegKey $(hDeviceMap)
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
EndIf
CloseRegKey $(hDeviceMap)
;##############################################
; to close:
; hTapiDevices
;##############################################
; erzeuge den Schlüssel TapiDevices
OpenRegKey $(hTapiDevices) "" $(ServiceName) $(MAXIMUM_ALLOWED) hCurrentTapiDevice
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
; der schlüssel existiert noch nicht
CreateRegKey $(hTapiDevices) {$(ServiceName), 0, GenericClass} "" $(MAXIMUM_ALLOWED) "" hCurrentTapiDevice
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "SetNdisSupport *Error* can't create RegistryKey "$(ServiceName)" in "$(DeviceMapPath)
CloseRegKey $(hTapiDevices)
CloseRegKey $(hDeviceMap)
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
EndIf
CloseRegKey $(hTapiDevices)
;##############################################
; to close:
; hCurrentTapiDevice
;##############################################
Set TapiAddressList = {$(NetCardNumber)*($(AddressList),1)}
Set TapiAddressList = >($(TapiAddressList),$(NetCardNumber)*($(AddressList),2))
Set NewValueList = {{Address, 0, $(!REG_VT_MULTI_SZ), $(TapiAddressList)},+
{"Media Type", 0, $(!REG_VT_SZ), $(MediaType)}}
Shell "utility.inf", AddValueList, $(hCurrentTapiDevice), $(NewValueList)
Set RegistryErrorIndex = $($R0)
CloseRegKey $(hCurrentTapiDevice)
Debug-Output "InitParametersKey Update CardServiceParameters RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "InitParametersKey Update CardServiceParameters ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
;
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; nothing
;##############################################
; Create OtherDependencies in ..\Service\Linkage
; ----------------------------------------------
; open Hardware\DeviceMap
Set LinkagePath = $(ServicesPath)"\"$(ServiceName)"\Linkage"
OpenRegKey $(!REG_H_LOCAL) "" $(LinkagePath) $(MAXIMUM_ALLOWED) hLinkage
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
Shell "utility.inf" RegistryErrorString $(RegLastError)
Debug-Output "SetNdisSupport RegLastError "$(RegLastError)" "$($R0)
Debug-Output "SetNdisSupport *Error* can't open RegistryKey "$(LinkagePath)
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
SetRegValue $(hLinkage) {OtherDependencies, 0, $(!REG_VT_MULTI_SZ), {""}}
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
Shell "utility.inf" RegistryErrorString $(RegLastError)
Debug-Output "SetNdisSupport RegLastError "$(RegLastError)" "$($R0)
Debug-Output "SetNdisSupport *Error* can't write ValueKey OtherDependencies in RegistryKey "$(LinkagePath)
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
; Installiere den Ras-Service wenn erforderlich
; ---------------------------------------------
Debug-Output "#############################################"
Debug-Output "#############################################"
Debug-Output "#############################################"
Debug-Output "#############################################"
Shell "oemnsvra.inf" CheckRasInstalled
Set RasInstalled = $($R0)
Debug-Output "AddAdapter RasInstalled "$(RasInstalled)
Debug-Output "AddAdapter ShellCode "$($ShellCode)
; Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", +
; "Jetzt wird der RasService installiert"
; wenn ohne dialog installiert/konfiguriert werden soll
; Set !STF_UNATTENDED = $(SrcDir)"unattended.inf"
; Set !STF_GUI_UNATTENDED = "YES"
; Set !STF_UNATTENDED_SECTION = "Config"
; ... etc
; Set SrcRasDir = "d:\I386"
Set SrcRasDir = ""
Set Save1 = $(!STF_SRCDIR_OVERRIDE)
Set !STF_SRCDIR_OVERRIDE = ""
IfStr(i) $(RasInstalled) == FALSE
Debug-Output "AddAdapter der RasService wird installiert"
Debug-Output " **** STF_CWDDIR "$(!STF_CWDDIR)
Debug-Output " **** STF_SRCDIR "$(!STF_SRCDIR)
Debug-Output " **** STF_SRCDIR_OVERRIDE "$(!STF_SRCDIR_OVERRIDE)
Shell "oemnsvra.inf" InstallOption $(!STF_LANGUAGE), "RAS", $(SrcRasDir), "YES", "YES", "YES"
Debug-Output "SetNdisSupport ReturnValue "$($R0)
Else
Set OldMode = $(!NTN_InstallMode)
Set !NTN_InstallMode = configure
Shell "oemnsvra.inf" InstallOption $(!STF_LANGUAGE), "RAS", $(SrcRasDir), "YES", "YES", "YES"
Set !NTN_InstallMode = $(OldMode)
EndIf
Set !STF_SRCDIR_OVERRIDE = $(Save1)
; wenn ohne dialog installiert/konfiguriert wurde
; Set !STF_UNATTENDED = ""
; Set !STF_GUI_UNATTENDED = ""
; Set !STF_UNATTENDED_SECTION = ""
Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", +
"Jetzt ist der RasService installiert"
; wenn der RasService unbeobachtet istalliert wurde, muß die TapiAddressListe
; korrigiert werden. ( Fehler in 'setupdll.dll' ist auch in SP3 )
; Software\Microsoft\Ras\TAPI DEVICES\$(ServiceName) --> Address
; analog zu ValueKey 'Friendly Name'
Debug-Output "SetNdisSupport ServiceName "$(ServiceName)
OpenRegKey $(!REG_H_LOCAL) "" $(RasTapiDevicesPath)"\"$(ServiceName) $(MAXIMUM_ALLOWED) hRasTapiDevices
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
EndIf
GetRegValue $(hRasTapiDevices) "Friendly Name" , FriendlyName
Set FriendlyName = *($(FriendlyName),4)
Debug-Output "SetNdisSupport FriendlyName "$(FriendlyName)
CloseRegKey $(hRasTapiDevices)
Debug-Output "SetNdisSupport *"
Return $(Status)
Exit
;***************************************************************************
;
; PcmciaSupport
;
; Input: $($0) Language
; $($1) Option
; $($2) NetCardServiceName
;
; Output: $($R0) Status
;
;------------------------------------------------------------------------
[PcmciaSupport]
Debug-Output "PcmciaSupport >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
Set NetCardServiceName = $($2)
; print the callerparameter
Debug-Output "PcmciaSupport > Language "$(Language)
Debug-Output "PcmciaSupport > Option "$(Option)
Debug-Output "PcmciaSupport > NetCardServiceName "$(NetCardServiceName)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
Debug-Output "PcmciaSupport ServiceName "$(ServiceName)
Set IsPcmcia = *(^(HardWare,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
Debug-Output "PcmciaSupport PcmciaSupport "$(IsPcmcia)
IfStr(i) $(IsPcmcia) == "Pcmcia"
; aktualisiere die ValueKey's in ..\Services\$(NetCardServiceName)\Parameters
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(NetCardServiceName)"\Parameters", +
$(MAXIMUM_ALLOWED), hParameters
Debug-Output "PcmciaSupport RegLastError "$(RegLastError)
Set NewValueList = {{Pcmcia, 0, $(!REG_VT_DWORD), $(Pcmcia)},+
{IoLength, 0, $(!REG_VT_DWORD), $(IoLength)}}
Shell "utility.inf", AddValueList, $(hParameters), $(NewValueList)
Set RegistryErrorIndex = $($R0)
Debug-Output "PcmciaSupport RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "PcmciaSupport ShellCode "$($ShellCode)
CloseRegKey $(hParameters)
; aktualisiere die PcmciaDatabase
Shell "" PcmciaUpdateDataBase $(Option), $(ServiceName), $(Manufacturer), $(PcmciaAdapterNames)
EndIf
Debug-Output "PcmciaSupport *"
Return $(Status)
Exit
;***************************************************************************
;
; P a r a l l e l P o r t S u p p o r t
;
; Input: $($0) Language
; $($1) Option
; $($2) NetCardServiceName
;
; Output: $($R0) Status
;
;------------------------------------------------------------------------
[ParallelPortSupport]
Debug-Output "ParallelPortSupport >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
Set NetCardServiceName = $($2)
; print the callerparameter
Debug-Output "ParallelPortSupport Language "$(Language)
Debug-Output "ParallelPortSupport Option "$(Option)
Debug-Output "ParallelPortSupport NetCardServiceName "$(NetCardServiceName)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
; wenn die box installiert wird dann verschiebe 'Parallel arbitrator' vor 'CAPI20'
; --------------------------------------------------------------------------------
Shell "" ServiceGroupOrderList, "set", {"Parallel arbitrator", $(ServiceGroup)}
Set Status = $($R0)
IfStr(i) $(Status) == STATUS_FAILED
Debug-Output "ParallelPortSupport *Error* ServiceGroupOrderList"
Return $(Status)
Exit
EndIf
Debug-Output "ParallelPortSupport *"
Return $(Status)
Exit
;***************************************************************************
;
; S e t N e w C a p i D e v i c e
;
; Input: $($0) Language
; $($1) Option
;
; Output: $($R0) Status
; $($R1) CapiDevice
;------------------------------------------------------------------------
[SetNewCapiDevice]
Debug-Output "SetNewCapiDevice >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
; neuer CapiControler oder DefaultCapiDevice
IfStr(i) $(Option) == "Ndis"
; default CapiDevice
Set CapiDevice = "1"
Else
; ask for valid CapiDevice
; ------------------------
Shell "" GetValidCapiController
Set Status = $($R0)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** kein gültiges CapiDevice gefunden
; ----------------------------------------------
; ---> Fehlerbehandlung
Debug-Output "SetNewCapiDevice *Error* can't get the CapiDevice"
Set Status = STATUS_FAILED
Set CapiDevice = 0
Return $(Status) $(CapiDevice)
Exit
EndIf
; CapiDevice is valid
; -------------------
Set CapiDevice = $($R1)
; create the new CapiDevice
; -------------------------
Shell "" SetCapiDevice "set", $(CapiDevice), $(Option), $(Manufacturer)
Set Status = $($R0)
IfStr(i) $(Status) != STATUS_SUCCESSFUL
; ***ERROR *** CapiDevice konnte nicht etabliert werden
; -----------------------------------------------------
Debug-Output "SetNewCapiDevice *Error* can't create new CapiDevice"
Set Status = STATUS_FAILED
Set CapiDevice = 0
Return $(Status) $(CapiDevice)
Exit
EndIf
; Aufbau CleanUpList
; ------------------
; entferne das CapiDevice
Shell "" AddCleanUpList {"","SetCapiDevice","remove",$(CapiDevice)}
EndIf
Debug-Output "SetNewCapiDevice *"
Return $(Status) $(CapiDevice)
Exit
;***************************************************************************
;
; N e w S o f t w a r e C o m p o n e n t
;
; Input: $($0) Language
; $($1) Option
;
; Output: $($R0) Status
; $($R1) NewService
;------------------------------------------------------------------------
[NewSoftwareComponent]
Debug-Output "NewSoftwareComponent >"
Set Status = STATUS_SUCCESSFUL
Set NewService = ""
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
; print the callerparameters
Debug-Output "NewSoftwareComponent Language "$(Language)
Debug-Output "NewSoftwareComponent Option "$(Option)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
; erzeuge den eintrag in der SoftwareSection
Debug-Output "NewSoftwareComponent Manufacturer "$(Manufacturer)
Debug-Output "NewSoftwareComponent ProductSoftwareName "$(ProductSoftwareName)
Debug-Output "NewSoftwareComponent ServiceName "$(ServiceName)
Debug-Output "NewSoftwareComponent ServiceDisplayName "$(ServiceDisplayName)
Debug-Output "NewSoftwareComponent STF_CONTEXTINFNAME "$(STF_CONTEXTINFNAME)
Debug-Output "NewSoftwareComponent DriverImagePath "$(DriverImagePath)
Debug-Output "NewSoftwareComponent ServiceGroup "$(ServiceGroup)
Debug-Output "NewSoftwareComponent ErrorLogging "$(ErrorLogging)
Shell "utility.inf", AddSoftwareComponent, $(Manufacturer), +
$(ProductSoftwareName), $(ServiceName), +
$(ServiceDisplayName), $(STF_CONTEXTINFNAME), +
$(DriverImagePath), "kernelautostart", +
$(ServiceGroup), {""}, +
"", $(ErrorLogging)
Set RegistryErrorIndex = $($R0)
Debug-Output "NewSoftwareComponent AddSoftwareComponent RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "NewSoftwareComponent AddSoftwareComponent ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_ACCESS_CONFIGURE_SERVICE
Set Status = STATUS_FAILED
Else-IfStr(i) $(RegistryErrorIndex) == REBOOT_MACHINE_BEFORE_ADD_ADAPTER
; --> Msg for RebootMachineBeforeAddAdapter
Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "FATAL", +
#(SetupMessage$(Language), RecentlyRemoved, 1)
Set Status = STATUS_FAILED
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_CREATE_CONFIGURE_SERVICE
; --> Msg for ServiceAlreadyExists
Set Status = STATUS_FAILED
Else-IfStr(i) $(RegistryErrorIndex) == SERVICE_ALREADY_EXISTS
Set Status = STATUS_FAILED
Else-IfStr(i) $(RegistryErrorIndex) == SERVICE_MARKED_FOR_DELETE
Set Status = STATUS_FAILED
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_CREATE_SERVICE_SUBKEY
Set Status = STATUS_FAILED
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_OPEN_EVENTLOG_SUBKEY
Set Status = STATUS_FAILED
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
Set Status = STATUS_FAILED
EndIf
Return $(Status)
Exit
Else
; update the CleanUpList
; ------------------
Shell "" AddCleanUpList {"utility.inf","RemoveSoftwareComponent",$(Manufacturer),$(ProductSoftwareName),"FALSE"}
EndIf
; setze die ReturnValues
Set hKeyProduct = $($R1)
Set hSoftNetRulesKey = $($R2)
Set hService = $($R3)
Set hServiceParameters = $($R4)
Set hServiceLinkage = $($R5)
;##############################################
; to close:
; hKeyProduct
; hSoftNetRulesKey
; hService
; hServiceParameters
; hServiceLinkage
;##############################################
; vervollständige Software\ProductSoftwareName\CurrentVersion
Detect Date
Set NewValueList = {{Description, 0, $(!REG_VT_SZ), $(ProductSoftwareDescription)},+
{InstallDate, 0, $(!REG_VT_DWORD), *($(Now),1)}, +
{MajorVersion, 0, $(!REG_VT_DWORD), *($(ProductVersion),1)},+
{MinorVersion, 0, $(!REG_VT_DWORD), *($(ProductVersion),2)},+
{ServiceName, 0, $(!REG_VT_SZ), $(ServiceName)},+
{SoftwareType, 0, $(!REG_VT_SZ), $(SoftwareType)},+
{Title, 0, $(!REG_VT_SZ), $(ProductSoftwareTitle)}}
Shell "utility.inf", AddValueList, $(hKeyProduct), $(NewValueList)
CloseRegKey $(hKeyProduct)
Set RegistryErrorIndex = $($R0)
Debug-Output "NewSoftwareComponent Update KeyProduct RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "NewSoftwareComponent Update KeyProduct ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
;
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; Set hSoftNetRulesKey = $($R2)
; Set hService = $($R3)
; Set hServiceParameters = $($R4)
; Set hServiceLinkage = $($R5)
;##############################################
; vervollständige Software\ProductSoftwareName\CurrentVersion\Netrules
Set NewValueList = {{bindable, 0, $(!REG_VT_MULTI_SZ), $(BindableTxt)}, +
{bindform, 0, $(!REG_VT_SZ), $(NetRuleSoftwareBindForm)}, +
{class, 0, $(!REG_VT_MULTI_SZ), $(NetRuleSoftwareClass)}, +
{InfOption, 0, $(!REG_VT_SZ), $(Option)}, +
{type, 0, $(!REG_VT_SZ), $(NetRuleSoftwareType)}, +
{use, 0, $(!REG_VT_SZ), $(NetRuleSoftwareUse)}}
Shell "utility.inf", AddValueList, $(hSoftNetRulesKey), $(NewValueList)
CloseRegKey $(hSoftNetRulesKey)
Set RegistryErrorIndex = $($R0)
Debug-Output "NewSoftwareComponent Update SoftNetRulesKey RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "NewSoftwareComponent Update SoftNetRulesKey ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
;
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; Set hService = $($R3)
; Set hServiceParameters = $($R4)
; Set hServiceLinkage = $($R5)
;##############################################
; initial ValueKey Controllers in Services\ServiceName\Parameters
Set NewValueList = {{Controllers, $(NoTitle), $(!REG_VT_MULTI_SZ), {}}}
Shell "utility.inf", AddValueList, $(hServiceParameters), $(NewValueList)
CloseRegKey $(hServiceParameters)
Set RegistryErrorIndex = $($R0)
Debug-Output "NewSoftwareComponent Update ServiceParameters RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "NewSoftwareComponent Update ServiceParameters ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
;
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; Set hService = $($R3)
; Set hServiceLinkage = $($R5)
;##############################################
CloseRegKey $(hService)
CloseRegKey $(hServiceLinkage)
Debug-Output "NewSoftwareComponent *"
Set Status = STATUS_SUCCESSFUL
Return $(Status) $(NewService)
Exit
;***************************************************************************
;
; R e m o v e N e t w o r k C a r d
;
; Input: $($0) Language
; $($1) Option
; $($2) NetCardService
;
; Output: $($R0) Status
;
;------------------------------------------------------------------------
[RemoveNetworkCard]
Debug-Output "RemoveNetworkCard >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
Set NetCardService = $($2)
; print the callerparameters
Debug-Output "RemoveNetworkCard Language "$(Language)
Debug-Output "RemoveNetworkCard Option "$(Option)
Debug-Output "RemoveNetworkCard NTN_RegBase "$(!NTN_RegBase)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
; Hardware entfernen
Shell "utility.inf", RemoveHardwareComponent, $(Manufacturer), +
$(ProductSoftwareName), +
$(!NTN_RegBase)
Set RegistryErrorIndex = $($R0)
Debug-Output "RemoveNetworkCard RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "RemoveNetworkCard ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_ACCESS_CONFIGURE_SERVICE
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_REMOVE_CONFIGURE_SERVICE
EndIf
Set Status = STATUS_FAILED
Debug-Output "RemoveNetworkCard *Error* RemoveHardwareComponent"
Return $(Status)
Exit
EndIf
; return
Debug-Output "RemoveNetworkCard *"
Return $(Status)
Exit
;***************************************************************************
;
; N e w N e t w o r k C a r d
;
; Input: $($0) Language
; $($1) Option
; $($2) CapiDevice
;
; Output: $($R0) Status
; $($R1) NetCardService
; $($R2) NetCardNumber
;------------------------------------------------------------------------
[NewNetworkCard]
Debug-Output "NewNetworkCard >"
Set Status = STATUS_SUCCESSFUL
Set NetCardService = ""
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
Set CapiDevice = $($2)
; print the callerparameters
Debug-Output "NewNetworkCard Language "$(Language)
Debug-Output "NewNetworkCard Option "$(Option)
Debug-Output "NewNetworkCard CapiDevice "$(CapiDevice)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
; erzeuge den Eintrag in der ....\NetworkCards\(n) Sektion
Shell "utility.inf", AddHardwareComponent, +
$(ServiceName), + ; Service name to use
$(STF_CONTEXTINFNAME), + ; inf-file name for this adapter
$(ProductSoftwareNamePath) ; drivername in softwaresection
Set RegistryErrorIndex = $($R0)
Debug-Output "NewNetworkCard AddHardwareComponent RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "NewNetworkCard AddHardwareComponent ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_CREATE_NETCARD_CONFIGURATION
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_CREATE_NETRULES_KEY
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_OPEN_NETWORKCARD_SECTION
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_ACCESS_CONFIGURE_SERVICE
Else-IfStr(i) $(RegistryErrorIndex) == REBOOT_MACHINE_BEFORE_ADD_ADAPTER
Else-IfStr(i) $(RegistryErrorIndex) == SERVICE_ALREADY_EXISTS
Else-IfStr(i) $(RegistryErrorIndex) == SERVICE_MARKED_FOR_DELETE
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_CREATE_CONFIGURE_SERVICE
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_CREATE_SERVICE_SUBKEY
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
Else
; update CleanUpList
Set Path = $(NetworkCardsPath)"\"$($R4)
Shell "" AddCleanUpList {"utility.inf","RemoveHardwareComponent",$(Manufacturer),$(ProductSoftwareName),$(Path)}
EndIf
Set hNetCard = $($R1)
Set hNetCardNetRules = $($R2)
Set hCardServiceParameters = $($R3)
Set NetCardNumber = $($R4)
Set NetCardServiceName = $($R5)
;##############################################
; to close:
; hNetCard
; hNetCardNetRules
; hCardServiceParameters
;##############################################
Debug-Output "hNetCard "$(hNetCard)
Debug-Output "hNetCardNetRules "$(hNetCardNetRules)
Debug-Output "hCardServiceParameters "$(hCardServiceParameters)
Debug-Output "NetCardNumber "$(NetCardNumber)
Debug-Output "NetCardServiceName "$(NetCardServiceName)
; vervollstandige die ValueKey's in ..\NetCards\n\ ein
Detect Date
Set NewValueList = {{Description, 0, $(!REG_VT_SZ), $(ProductHardwareDescription)}, +
{InstallDate, 0, $(!REG_VT_DWORD), *($(Now),1)}, +
{Manufacturer, 0, $(!REG_VT_SZ), $(Manufacturer)}, +
{ProductName, 0, $(!REG_VT_SZ), $(ProductHardwareName)}, +
{ServiceName, 0, $(!REG_VT_SZ), $(NetCardServiceName)}, +
{Title, 0, $(!REG_VT_SZ), "["$(NetCardNumber)"] "$(ProductHardwareTitle)}}
Shell "utility.inf", AddValueList, $(hNetCard), $(NewValueList)
Set RegistryErrorIndex = $($R0)
CloseRegKey $(hNetCard)
Debug-Output "NewNetworkCard Update NetCard RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "NewNetworkCard Update NetCard ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
;
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; hNetCardNetRules
; hCardServiceParameters
;##############################################
; vervollständige die ValueKey's in ..\NetCards\n\NetRules\
Set TempProdName = """"$(NetCardServiceName)""""
Set BindForm = """"$(NetCardServiceName)""""$(NetRuleHardwareBindForm)
Set NewValueList = {{bindform, 0, $(!REG_VT_SZ), $(BindForm)}, +
{class, 0, $(!REG_VT_MULTI_SZ), $(NetRuleHardwareClass)}, +
{InfOption, 0, $(!REG_VT_SZ), $(Option)}, +
{type, 0, $(!REG_VT_SZ), $(NetRuleHardwareType)}}
Shell "utility.inf", AddValueList, $(hNetCardNetRules), $(NewValueList)
Set RegistryErrorIndex = $($R0)
CloseRegKey $(hNetCardNetRules)
Debug-Output "NewNetworkCard Update NetCardNetRules RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "NewNetworkCard Update NetCardNetRules ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
;
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; hCardServiceParameters
;##############################################
CloseRegKey $(hCardServiceParameters)
;##############################################
; to close:
; nothing
;##############################################
; aktualisiere in ..\Services\$()\Parameters die ControlerListe
Shell "" UpdateControllerList, $(Language), $(Option), "append", $(NetCardServiceName)
Set RegistryErrorIndex = $($R0)
Debug-Output "NewNetworkCard RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "NewNetworkCard ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != status_successful
; ***ERROR *** die ControllerList konnte nicht erweitert werden
Debug-Output "NewNetworkCard *Error* UpdateControllerList"
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
; append CleanupList
Shell "" AddCleanUpList {"","UpdateControllerList",$(Language),$(Option),"remove",$(NetCardServiceName)}
Debug-Output "NewNetworkCard *"
Set Status = STATUS_SUCCESSFUL
Return $(Status) $(NetCardServiceName) $(NetCardNumber)
Exit
;***************************************************************************
;
; I n i t P a r a m e t e r s K e y
;
; Input: $($0) Language
; $($1) Option
; $($2) NetCardServiceName
; $($3) NetCardNumber
; $($4) CapiDevice
;
; Output: $($R0) Status
;------------------------------------------------------------------------
[InitParametersKey]
Debug-Output "InitParametersKey >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
Set NetCardServiceName = $($2)
Set NetCardNumber = $($3)
Set CapiDevice = $($4)
; print the callerparameters
Debug-Output "InitParametersKey Language "$(Language)
Debug-Output "InitParametersKey Option "$(Option)
Debug-Output "InitParametersKey NetCardServiceName "$(NetCardServiceName)
Debug-Output "InitParametersKey NetCardNumber "$(NetCardNumber)
Debug-Output "InitParametersKey CapiDevice "$(CapiDevice)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(NetCardServiceName)"\Parameters", +
$(MAXIMUM_ALLOWED), hCardServiceParameters
; initialisiere die ValueKey's in ..\Services\$(NetCardServiceName)\Parameters
; ----------------------------------------------------------------------------
IfStr(i) $(Option) == "Ndis"
; Parameter für alle Driver
; -------------------------
Set TapiAddressList = {$(NetCardNumber)*($(AddressList),1)}
Set TapiAddressList = >($(TapiAddressList),$(NetCardNumber)*($(AddressList),2))
Set TapiController = 1
Set CapiDeviceName = "CAPI20"$(CapiDevice)
Set NewValueList = {{AddressList, 0, $(!REG_VT_MULTI_SZ), $(TapiAddressList)}, +
{CapiDevice, 0, $(!REG_VT_SZ), $(CapiDeviceName)}, +
{Controller, 0, $(!REG_VT_DWORD), $(TapiController)}, +
{DeviceName, 0, $(!REG_VT_SZ), $(ServiceName)}, +
{LineType, 0, $(!REG_VT_DWORD), $(LineType)}, +
{MediaType, 0, $(!REG_VT_SZ), $(MediaType)}, +
{MiscParam0, 0, $(!REG_VT_SZ), $(MiscParam0_Value)}, +
{MiscParam1, 0, $(!REG_VT_SZ), $(MiscParam1_Value)}, +
{MSNL0, 0, $(!REG_VT_SZ), $(MSNL0_Value)}, +
{MSNL1, 0, $(!REG_VT_SZ), $(MSNL1_Value)}}
Else
; Parameter für alle Adapter
; --------------------------
Set Interrupt = *(^(InterruptStrings, 2),~(^(InterruptStrings, 1), $(InterruptNumber)))
Set IsBox = *(^(HardWare,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
IfStr(i) $(IsBox) == "ParallelPort"
IfStr(i) $(IoBaseAddress) == "LPT1"
Set Port = 0
Else-IfStr(i) $(IoBaseAddress) == "LPT2"
Set Port = 1
Else-IfStr(i) $(IoBaseAddress) == "LPT3"
Set Port = 2
Else-IfStr(i) $(IoBaseAddress) == "LPT4"
Set Port = 3
Else
Set Port = 0
EndIf
Else
Set-HexToDec Port = $(IoBaseAddress)
Endif
Set NewValueList = {{AdapterId, 0, $(!REG_VT_DWORD), $(AdapterId)}, +
{ADP_Number, 0, $(!REG_VT_DWORD), $(NetCardNumber)}, +
{BusNumber, 0, $(!REG_VT_DWORD), $(BusNumber)}, +
{BusType, 0, $(!REG_VT_DWORD), $(BusType)}, +
{CapiDevice, 0, $(!REG_VT_SZ), $(CapiDevice)}, +
{DeviceName, 0, $(!REG_VT_SZ), $(ServiceName)}, +
{DialogType, 0, $(!REG_VT_MULTI_SZ), {""}}, +
{InterruptNumber, 0, $(!REG_VT_DWORD), $(Interrupt)}, +
{IoBaseAddress, 0, $(!REG_VT_DWORD), $(Port)}, +
{MediaType, 0, $(!REG_VT_SZ), $(MediaType)}}
Endif
Shell "utility.inf", AddValueList, $(hCardServiceParameters), $(NewValueList)
Set RegistryErrorIndex = $($R0)
CloseRegKey $(hCardServiceParameters)
Debug-Output "InitParametersKey Update CardServiceParameters RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "InitParametersKey Update CardServiceParameters ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
;
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Debug-Output "InitParametersKey *"
Set Status = STATUS_SUCCESSFUL
Return $(Status) $(NetCardServiceName)
Exit
;***************************************************************************
;
; N e w C o n t r o l l e r
;
; Input: $($0) Language
; $($1) Option
; $($2) modus // append - remove
; $($3) NetCardServiceName
;
; Output: $($R0) Status
; $($R1) ControllerList
;
;------------------------------------------------------------------------
[UpdateControllerList]
Debug-Output "UpdateControllerList >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
Set modus = $($2)
Set NetCardServiceName = $($3)
; print the callerparameters
Debug-Output "UpdateControllerList Language "$(Language)
Debug-Output "UpdateControllerList Option "$(Option)
Debug-Output "UpdateControllerList modus "$(modus)
Debug-Output "UpdateControllerList NetCardServiceName "$(NetCardServiceName)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
; open the ..\Services\$(ServiceName)\Parameters
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(ServiceName)"\Parameters" $(MAXIMUM_ALLOWED) hParameters
IfStr(i) $(hParameters) == $(KeyNull)
Debug-Output "UpdateControllerList *Error* can't open the ..\Services\"$(ServiceName)"\Parameters Key"
Set Status = REG_UNABLE_OPEN_KEY
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; hParameters
;##############################################
; aktualisiere den Controllers ValueKey's im hParameters
GetRegValue $(hParameters) "Controllers" , ControllerList
Set ControllerList = *($(ControllerList),4)
Debug-Output "UpdateControllerList ControllerList "$(ControllerList)
; prüfen ob der Controller bereits vorhanden ist
Set TempList = {}
ForListDo $(ControllerList)
IfStr(i) $($) == $(NetCardServiceName)
; streiche den alten Controller
Else-IfStr(i) $($) == ""
; kopiere nicht
Else
; kopiere den alten Controller
Set TempList = >($(TempList),$($))
Endif
EndForListDo
IfStr(i) $(modus) == "append"
; setze den neuen Controller an das ende der ContollerList
Set ControllerList = >($(TempList), $(NetCardServiceName))
Else-IfStr(i) $(modus) == "remove"
; ohne den NetCardServiceName
Set ControllerList = $(TempList)
EndIf
Debug-Output "UpdateControllerList ControllerList "$(ControllerList)
Set NewValueList = {{Controllers, $(NoTitle), $(!REG_VT_MULTI_SZ), $(ControllerList)}}
Shell "utility.inf", AddValueList, $(hParameters), $(NewValueList)
Set RegistryErrorIndex = $($R0)
CloseRegKey $(hParameters)
Debug-Output "UpdateControllerList RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "UpdateControllerList ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
Debug-Output "UpdateControllerList *Error* can't write back the Controllers ValueKey"
EndIf
Set Status = REG_UNABLE_WRITE_REGISTRY
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; nothing
;##############################################
Debug-Output "UpdateControllerList *"
Set Status = STATUS_SUCCESSFUL
Return $(Status) $(ControllerList)
Exit
;***************************************************************************
;
; U p d a t e A d a p t e r L i s t
;
; Input: $($0) Language
; $($1) Option
; $($2) modus // append - remove
; $($3) ServiceName
;
; Output: $($R0) Status
; $($R1) AdapterList
;
;------------------------------------------------------------------------
[UpdateAdapterList]
Debug-Output "UpdateAdapterList >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
Set modus = $($2)
Set ServiceName = $($3)
; print the callerparameters
Debug-Output "UpdateAdapterList Language "$(Language)
Debug-Output "UpdateAdapterList Option "$(Option)
Debug-Output "UpdateAdapterList modus "$(modus)
Debug-Output "UpdateAdapterList ServiceName "$(ServiceName)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
; open the ..\Services\$(ServiceName)\Parameters
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(PnpServiceName) $(MAXIMUM_ALLOWED) hParameters
IfStr(i) $(hParameters) == $(KeyNull)
Debug-Output "UpdateAdapterList *Error* can't open the ..\Services\"$(PnpServiceName)" Key"
Set Status = REG_UNABLE_OPEN_KEY
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; hParameters
;##############################################
; aktualisiere den DetectKey ValueKey's im hParameters
GetRegValue $(hParameters) "DetectKey" , AdapterList
Set AdapterList = *($(AdapterList),4)
Debug-Output "UpdateAdapterList AdapterList "$(AdapterList)
; prüfen ob der Adapter bereits vorhanden ist
Set TempList = {}
ForListDo $(AdapterList)
IfStr(i) $($) == $(ServiceName)
; streiche den alten Controller
Else-IfStr(i) $($) == ""
; kopiere nicht
Else
; kopiere den alten Controller
Set TempList = >($(TempList),$($))
Endif
EndForListDo
IfStr(i) $(modus) == "append"
; setze den neuen Adapter an das ende der ContollerList
Set AdapterList = >($(TempList), $(ServiceName))
Else-IfStr(i) $(modus) == "remove"
; ohne den ServiceName
Set AdapterList = $(TempList)
EndIf
Debug-Output "UpdateAdapterList AdapterList "$(AdapterList)
Set NewValueList = {{DetectKey, $(NoTitle), $(!REG_VT_MULTI_SZ), $(AdapterList)}}
Shell "utility.inf", AddValueList, $(hParameters), $(NewValueList)
Set RegistryErrorIndex = $($R0)
CloseRegKey $(hParameters)
Debug-Output "UpdateAdapterList RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "UpdateAdapterList ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
Debug-Output "UpdateAdapterList *Error* can't write back the DetectKey ValueKey"
EndIf
Set Status = REG_UNABLE_WRITE_REGISTRY
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; nothing
;##############################################
Debug-Output "UpdateAdapterList *"
Set Status = STATUS_SUCCESSFUL
Return $(Status) $(AdapterList)
Exit
;***************************************************************************
;
; G e t C u r r e n t C a p i D e v i c e
;
; Input: $($0) NetCardServiceName
;
; Output: $($R0) Status
; $($R1) CapiDevice
;
;------------------------------------------------------------------------
[GetCurrentCapiDevice]
Debug-Output "GetCurrentCapiDevice >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameter
Set NetCardServiceName = $($0)
; print the callerparameter
Debug-Output "GetCurrentCapiDevice NetCardServiceName "$(NetCardServiceName)
; initialize the returnvalue
Set CapiDevice = ""
; read the initialized parameters
Read-Syms GeneralConstants
; öffne den Key ..\NetCard\(n)
Set ServicePath = $(ServicesPath)"\"$(NetCardServiceName)"\Parameters"
OpenRegKey $(!REG_H_LOCAL), "", $(ServicePath)"\", $(MAXIMUM_ALLOWED), hNetCardServiceParameters
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "GetCurrentCapiDevice *Error* can't open NetCardServiceParameters"
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
; lese das CapiDevice
GetRegValue $(hNetCardServiceParameters), "CapiDevice", CapiDevice
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "GetCurrentCapiDevice *Error* can't read ValueKey CapiDevice"
CloseRegKey $(hNetCardServiceParameters)
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Set CapiDevice = *($(CapiDevice),4)
Debug-Output "GetCurrentCapiDevice CapiDevice "$(CapiDevice)
; cleanup
CloseRegKey $(hNetCardServiceParameters)
; return
Debug-Output "GetCurrentCapiDevice *"
Return $(Status) $(CapiDevice)
Exit
;***************************************************************************
;
; G e t C u r r e n t S e r v i c e N a m e
;
; Input: $($0) Language
; $($1) Option
;
; Output: $($R0) Status
; $($R1) ServiceName
;
;------------------------------------------------------------------------
[GetCurrentServiceName]
Debug-Output "GetCurrentServiceName >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameter
Set Language = $($0)
Set Option = $($1)
; print the callerparameter
Debug-Output "GetCurrentServiceName Language "$(Language)
Debug-Output "GetCurrentServiceName Option "$(Option)
; initialize the returnvalue
Set ServiceName = ""
; read the initialized parameters
Read-Syms ProductConstants
; return
Debug-Output "GetCurrentServiceName *"
Return $(Status) $(ServiceName)
Exit
;***************************************************************************
;
; G e t N e t C a r d S e r v i c e N a m e
;
; Input: --
;
; Output: $($R0) Status
; $($R1) NetCardServiceName
;
;------------------------------------------------------------------------
[GetNetCardServiceName]
Debug-Output "GetNetCardServiceName >"
Set Status = STATUS_SUCCESSFUL
; initialize the returnvalue
Set NetCardServiceName = ""
; read the initialized parameters
Read-Syms GeneralConstants
; öffne den Key ..\NetCard\(n)
OpenRegKey $(!REG_H_LOCAL), "", $(!NTN_RegBase), $(MAXIMUM_ALLOWED), hNetCardService
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "GetNetCardServiceName *Error* can't open NetCardService"
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
; lese den NetCardServiceName
GetRegValue $(hNetCardService), "ServiceName", NetCardServiceName
IfStr(i) $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "GetNetCardServiceName *Error* can't read ValueKey ServiceName"
CloseRegKey $(hNetCardService)
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Set NetCardServiceName = *($(NetCardServiceName),4)
Debug-Output "GetNetCardServiceName NetCardServiceName "$(NetCardServiceName)
; cleanup
CloseRegKey $(hNetCardService)
; return
Debug-Output "GetNetCardServiceName *"
Return $(Status) $(NetCardServiceName)
Exit
;***************************************************************************
;
; S e t P n p S u p p o r t
;
; Input: $($0) Language
; $($1) Option
; $($2) NetCardServiceName
;
; Output: $($R0) Status
; $($R1) SerialId
;
;------------------------------------------------------------------------
[SetPnpSupport]
Debug-Output "SetPnpSupport >"
Set Status = STATUS_SUCCESSFUL
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
Set NetCardServiceName = $($2)
; print the callerparameters
Debug-Output "SetPnpSupport Language "$(Language)
Debug-Output "SetPnpSupport Option "$(Option)
Debug-Output "SetPnpSupport NetCardServiceName "$(NetCardServiceName)
Debug-Output "SetPnpSupport PnpServiceName "$(PnpServiceName)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
Debug-Output "SetPnpSupport PnpServiceName "$(PnpServiceName)
; ist der ServiceName ungültig
IfStr(i) $(PnpServiceName) == ""
Set RegistryErrorIndex = "UNABLE_CREATE_CONFIGURE_SERVICE"
Shell "utility.inf" RegistryErrorString $(RegistryErrorIndex)
Set Error = $($R0)" 'Detect - Service'"
Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
; ist der PnpSupport bereits installiert
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(PnpServiceName) $(MAXIMUM_ALLOWED) hPnpService
IfStr(i) $(hPnpService) == $(KeyNull)
; der PnpSupport ist noch nicht installiert
; setze die PnpServiceGroup vor die CapiServiceGroup
Shell "" ServiceGroupOrderList, "set", {$(PnpServiceGroup), $(ServiceGroup)}
Set Status = $($R0)
IfStr(i) $(Status) == STATUS_FAILED
Debug-Output "MakeServiceGroupOrder can't set ServiceGroupOrder for '"$(PnpServiceGroup)"'"
Return $(Status)
Exit
EndIf
Shell "" AddCleanUpList {"","ServiceGroupOrderList","remove",{$(PnpServiceGroup),""}}
; installiere den PnpService
Shell "utility.Inf", CreateService, +
$(PnpServiceName), $(PnpServiceDisplayName), +
$(PnpDriverImagePath), "kernelautostart", +
$(PnpServiceGroup), {""}, ""
Set RegistryErrorIndex = $($R0)
Debug-Output "SetPnpSupport RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "SetPnpSupport ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
Else-IfStr(i) $(RegistryErrorIndex) == SERVICE_ALREADY_EXISTS
Else-IfStr(i) $(RegistryErrorIndex) == SERVICE_MARKED_FOR_DELETE
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_CREATE_CONFIGURE_SERVICE
Else-IfStr(i) $(RegistryErrorIndex) == UNABLE_CREATE_SERVICE_SUBKEY
EndIf
Debug-Output "SetPnpSupport *Error * can't create the Service for PnpSupport "$(RegistryErrorIndex)
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Set hPnpService = $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
;##############################################
; to close:
; hPnpService
;##############################################
Shell "" AddCleanUpList {"utility.inf","RemoveService",$(PnpServiceName),"YES"}
; initialisiere die ValueKey's DetectKey, DeviceName
Set InitAdapter = {};
Set NewValueList = {{DetectKey, 0, $(!REG_VT_MULTI_SZ), $(InitAdapter)}, +
{DeviceName, 0, $(!REG_VT_SZ), $(DeviceName)}}
Shell "utility.inf", AddValueList, $(hPnpService), $(NewValueList)
Set RegistryErrorIndex = $($R0)
Debug-Output "PnpSupport RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "PnpSupport ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
Debug-Output "PnpSupport *Error* can't set the dafault ValueKey's for PnpService"
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Else
; ggf. ein paar handles erzeugen
EndIf
CloseRegKey $(hPnpService)
;##############################################
; to close:
; nothing
;##############################################
; --> der PnpSupport ist installiert
; ----------------------------------
Shell "" UpdateAdapterList, $(Language), $(Option), "append", $(ServiceName)
Set RegistryErrorIndex = $($R0)
Debug-Output "PnpSupport RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "PnpSupport ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != STATUS_SUCCESSFUL
Set Status = STATUS_FAILED
Debug-Output "PnpSupport *Error* UpdateAdapterList"
Return $(Status)
Exit
EndIf
Shell "" AddCleanUpList {"","UpdateAdapterList",$(Language),$(Option),"remove",$(ServiceName)}
; ermittle den SerialId der zu installierenden PnpKarte
Shell "", GetSerialId, $(Option), $(PnpServiceName), $(DeviceName), $(PnpVendorId)
Set RegistryErrorIndex = $($R0)
Debug-Output "PnpSupport RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "PnpSupport ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != STATUS_SUCCESSFUL
Debug-Output "PnpSupport *Error* can't get the SerialId of selected PnpCard"
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Set SerialId = $($R1)
Debug-Output "PnpSupport SerialId "$(SerialId)
; aktualisiere ..\Services\$(NetCardServiceName)\Parameters ValueKey PnpId
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(NetCardServiceName)"\Parameters", +
$(MAXIMUM_ALLOWED), hCardParameters
IfStr(i) $(hCardParameters) == $(KeyNull)
Debug-Output "PnpSupport *Error* can't open the CardServiceParameters Key"
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
;##############################################
; to close:
; hCardParameters
;##############################################
Set NewValueList = {{PnpId, 0, $(!REG_VT_MULTI_SZ), $(SerialId)}, +
{PnpMapping, 0, $(!REG_VT_MULTI_SZ), $(PnpMapping)}, +
{PnpParams, 0, $(!REG_VT_MULTI_SZ), $(PnpParams)}}
Shell "utility.inf", AddValueList, $(hCardParameters), $(NewValueList)
Set RegistryErrorIndex = $($R0)
CloseRegKey $(hCardParameters)
;##############################################
; to close:
; nothing
;##############################################
Debug-Output "PnpSupport RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "PnpSupport ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
Debug-Output "PnpSupport *Error* can't ValueKey 'PnpId' for CardService"
Else
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Debug-Output "SetPnpSupport *"
Set Status = STATUS_SUCCESSFUL
Return $(Status) $(SerialId)
Exit
;***************************************************************************
;
; GetSerialId
;
; Input: $($0) Option
; $($1) ServiceName
; $($2) DeviceName
; $($3) PnpVendorIdList
;
; Output: $($R0) Status
; $($R1) SerialId // {'VendorId','SerialId'}
;
;------------------------------------------------------------------------
[GetSerialId]
Debug-Output "GetSerialId >"
; inititialize the returnparameters
Set Status = STATUS_SUCCESSFUL
Set SerialId = ""
; save the callerparameters
Set Option = $($0)
Set ServiceName = $($1)
Set DeviceName = $($2)
Set PnpVendorIdList = $($3)
; print the callerparameters
Debug-Output "GetSerialId Option "$(Option)
Debug-Output "GetSerialId ServiceName "$(ServiceName)
Debug-Output "GetSerialId DeviceName "$(DeviceName)
Debug-Output "GetSerialId PnpVendorIdList "$(PnpVendorIdList)
; lade die configdll
LoadLibrary "" "capicfg.dll" hLibrary
Debug-Output "ConfigureAdapter hLibrary "$(hLibrary)
; lese den status des PnpService
LibraryProcedure ServiceStatus $(hLibrary) CFG_Service "status" $(ServiceName)
Debug-Output "ConfigureAdapter ReadStatus "$(ServiceStatus)
IfStr(i) $(ServiceStatus) != STATUS_SERVICE_STARTED
; starte den PnpService
LibraryProcedure Result $(hLibrary) CFG_Service "start" $(ServiceName)
Debug-Output "ConfigureAdapter Result "$(Result)
IfStr(i) $(Result) != STATUS_SERVICE_STARTED
Debug-Output "GetSerialId der PnpService konnte nicht gestartet werden"
FreeLibrary $(hLibrary)
Set SerialId = ""
Set Status = STATUS_FAILED
Return $(Status) $(SerialId)
Exit
EndIf
EndIf
; lese alle SerialId's der sich im System befindenden Karten
Shell "" ScannCsn, $(hLibrary), $(ServiceName), $(PnpVendorIdList)
Set AdapterList = $($R1)
Debug-Output "GetSerialId AdapterList "$(AdapterList)
IfStr(i) $(ServiceStatus) != STATUS_SERVICE_STARTED
; stoppe den PnpService
LibraryProcedure Result $(hLibrary) CFG_Service "stop" $(ServiceName)
Debug-Output "ConfigureAdapter Result "$(Result)
FreeLibrary $(hLibrary)
EndIf
; lese alle SerialId's der bereits benutzten Karten
Shell "" GetUsedCards, $(Language), $(Option)
Set UsedAdapterList = $($R1)
; bestimme die unbenutzten Karten
Debug-Output "GetSerialId UsedAdapterList "$(UsedAdapterList)
Debug-Output "GetSerialId AdapterList "$(AdapterList)
ForListDo $(UsedAdapterList)
Set Temp = $($)
Set SerialId = {}
ForListDo $(AdapterList)
Set Vendor = *($($),1)
Set Serial = *($($),2)
IfStr(i) $(Temp) == $($)
Else
Set SerialId = >($(SerialId),$($))
EndIf
EndForListDo
Set AdapterList = $(SerialId)
EndForListDo
; wähle die erste davon aus
Set SerialId = *($(AdapterList),1)
Debug-Output "GetSerialId SerialId "$(SerialId)
Debug-Output "GetSerialId *"
Set Status = STATUS_SUCCESSFUL
Return $(Status) $(SerialId)
Exit
;***************************************************************************
;
; S c a n n C s n
;
; Input: $($0) hLibrary // Handle der KonfigurationsLibrary
; $($1) ServiceName // Name des KonfigurationsDienstes
; $($2) PnpVendorIdList //{'SAG0001'}
; //{'SAG0001','SAG0003'}
;
; Output: $($R0) Status
; $($R1) SerialId // {'VendorId','SerialId'}
;
;------------------------------------------------------------------------
[ScannCsn]
Debug-Output "ScannCsn >"
Set Status = STATUS_SUCCESSFUL
Set hLibrary = $($0)
Set ServiceName = $($1)
Set PnpVendorIdList = $($2)
Debug-Output "ScannCsn hLibrary "$(hLibrary)
Debug-Output "ScannCsn ServiceName "$(ServiceName)
Debug-Output "ScannCsn PnpVendorIdList "$(PnpVendorIdList)
; lese bis zu acht PnpKarten
Set CsnList = {1,2,3,4,5,6,7,8}
Set PnpIdList = {}
ForListDo $(CsnList)
Set Csn = $($)
LibraryProcedure Result $(hLibrary) CFG_GetSerialIdentifier $(ServiceName) $(Csn)
Debug-Output "GetSerialId Result "$(Result)
IfStr(i) $(Result) != {}
Set AdapterVendorId = *($(Result),1)
ForListDo $(PnpVendorIdList)
IfStr(i) $($) == $(AdapterVendorId)
Set PnpIdList = >($(PnpIdList),$(Result))
EndIf
EndForListDo
Else
Debug-Output "ScannCsn * PnpIdList "$(PnpIdList)
Return $(Status) $(PnpIdList)
Exit
EndIf
EndForListDo
Debug-Output "ScannCsn * PnpIdList "$(PnpIdList)
Return $(Status) $(PnpIdList)
Exit
;***************************************************************************
;
; G e t U s e d C a r d s
;
; Input: $($0) Language
; $($1) Option
; //{'SAG0001','SAG0003'}
;
; Output: $($R0) Status
; $($R1) AdapterList // {'VendorId','SerialId'}
;
;------------------------------------------------------------------------
[GetUsedCards]
Debug-Output "GetUsedCards >"
; init returnparameters
Set Status = STATUS_SUCCESSFUL
Set AdapterList = {}
; save callerparameters
Set Language = $($0)
Set Option = $($1)
; print callerparameters
Debug-Output "GetUsedCards Language "$(Language)
Debug-Output "GetUsedCards Option "$(Option)
; initialize
Read-Syms GeneralConstants
Read-Syms ProductConstants
; read the NetCardServiceNames
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(ServiceName)"\Parameters", +
$(MAXIMUM_ALLOWED) hParameters
Debug-Output "GetUsedCards RegLastError "$(RegLastError)
; read the ControllerList
GetRegValue $(hParameters) "Controllers" ControllerList
Debug-Output "GetUsedCards RegLastError "$(RegLastError)
Set ControllerList = *($(ControllerList),4)
CloseRegKey $(hParameters)
ForListDo $(ControllerList)
; read the NetCardServiceNames
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$($)"\Parameters", +
$(MAXIMUM_ALLOWED) hParameters
Debug-Output "GetUsedCards RegLastError "$(RegLastError)
; read the PnpIdentification
Set PnpId = {}
GetRegValue $(hParameters) "PnpId" PnpId
Debug-Output "GetUsedCards RegLastError "$(RegLastError)
IfStr(i) $(RegLastError) == 0
Set PnpId = *($(PnpId),4)
Set AdapterList = >($(AdapterList),$(PnpId))
Endif
; close the registrykey
CloseRegKey $(hParameters)
EndForListDo
Debug-Output "GetUsedCards * AdapterList "$(AdapterList)
Return $(Status) $(AdapterList)
Exit
;***************************************************************************
;
; ConfigDialogType
;
; Input: $($0) Option
; $($1) ServiceName
; $($2) DlgType
; $($3) CfgServiceName
;
; Output: $($R0) Status
;
;------------------------------------------------------------------------
[ConfigDialogType]
Debug-Output "ConfigDialogType >"
; inititialize the returnparameters
Set Status = STATUS_SUCCESSFUL
; save the callerparameters
Set Option = $($0)
Set ServiceName = $($1)
Set NewType = $($2)
Set CfgServiceName = $($3)
; Print the callerparameters
Debug-Output "ConfigDialogType Option "$(Option)
Debug-Output "ConfigDialogType ServiceName "$(ServiceName)
Debug-Output "ConfigDialogType DialogType "$(NewType)
Debug-Output "ConfigDialogType CfgServiceName "$(CfgServiceName)
; read the initialized parameters
Read-Syms GeneralConstants
; open the ServiceName\Paramters
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(ServiceName)"\Parameters", +
$(MAXIMUM_ALLOWED) hServiceParameters
;##############################################
; to close:
; hServiceParameters
;##############################################
; Read the old DialogType
GetRegValue $(hServiceParameters), "DialogType", DialogType
Set DialogType = *($(DialogType),4)
Debug-Output "ConfigDialogType DialogType "$(DialogType)
Set OldType = *($(DialogType),1)
Set OldService = *($(DialogType),2)
IfStr(i) $(OldType) == ""
Debug-Output "ConfigDialogType DialogType ist leer"
Set DialogType = {$(NewType), $(CfgServiceName)}
Else-IfStr(i) $(OldType) == "Card"
Debug-Output "ConfigDialogType DialogType ist Card"
IfStr(i) $(NewType) == "Card"
Set DialogType = {$(NewType), $(CfgServiceName)}
Else-IfStr(i) $(NewType) == "Ndis"
Set DialogType = {"All", $(OldService),$(CfgServiceName)}
EndIf
Else-IfStr(i) $(OldType) == "Ndis"
Debug-Output "ConfigDialogType DialogType ist Ndis"
IfStr(i) $(NewType) == "Ndis"
Set DialogType = {$(NewType), $(CfgServiceName)}
Else-IfStr(i) $(NewType) == "Card"
Set DialogType = {"All", $(CfgServiceName), $(OldService)}
EndIf
Else-IfStr(i) $(OldType) == "All"
Debug-Output "ConfigDialogType DialogType ist All"
Debug-Output "ConfigDialogType kann nicht vorkommen"
Else
Debug-Output "ConfigDialogType DialogType ist unbekannt"
EndIf
Debug-Output "ConfigDialogType DialogType "$(DialogType)
Set NewValueList = {{DialogType, 0, $(!REG_VT_MULTI_SZ), $(DialogType)}}
Shell "utility.inf", AddValueList, $(hServiceParameters), $(NewValueList)
Set RegistryErrorIndex = $($R0)
; Set RegistryErrorIndex = NO_ERROR
Debug-Output "ConfigDialogType RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "ConfigDialogType ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
;
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
CloseRegKey $(hServiceParameters)
;##############################################
Debug-Output "ConfigDialogType *"
Return $(Status)
Exit
;***************************************************************************
;
; C o n f i g u r e A d a p t e r
;
; Input: $($0) Language
; $($1) Option
; $($2) ServiceName
;
; Output: $($R0) Status
;
;------------------------------------------------------------------------
[ConfigureAdapterParameter]
Debug-Output "ConfigureAdapterParameter >"
; inititialize the returnparameters
Set Status = STATUS_SUCCESSFUL
; save the callerparameters
Set Language = $($0)
Set Option = $($1)
Set ConfigServiceName = $($2)
; read the initialized parameters
Read-Syms GeneralConstants
Read-Syms ProductConstants
; print the callerparameters
Debug-Output "ConfigureAdapterParameter Language "$(Language)
Debug-Output "ConfigureAdapterParameter Option "$(Option)
Debug-Output "ConfigureAdapterParameter ConfigServiceName "$(ConfigServiceName)
Debug-Output "ConfigureAdapterParameter >"
Debug-Output "ConfigureAdapterParameter BusType "$(BusType)
IfStr(i) $(BusType) == 5
Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", +
#(SetupMessage$(Language), PCIConfig,1)
Set Status = STATUS_SUCCESSFUL
Return $(Status)
Exit
Else
; open the ServiceName\Paramters
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(ConfigServiceName)"\Parameters", +
$(MAXIMUM_ALLOWED) hConfigParameters
Debug-Output "ConfigureAdapterParameter hConfigParameters "$(hConfigParameters)
;##############################################
; to close:
; hConfigParameters
;##############################################
; Read DialogType
GetRegValue $(hConfigParameters), "DialogType", DialogType
Debug-Output "ConfigureAdapterParameter DialogType "$(DialogType)
Set DialogType = *($(DialogType),4)
Debug-Output "ConfigureAdapterParameter DialogType "$(DialogType)
CloseRegKey $(hConfigParameters)
;##############################################
Set DlgType = *($(DialogType),1)
IfStr(i) $(DlgType) == All
Set NetCardServiceName = *($(DialogType),2)
Set NdisServiceName = *($(DialogType),3)
; open the NetCardService\Parameters
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(NetCardServiceName)"\Parameters", +
$(MAXIMUM_ALLOWED) hNetCardParameters
; open the NdisService\Parameters
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(NdisServiceName)"\Parameters", +
$(MAXIMUM_ALLOWED) hNdisParameters
;##############################################
; to close:
; hNetCardParameters
; hNdisParameters
;##############################################
; Read CardParameters
; -------------------
; Read PortAddress
GetRegValue $(hNetCardParameters), "IoBaseAddress", Port
Set Port = *($(Port),4)
Debug-Output "ConfigureAdapterParameter Port "$(Port)
; Konvertiere die adresse in einen String
Set IsBox = *(^(HardWare,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
IfStr(i) $(IsBox) == "ParallelPort"
Set-Add Port = $(Port), 1
Set Port = "LPT"$(Port)
Else
Set-DecToHex Port = $(Port)
EndIf
;Read Irq
GetRegValue $(hNetCardParameters), "InterruptNumber", Irq
Set Irq = *($(Irq),4)
Set Irq = *(^(InterruptStrings,1),$(Irq))
; lese die CardOptionen für Port und Irq
Set PortChoose = *(^(HardWare, $(HwPc)),~(^(HardWare, $(HwO)), $(Option)))
Set IrqChoose = *(^(HardWare, $(HwIc)),~(^(HardWare, $(HwO)), $(Option)))
; Read NdisParameters
; -------------------
; Read Msn1
GetRegValue $(hNdisParameters), "MSNL0", Msn1
Set Msn1 = *($(Msn1),4)
Debug-Output "ConfigureAdapterParameter Msn1 "$(Msn1)
;Read Msn1
GetRegValue $(hNdisParameters), "MSNL1", Msn2
Set Msn2 = *($(Msn2),4)
; --> setze die kommandozeile zusammen
Set Msn1 = {"MSN1", $(Msn1)}
Set Msn2 = {"MSN2", $(Msn2)}
Set Port = {"Port", $(Port), $(PortChoose)}
Set Interrupt = {"Interrupt",$(Irq), $(IrqChoose)}
Set Parameter = {$(Msn1),$(Msn2),$(Port),$(Interrupt)}
Debug-Output "ConfigureAdapterParameter Parameter "$(Parameter)
; lade die library
LoadLibrary "" "capicfg.dll" hLibrary
Debug-Output "ConfigureAdapterParameter hLibrary "$(hLibrary)
; lese die Dialog und TabulatorTitel
Read-Syms DialogConstants
LibraryProcedure ConfigureResult $(hLibrary) CFG_SetCaption, $(DlgCaption), +
$(Tab1Title), $(Tab2Title)
; Starte den ConfigDialog
LibraryProcedure ConfigureResult $(hLibrary) CFG_All $(Parameter)
Debug-Output "ConfigureAdapterParameter ConfigureResult "$(ConfigureResult)
; entlade die Library
FreeLibrary $(hLibrary)
; lese die RückgabeParameter
ForListDo $(ConfigureResult)
Set ConfigName = *($($),1)
Set ConfigValue = *($($),2)
IfStr(i) $(ConfigName) == "STATUS_USERCANCEL" ;-- Dialog abgebrochen
CloseRegKey $(hNetCardParameters)
CloseRegKey $(hNdisParameters)
Set Status = STATUS_USERCANCEL
Return $(Status)
Exit
Else-IfStr(i) $(ConfigName) == "Port" ;-- Port
Set Port = $(ConfigValue)
Else-IfStr(i) $(ConfigName) == "Interrupt" ;-- Irq
Set Interrupt = $(ConfigValue)
Else-IfStr(i) $(ConfigName) == "MSN1" ;-- MSN1
Set Msn1 = $(ConfigValue)
Else-IfStr(i) $(ConfigName) == "MSN2" ;-- MSN2
Set Msn2 = $(ConfigValue)
EndIf
EndForListDo
; korrektur Irq
Set Interrupt = *(^(InterruptStrings, 2),~(^(InterruptStrings, 1), $(Interrupt)))
; korrektur Port
Set IsBox = *(^(HardWare,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
IfStr(i) $(IsBox) == "ParallelPort"
Set Port = *(^(LptStrings, 2),~(^(LptStrings, 1), $(Port)))
Else
Set-HexToDec Port = $(Port)
Endif
; schreibe die Parameter in die Registrierung
Set NewValueList = {{InterruptNumber, 0, $(!REG_VT_DWORD), $(Interrupt)}, +
{IoBaseAddress, 0, $(!REG_VT_DWORD), $(Port)}}
Shell "utility.inf", AddValueList, $(hNetCardParameters), $(NewValueList)
Set RegistryErrorIndex = $($R0)
Debug-Output "ConfigureAdapterParameter RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "ConfigureAdapterParameter ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
Debug-Output "ConfigureAdapterParameter *Error* can't writeback Card ConfigValues"
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
CloseRegKey $(hNetCardParameters)
;##############################################
; to close:
; hNdisParameters
;##############################################
; schreibe die Parameter in die Registrierung
Set NewValueList = {{MSNL0, 0, $(!REG_VT_SZ), $(Msn1)}, +
{MSNL1, 0, $(!REG_VT_SZ), $(Msn2)}}
Shell "utility.inf", AddValueList, $(hNdisParameters), $(NewValueList)
Set RegistryErrorIndex = $($R0)
Debug-Output "ConfigureAdapterParameter RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "ConfigureAdapterParameter ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
Debug-Output "ConfigureAdapterParameter *Error* can't writeback Ndis ConfigValues"
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
CloseRegKey $(hNdisParameters)
;##############################################
Else-IfStr(i) $(DlgType) == Card
Set NetCardServiceName = *($(DialogType),2)
; print the callerparameters
Debug-Output "ConfigureAdapterParameter DlgType "$(DlgType)
Debug-Output "ConfigureAdapterParameter Option "$(Option)
Debug-Output "ConfigureAdapterParameter NetCardServiceName "$(NetCardServiceName)
; open the NetCardService\Parameters
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(NetCardServiceName)"\Parameters", +
$(MAXIMUM_ALLOWED) hNetCardParameters
;##############################################
; to close:
; hNetCardParameters
;##############################################
; Read PortAddress
GetRegValue $(hNetCardParameters), "IoBaseAddress", Port
Set Port = *($(Port),4)
Debug-Output "ConfigureAdapterParameter Port "$(Port)
; Konvertiere die adresse in einen String
Set IsBox = *(^(HardWare,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
IfStr(i) $(IsBox) == "ParallelPort"
Set-Add Port = $(Port), 1
Set Port = "LPT"$(Port)
Else
Set-DecToHex Port = $(Port)
EndIf
;Read Irq
GetRegValue $(hNetCardParameters), "InterruptNumber", Irq
Set Irq = *($(Irq),4)
Set Irq = *(^(InterruptStrings,1),$(Irq))
; lese die CardOptionen für Port und Irq
Set PortChoose = *(^(HardWare, $(HwPc)),~(^(HardWare, $(HwO)), $(Option)))
Set IrqChoose = *(^(HardWare, $(HwIc)),~(^(HardWare, $(HwO)), $(Option)))
; --> setze die kommandozeile zusammen
Set Port = {"Port", $(Port), $(PortChoose)}
Set Interrupt = {"Interrupt",$(Irq), $(IrqChoose)}
Set Parameter = {$(Port),$(Interrupt)}
Debug-Output "ConfigureAdapterParameter Parameter "$(Parameter)
; lade die library
LoadLibrary "" "capicfg.dll" hLibrary
Debug-Output "ConfigureAdapterParameter hLibrary "$(hLibrary)
; lese die Dialog und TabulatorTitel
Read-Syms DialogConstants
LibraryProcedure ConfigureResult $(hLibrary) CFG_SetCaption, $(DlgCaption), +
$(Tab1Title), $(Tab2Title)
; Starte den ConfigDialog
Debug-Output "ConfigureAdapterParameter CFG_Card entry"
LibraryProcedure ConfigureResult $(hLibrary) CFG_Card $(Parameter)
Debug-Output "ConfigureAdapterParameter CFG_Card returned"
; Debug-Output "ConfigureAdapterParameter ConfigureResult "$(ConfigureResult)
; entlade die Library
FreeLibrary $(hLibrary)
; lese die RückgabeParameter
ForListDo $(ConfigureResult)
Set ConfigName = *($($),1)
Set ConfigValue = *($($),2)
IfStr(i) $(ConfigName) == "STATUS_USERCANCEL" ;-- Dialog abgebrochen
CloseRegKey $(hNetCardParameters)
Set Status = STATUS_USERCANCEL
Return $(Status)
Exit
Else-IfStr(i) $(ConfigName) == "Port" ;-- Port
Set Port = $(ConfigValue)
Else-IfStr(i) $(ConfigName) == "Interrupt" ;-- Irq
Set Interrupt = $(ConfigValue)
EndIf
EndForListDo
; korrektur Irq
Set Interrupt = *(^(InterruptStrings, 2),~(^(InterruptStrings, 1), $(Interrupt)))
; korrektur Port
Set IsBox = *(^(HardWare,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
IfStr(i) $(IsBox) == "ParallelPort"
Set Port = *(^(LptStrings, 2),~(^(LptStrings, 1), $(Port)))
Else
Set-HexToDec Port = $(Port)
Endif
; schreibe die Parameter in die Registrierung
Set NewValueList = {{InterruptNumber, 0, $(!REG_VT_DWORD), $(Interrupt)}, +
{IoBaseAddress, 0, $(!REG_VT_DWORD), $(Port)}}
Shell "utility.inf", AddValueList, $(hNetCardParameters), $(NewValueList)
Set RegistryErrorIndex = $($R0)
Debug-Output "ConfigureAdapterParameter RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "ConfigureAdapterParameter ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
Debug-Output "ConfigureAdapterParameter *Error* can't writeback Card ConfigValues"
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
CloseRegKey $(hNetCardParameters)
;##############################################
Else-IfStr(i) $(DlgType) == Ndis
Set NdisServiceName = *($(DialogType),2)
; print the callerparameters
Debug-Output "ConfigureAdapterParameter DlgType "$(DlgType)
Debug-Output "ConfigureAdapterParameter Option "$(Option)
Debug-Output "ConfigureAdapterParameter NetCardServiceName "$(NetCardServiceName)
; open the NdisService\Paramters
OpenRegKey $(!REG_H_LOCAL) "" $(ServicesPath)"\"$(NdisServiceName)"\Parameters", +
$(MAXIMUM_ALLOWED) hNdisParameters
;##############################################
; to close:
; hNdisParameters
;##############################################
; Read Msn1
GetRegValue $(hNdisParameters), "MSNL0", Msn1
Set Msn1 = *($(Msn1),4)
Debug-Output "ConfigureAdapterParameter Msn1 "$(Msn1)
;Read Msn1
GetRegValue $(hNdisParameters), "MSNL1", Msn2
Set Msn2 = *($(Msn2),4)
; --> setze die kommandozeile zusammen
Set Msn1 = {"MSN1", $(Msn1)}
Set Msn2 = {"MSN2", $(Msn2)}
Set Parameter = {$(Msn1),$(Msn2)}
Debug-Output "ConfigureAdapterParameter Parameter "$(Parameter)
; lade die library
LoadLibrary "" "capicfg.dll" hLibrary
Debug-Output "ConfigureAdapterParameter hLibrary "$(hLibrary)
; lese die Dialog und TabulatorTitel
Read-Syms DialogConstants
LibraryProcedure ConfigureResult $(hLibrary) CFG_SetCaption, $(DlgCaption), +
$(Tab1Title), $(Tab2Title)
; Starte den ConfigDialog
LibraryProcedure ConfigureResult $(hLibrary) CFG_Ndis $(Parameter)
Debug-Output "ConfigureAdapterParameter ConfigureResult "$(ConfigureResult)
; entlade die Library
FreeLibrary $(hLibrary)
; lese die RückgabeParameter
ForListDo $(ConfigureResult)
Set ConfigName = *($($),1)
Set ConfigValue = *($($),2)
IfStr(i) $(ConfigName) == "STATUS_USERCANCEL" ;-- Dialog abgebrochen
CloseRegKey $(hNdisParameters)
Set Status = STATUS_USERCANCEL
Return $(Status)
Exit
IfStr(i) $(ConfigName) == "MSN1" ;-- MSN1
Set Msn1 = $(ConfigValue)
Else-IfStr(i) $(ConfigName) == "MSN2" ;-- MSN2
Set Msn2 = $(ConfigValue)
EndIf
EndForListDo
; schreibe die Parameter in die Registrierung
Set NewValueList = {{MSNL0, 0, $(!REG_VT_SZ), $(Msn1)}, +
{MSNL1, 0, $(!REG_VT_SZ), $(Msn2)}}
Shell "utility.inf", AddValueList, $(hNdisParameters), $(NewValueList)
Set RegistryErrorIndex = $($R0)
Debug-Output "ConfigureAdapterParameter RegistryErrorIndex "$(RegistryErrorIndex)
Debug-Output "ConfigureAdapterParameter ShellCode "$($ShellCode)
IfStr(i) $(RegistryErrorIndex) != NO_ERROR
IfStr(i) $(RegistryErrorIndex) == UNABLE_WRITE_REGISTRY
Debug-Output "ConfigureAdapterParameter *Error* can't writeback Ndis ConfigValues"
EndIf
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
CloseRegKey $(hNdisParameters)
;##############################################
EndIf
EndIf
Debug-Output "ConfigureAdapterParameter *"
Set Status = STATUS_SUCCESSFUL
Return $(Status)
Exit
;***************************************************************************
;
; G e t V a l i d C a p i C o n t r o l l e r
;
; Input: keine
;
; Output: $($R0) Status
; $($R1) CapiDevice
;------------------------------------------------------------------------
[GetValidCapiController]
Set !DebugOutputControl = 1
Debug-Output "GetValidCapiDevice >"
Read-Syms GeneralConstants
Set CapiDevice = 0
; lese alle Capi20 SubKey's
; -------------------------
OpenRegKey $(!REG_H_LOCAL) "" $(Capi20Path) $(MAXIMUM_ALLOWED) hKey
IfStr(i) $(hKey) != $(KeyNull)
; Capi20Key ist vorhanden
; -----------------------
EnumRegKey $(hKey) KeyList
CloseRegKey $(hKey)
Debug-Output "GetValidCapiController KeyList "$(KeyList)
; erzeuge die DeviceIdList
; ------------------------
Set DeviceIdList = {}
; Set Max = 0
ForListDo $(KeyList)
Set DeviceId = *($($), 1)
; Set-Add = $(Max), 1
IfInt $(DeviceId) == 0
; generic CapiDevice
; ------------------
; unknown to do
Else-IfInt $(DeviceId) >= 1
Set DeviceIdList = >($(DeviceIdList), $(DeviceId))
EndIf
EndForListDo
; prüfe die Konsistenz der Eintragungen
; -------------------------------------
; später
; sortiere die ControllerList
; -------------------------
Shell "Utility.Inf", SortList, $(DeviceIdList), TRUE, FALSE
Set DeviceIdList = $($R0)
; finde die erste freie Nummer
; ----------------------------
ForListDo $(DeviceIdList)
Set DeviceId = *($($), 1)
Set-Add CapiDevice = $(CapiDevice), 1
IfInt $(CapiDevice) < $(DeviceId)
; eine Lücke gefunden
; -------------------
Debug-Output "GetValidCapiDevice *"
Set Status = STATUS_SUCCESSFUL
Return $(Status) $(CapiDevice)
Exit
endif
EndForListDo
EndIf
; keine Lücke gefunden oder Capi20-Key nicht vorhanden
; ----------------------------------------------------
Debug-Output "GetValidCapiDevice *"
Set-Add CapiDevice = $(CapiDevice), 1
Set Status = STATUS_SUCCESSFUL
Return $(Status) $(CapiDevice)
Exit
;***************************************************************************
; S e t C a p i D e v i c e
;
; Input: $($0) Modus ( "add" | "remove" )
; $($1) CapiDevice 'x' 'x'
; $($2) Option 'x' '-'
; $($3) Manufacturer 'x' '-'
;
; Output: $($R0) Status
;------------------------------------------------------------------------
[SetCapiDevice]
Set !DebugOutputControl = 1
Debug-Output "SetCapiDevice >"
Set Modus = $($0)
; lese die CapiConstanten
; -----------------------
Read-Syms GeneralConstants
IfStr(i) $(Modus) == set
Set CapiDevice = $($1)
Set Option = $($2)
Set Manufacturer = $($3)
Debug-Output "SetCapiDevice set CapiDevice "$(CapiDevice)
Debug-Output "SetCapiDevice Option "$(Option)
Debug-Output "SetCapiDevice Manufacturer "$(Manufacturer)
Set NumberOfControllers = *(^(HardWare, $(HwCo)),~(^(HardWare, $(HwO)), $(Option)))
Set Channels = *(^(HardWare, $(HwCh)),~(^(HardWare, $(HwO)), $(Option)))
Debug-Output "SetCapiDevice NumberOfControllers "$(NumberOfControllers)
Debug-Output "SetCapiDevice Channels "$(Channels)
; öffne den CAPI20Key in der Registrierung
; ----------------------------------------
Debug-Output "SetCapiDevice set Capi20Path "$(Capi20Path)
OpenRegKey $(!REG_H_LOCAL) "" $(Capi20Path) $(MAXIMUM_ALLOWED) hCapi
Debug-Output "SetCapiDevice set hCapi "$(hCapi)
IfStr(i) $(hCapi) == $(KeyNull)
; der Schlüssel ist noch nicht vorhanden
; --------------------------------------
CreateRegKey $(!REG_H_LOCAL) {$(Capi20Path), 0, GenericClass} "" $(MAXIMUM_ALLOWED) "" hCapi
EndIf
; erzeuge den neuen ControllerKey in der Registrierung
; ----------------------------------------------------
CreateRegKey $(hCapi) {$(CapiDevice), 0, GenericClass} "" $(MAXIMUM_ALLOWED) "" hDevice
; trage alle KeyValues ein
; ------------------------
set ValueList = {{"DeviceName",$(NoTitle),$(!REG_VT_SZ),"CAPI20"$(CapiDevice)},+
{"NumberOfControllers",$(NoTitle),$(!REG_VT_DWORD),$(NumberOfControllers)},+
{"Manufacturer",$(NoTitle),$(!REG_VT_SZ), $(Manufacturer)}}
Shell "Utility.Inf", AddValueList, $(hDevice), $(ValueList)
; trage ControllerSubKey's und zugehörige Channels ein
; ----------------------------------------------------
Debug-Output "SetCapiDevice set Channels "$(Channels)
ForListDo $(Channels)
Set CurrentChannel = $($)
Debug-Output "SetCapiDevice set CurrentChannel "$(CurrentChannel)
Set-Add CurrentController = $(CurrentController) , 1
CreateRegKey $(hDevice) {$(CurrentController), 0, GenericClass} "" $(MAXIMUM_ALLOWED) "" hController
Set ValueList = {{"Channels",$(NoTitle),$(!REG_VT_DWORD),$(CurrentChannel)}+
; ggf rasconfig +
}
Shell "Utility.Inf", AddValueList, $(hController), $(ValueList)
CloseRegKey $(hController)
EndForListDo
CloseRegKey $(hDevice)
Set Status = STATUS_SUCCESSFUL
Else-IfStr(i) $(Modus) == remove
Set CapiDevice = $($1)
Set Available = "no"
Debug-Output "SetCapiDevice remove CapiDevice "$(CapiDevice)
; öffne den CAPI20Key in der Registrierung
; ----------------------------------------
OpenRegKey $(!REG_H_LOCAL) "" $(Capi20Path) $(MAXIMUM_ALLOWED) hCapi
IfStr(i) $(hCapi) == $(KeyNull)
Set Status = STATUS_FAILED
Debug-Output "SetCapiDevice 'remove' can't open Key 'CAPI20'"
Return $(Status)
Exit
EndIf
; lösche das angebene CapiDevice
; ------------------------------
DeleteRegTree $(hCapi) $(CapiDevice)
; scanne nach weiteren CapiDevices
; --------------------------------
Set Available = "yes"
EnumRegKey $(hCapi) CapiList
IfStr(i) $(CapiList) == {}
Set Available = "no"
EndIf
Set Status = STATUS_SUCCESSFUL
Else
Debug-Output "SetCapiDevice unknown modus"
Set Status = STATUS_FAILED
EndIf
CloseRegKey $(hCapi)
Debug-Output "SetCapiDevice *"
Return $(Status) $(Available)
Exit
;***************************************************************************
;
; S e r v i c e G r o u p O r d e r L i s t
;
; Input: $($0) modus (set | get | remove)
; $($1) ServiceGroupOrder 'x' 'x' 'x' // {'Svc_x','Svc_y'}
;
; Output: $($R0) Status
;
;------------------------------------------------------------------------
[ServiceGroupOrderList]
Debug-Output "ServiceGroupOrderList >"
Set Status = STATUS_SUCCESSFUL
Set Modus = $($0)
Set ServiceGroupOrder = $($1)
Set CurrentServiceGroupOrder = {}
Debug-Output "ServiceGroupOrderList ServiceGroupOrder "$(ServiceGroupOrder)
Read-Syms GeneralConstants
OpenRegKey $(!REG_H_LOCAL) "" $(ServiceGroupOrderPath), $(MAXIMUM_ALLOWED), hKey
Ifstr(i) $(hKey) == $(KeyNull)
; der ServiceGroupOrderKey kann nicht geöffnet werden
; ---------------------------------------------------
Debug-Output "ServiceGroupOrderList can't open "$(ServiceGroupOrderPath)
Debug-Output "ServiceGroupOrderList * Error"
Set Status = STATUS_REGISTRY_ERROR
Return $(Status)
Exit
EndIf
; lese die alte ServiceGroupOrderList
; -----------------------------------
GetRegValue $(hKey) "List" OldList
Set OldList = *($(OldList), 4)
Set NewList = {}
Ifstr(i) $(Modus) == set
Debug-Output "ServiceGroupOrderList add"
Set GroupName = *($(ServiceGroupOrder),1)
Set NextGroupName = *($(ServiceGroupOrder),2)
; füge die ServiceGroup vor der NextGroupName in die ServiceGroupOrderList ein
; ----------------------------------------------------------------------------
IfStr(i) $(NextGroupName) == ""
; wenn die ServiceGroup vorhanden ist, nicht kopieren
; ----------------------------------------------------
ForListDo $(OldList)
; kopiere nur die ungleichen GroupNamen
Ifstr(i) $($) != $(GroupName)
Set NewList = >($(NewList),$($))
Endif
EndForListDo
; neue ServiceGroup ans Ende der Liste stellen
; --------------------------------------------
Set NewList = >($(NewList), $(GroupName))
Else
ForListDo $(OldList)
IfStr(i) $($) == $(NextGroupName)
; NextGroup vorhanden: kopieren und ServiceGroup anhängen
; -------------------------------------------------------
Set NewList = >($(NewList), $(GroupName))
Set NewList = >($(NewList), $($))
Else-IfStr(i) $($) == $(GroupName)
; ServiceGroup ist bereits vorhanden, dann nicht kopieren
; -------------------------------------------------------
; nothing to do
Else
; unverändertes ListenElement
; ---------------------------
Set NewList = >($(NewList), $($))
Endif
EndForListDo
EndIf
; schreibe die ServiceGroupOrderList zurück
; -----------------------------------------
SetRegValue $(hKey) {List, $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
Set Status = STATUS_SUCCESSFUL
Else-Ifstr(i) $(Modus) == get
; die erste gefundene Folge zurückgeben
; -------------------------------------
Debug-Output "ServiceGroupOrderList get"
Set GroupName = *($(ServiceGroupOrder),1)
Set NextGroupName = *($(ServiceGroupOrder),2)
Set Found = 0
Debug-Output "ServiceGroupOrderList GroupName "$(GroupName)
ForListDo $(OldList)
Debug-Output "ServiceGroupOrderList $ "$($)
IfStr(i) $(Found) == 0
IfStr(i) $($) == $(GroupName)
Set Found = 1
Set CurrentServiceGroupOrder = >($(CurrentServiceGroupOrder),$($))
EndIf
Else-IfStr(i) $(Found) == 1
Set Found = 2
Set CurrentServiceGroupOrder = >($(CurrentServiceGroupOrder),$($))
EndIf
EndForListDo
Else-Ifstr(i) $(Modus) == remove
; wenn die ServiceGroup vorhanden ist, nicht kopieren
; ----------------------------------------------------
Debug-Output "ServiceGroupOrderList remove"
Set GroupName = *($(ServiceGroupOrder),1)
Set NextGroupName = *($(ServiceGroupOrder),2)
ForListDo $(OldList)
; kopiere nur die ungleichen GroupNamen
Ifstr(i) $($) != $(GroupName)
Set NewList = >($(NewList),$($))
Endif
EndForListDo
; schreibe die ServiceGroupOrderList zurück
; -----------------------------------------
SetRegValue $(hKey) {List, $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)}
Set Status = STATUS_SUCCESSFUL
Else
Debug-Output "ServiceGroupOrderList Modus nicht unterstützt"
Set Status = STATUS_FAILED
Set Reason = CommandNotFound
EndIf
CloseRegKey $(hKey)
Debug-Output "ServiceGroupOrderList *"
Return $(Status) $(CurrentServiceGroupOrder)
Exit
;***************************************************************************
;
; G e t S e r v i c e H a n d l e s
;
; Input: $($0) ServiceName
;
; Output: $($R0) Status
; $($R1) hService
; $($R2) hParameters
;------------------------------------------------------------------------
[GetServiceHandles]
Set !DebugOutputControl = 1
Debug-Output "GetServiceHandles >"
Set Status = STATUS_SERVICE_EXIST
Set ServiceName = $($0)
Read-Syms GeneralConstants
OpenRegKey $(!REG_H_LOCAL), "", $(ServicesPath)"\"$(ServiceName), $(MAXIMUM_ALLOWED), hService
IfStr(i) $(hService) == $(KeyNull)
Debug-Output "GetServiceHandles can't open PnpServiceKey *"
Set Status = STATUS_SERVICE_NO_EXIST
Return $(Status)
Exit
EndIf
OpenRegKey $(hService), "", "Parameters", $(MAXIMUM_ALLOWED), hParameters
IfStr(i) $(hService) == $(KeyNull)
Debug-Output "GetServiceHandles can't open PnpParametersKey *"
CloseRegKey $(hService)
Set Status = STATUS_FAILED
Return $(Status)
Exit
EndIf
Debug-Output "GetServiceHandles *"
Return $(Status) $(hService) $(hParameters)
Exit
;***************************************************************************
;
; C o p y F i l e s
;
; Input: --
;
; Output: --
;------------------------------------------------------------------------
[CopyFiles]
Debug-Output "CopyFiles >"
Set STF_VITAL = ""
; fülle die copy liste
IfStr(i) $(AddCopy) == "YES"
AddSectionFilesToCopyList Files-Driver $(SrcDir) $(DriverDir)
AddSectionFilesToCopyList Files-System32 $(SrcDir) $(System32Dir)
IfStr(i) $(Option) != "Ndis"
AddSectionFilesToCopyList Files-Capi32 $(SrcDir) $(System32Dir)
AddSectionFilesToCopyList Files-Capi16 $(SrcDir) $(SystemDir)
EndIf
EndIf
Set IsPnp = *(^(HardWare,$(HwSup)),~(^(HardWare,$(HwO)),$(Option)))
IfStr(i) $(IsPnp) == "Pnp"
AddSectionFilesToCopyList Files-Pnp $(SrcDir) $(DriverDir)
EndIf
; kopiere alle file's
; IfStr(i) $(DoCopy) == "YES"
Set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
; EndIf
Debug-Output "CopyFiles *"
Exit
;***************************************************************************
;
; P c m c i a U p d a t e D a t a B a s e
;
; Input: $($0) Option
; $($1) ServiceName
; $($2) Manufacturer
; $($3) AdapterList
;
; Output: $($R0) Status
;
;------------------------------------------------------------------------
[PcmciaUpdateDataBase]
Debug-Output "PcmciaUpdateDataBase >"
Set Status = STATUS_SUCCESS
; save callerparameter
Set Option = $($0)
Set ServiceName = $($1)
Set Manufacturer = $($2)
Set AdapterList = $($3)
; print callerparameter
Debug-Output "PcmciaUpdateDataBase Option "$(Option)
Debug-Output "PcmciaUpdateDataBase ServiceName "$(ServiceName)
Debug-Output "PcmciaUpdateDataBase Manufacturer "$(Manufacturer)
Debug-Output "PcmciaUpdateDataBase AdapterList "$(AdapterList)
; initialize Constants
Read-Syms GeneralConstants
; write the pcmciavalues
Set NewValueList = {{DeviceType, 0, $(!REG_VT_SZ), NET},+
{Driver, 0, $(!REG_VT_SZ), $(ServiceName)}, +
{InfFileName, 0, $(!REG_VT_SZ), $(STF_CONTEXTINFNAME)},+
{Option, 0, $(!REG_VT_SZ), $(Option)}}
Debug-Output "PcmciaUpdateDataBase NewValueList "$(NewValueList)
OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaDataBasePath) $(MAXIMUM_ALLOWED) hDataBase
IfStr $(hDataBase) != $(KeyNull)
; open the ManufacturerKey in the PcmciaDataBase
; ----------------------------------------------
OpenRegKey $(hDataBase) "" $(Manufacturer) $(MAXIMUM_ALLOWED) hManufacturer
IfStr $(hManufacturer) == $(KeyNull)
; if not open then create
; -----------------------
CreateRegKey $(hDataBase) {$(Manufacturer), 0, GenericClass}, +
"", $(MAXIMUM_ALLOWED), "",hManufacturer
EndIf
; and now scan the manufacturer database
; --------------------------------------
EnumRegKey $(hManufacturer) KeyList
Debug-Output "PcmciaUpdateDataBase KeyList: "$(KeyList)
IfStr(i) $(KeyList) == {}
ForListDo $(AdapterList)
Set NewAdapterName = $($)
Debug-Output "PcmciaUpdateDataBase Create the Key "$(NewApterName)
CreateRegKey $(hManufacturer) {$(NewAdapterName), 0, GenericClass},+
"", $(MAXIMUM_ALLOWED), "",hAdapter
Shell "utility.inf", AddValueList, $(hAdapter), $(NewValueList)
CloseRegKey $(hAdapter)
EndForListDo
Else
ForListDo $(AdapterList)
Set NewAdapterName = $($)
Debug-Output "PcmciaUpdateDataBase NewAdapterName: "$(NewAdapterName)
ForListDo $(KeyList)
Set OldAdapterName = *($($),1)
Debug-Output " PcmciaUpdateDataBase OldAdapterName: "$(OldAdapterName)
IfStr(i) $(OldAdapterName) == $(NewAdapterName)
Debug-Output "PcmciaUpdateDataBase Adapter already installed"
OpenRegKey $(!REG_H_LOCAL), "", $(NewAdapterName), $(MAXIMUM_ALLOWED), hAdapter
Else
Debug-Output "PcmciaUpdateDataBase Create the Key "$(NewApterName)
CreateRegKey $(hManufacturer) {$(NewAdapterName), 0, GenericClass},+
"", $(MAXIMUM_ALLOWED), "",hAdapter
EndIf
Shell "utility.inf", AddValueList, $(hAdapter), $(NewValueList)
CloseRegKey $(hAdapter)
EndForListDo
EndForListDo
EndIf
CloseRegKey $(hManufacturer)
CloseRegKey $(hDataBase)
Set Status = STATUS_SUCCESSFUL
Else
Set Status = STATUS_FAILED
EndIf
Debug-Output "PcmciaUpdateDataBase >"
Return $(Status)
Exit
;***************************************************************************
;
; S e t D e f a u l t P a r a m s
;
; Input: $($0) Option
;
; Output: $($R0) Status yes - configure by install
; no - don't configure by install
;
;------------------------------------------------------------------------
[SetDefaultParams]
Debug-Output "SetDefaultParams >"
; save callerparameter
Set Option = $(S0)
; init returnvalues
Set Status = yes
; print callerparameter
Set Option = $(S0)
Debug-Output "SetDefaultParams *"
Return $(Status)
Exit
[GetTempDir]
Set !DebugOutputControl = 1
Debug-Output "GetTempDir >"
Set DummyDir = "c:\kuddelmuddel"
CreateDir $(DummyDir)
Set !DebugOutputControl = 1
Debug-Output "GetTempDir !STF_SRCDIR_KEYED "$(!STF_SRCDIR_KEYED)
Debug-Output "GetTempDir !STF_SRCDIR_USED "$(!STF_SRCDIR_USED)
Debug-Output "GetTempDir !STF_SRCDIR_OVERRIDE "$(!STF_SRCDIR_OVERRIDE)
Debug-Output "GetTempDir !STF_SRCDIR "$(!STF_SRCDIR)
;AddSectionFilesToCopyList AllFiles $(!STF_SRCDIR) $(DummyDir)
;Set !STF_NCPA_FLUSH_COPYLIST = TRUE
;CopyFilesInCopyList
Debug-Output "GetTempDir *"
Exit
;***************************************************************************
;
; InstallLanguageSupported
;
; Input: -
;
; Output: $($R0) Status
; $($R1) Language
;------------------------------------------------------------------------
[InstallLanguageSupported]
Set !DebugOutputControl = 1
Debug-Output "InstallLanguageSupported >"
Set Status = STATUS_SUCCESSFUL
Read-Syms GeneralConstants
; bestimme die reginalsettings
OpenRegKey $(!REG_H_CUSER) "" $(LocationsPath) $(MAXIMUM_ALLOWED) hRegion
Set Language = "ENG"
IfStr(i) $(RegLastError) == $(!REG_ERROR_SUCCESS)
GetRegValue $(hRegion), "sLanguage", Lang
CloseRegKey $(hRegion)
IfStr(i) $(RegLastError) == $(!REG_ERROR_SUCCESS)
Set Lang = *($(Lang),4)
Set Language = *(^(LanguageConstants,2),~(^(LanguageConstants,1),$(Lang)))
IfStr(i) $(Language) == ""
Set Language = "ENG"
EndIf
EndIf
EndIf
Debug-Output "InstallLanguageSupported Language "$(Language)
Debug-Output "InstallLanguageSupported *"
Return $(Status) $(Language)
Exit
[LanguageConstants]
ENG, ENG
DEU, GER
ENU, ENG
FRA, FRA
ITA, ITA
; #####################################################################
;***************************************************************************
; allgemeine Installations-Informationen
;
;---------------------------------------------------------------------------
;
; Identifikation Parameter
;___________________________________________________________________________
[Identification]
OptionType = NetAdapter
[Source Media Descriptions]
1 = "Sedlbauer-AG ISDN Adapter Setup Disk"
;---------------------------------------------------------------------------
;
; ReturnOptions Parameter
;___________________________________________________________________________
[LanguagesSupported]
GER
ENG
ITA
FRA
[PlatformsSupported]
ISA
[Options]
Ndis
Star
Starii
[OptionsText]
Ndis = *(^($(OEM),$(OtIo)),~(^($(OEM),$(OtO)),Ndis))
Star = *(^($(OEM),$(OtIo)),~(^($(OEM),$(OtO)),Star))
Starii = *(^($(OEM),$(OtIo)),~(^($(OEM),$(OtO)),Starii))
[Date]
Now = {} ? $(!LIBHANDLE) GetSystemDate
;---------------------------------------------------------------------------
;
; Konvertierung Parameter
;___________________________________________________________________________
[LptStrings]
LPT1, 0
LPT2, 1
LPT3, 2
LPT4, 3
[InterruptStrings]
IRQ_1, 1
IRQ_2, 2
IRQ_3, 3
IRQ_4, 4
IRQ_5, 5
IRQ_6, 6
IRQ_7, 7
IRQ_8, 8
IRQ_9, 9
IRQ_10, 10
IRQ_11, 11
IRQ_12, 12
IRQ_13, 13
IRQ_14, 14
IRQ_15, 15
[BusTypes]
ISA, 1
PCI, 5
PCMCIA, 1
;---------------------------------------------------------------------------
;
; InstallOptions Parameter
;___________________________________________________________________________
[Manufacturer 1]
;Option - RealOption, - ServiceGroup - DialogCaption - Tab1Title - Tab2Title - InstallOptionText - ProductSoftwareName - ProductSoftwareDescription - ProductSoftwareTitle - ServiceDisplayName - NetRuleAdapter - ProductHardwareDescription - ProductHardwareName - ProductHardwareTitle
Ndis, {Ndis}, NDIS, #(SetupText$(Language), NdisDialogCaption, 1), Ports, NdisWan, #(SetupText$(Language), NdisInstallOptionText, 1), "CardNdisWan", $(Manufacturer)" NDIS WAN Miniportdriver", $(Manufacturer)" NDIS WAN Miniportdriver", $(Manufacturer)" NDIS WAN", "Driver", $(Manufacturer)" NDIS WAN Miniportdriver", SpeedNdisWan, $(Manufacturer)" NDIS WAN Miniportdriver"
Star, {Star}, CAPI20, #(SetupText$(Language), StarDialogCaption, 1), Ports, NdisWan, #(SetupText$(Language), StarInstallOptionText, 1), "PC-Card", $(Manufacturer)" PCMCIA ISDN-Adapter PC-Card", $(Manufacturer)" PC-Card", $(Manufacturer)" PC-Card", "Adapter", $(Manufacturer)" PC-Card", $(Manufacturer)" PC-Card", $(Manufacturer)" ISDN-Adapter PC-Card"
Starii, {Starii}, CAPI20, #(SetupText$(Language), StariiDialogCaption, 1), Ports, NdisWan, #(SetupText$(Language), StariiInstallOptionText, 1), "PC-Card II", $(Manufacturer)" PCMCIA ISDN-Adapter PC-Card II", $(Manufacturer)" PC-Card II", $(Manufacturer)" PC-Card II", "Adapter", $(Manufacturer)" PC-Card II", $(Manufacturer)" PC-Card II", $(Manufacturer)" ISDN-Adapter PC-Card II"
[HardWare]
;Option - AdpId - Support - PnpId - Controller - Channels - PortChoose - IrqChoose - PortDefault - IrqDefault - BusType - BusNumber
Star, 0, "Pcmcia", "", 1, {2}, {Range, 0x100, 0x008, 0x3ff}, {List, IRQ_3, IRQ_4, IRQ_5, IRQ_7, IRQ_9, IRQ_10, IRQ_11, IRQ_12, IRQ_15}, 0x270, IRQ_5, PCMCIA, 0
Starii, 0, "Pcmcia", "", 1, {2}, {Range, 0x100, 0x008, 0x3ff}, {List, IRQ_3, IRQ_4, IRQ_5, IRQ_7, IRQ_9, IRQ_10, IRQ_11, IRQ_12, IRQ_15}, 0x270, IRQ_5, PCMCIA, 0
[GeneralConstants]
; Optionen RegistryPaths und Rechte
; Hardware Options
HwO = 1
HwAId = 2
HwSup = 3
HwPId = 4
HwCo = 5
HwCh = 6
HwPc = 7
HwIc = 8
HwDp = 9
HwDi = 10
HwDBu = 11
HwDNu = 12
;Manufacturer Options
OtO = 1
OtNeO = 2
OtSGr = 3
OtDCa = 4
OtDT1 = 5
OtDT2 = 6
OtIo = 7
OtPsn = 8
OtPsd = 9
OtPst = 10
OtSdn = 11
OtNrA = 12
OtPhd = 13
OtPhn = 14
OtPht = 15
; Paths
LocationsPath = "Control Panel\International"
ServiceGroupOrderPath = "SYSTEM\CurrentControlSet\Control\ServiceGroupOrder"
ServicesPath = "SYSTEM\CurrentControlSet\Services"
NetworkCardsPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards"
SoftwarePath = "SOFTWARE"
DeviceMapPath = "HARDWARE\DEVICEMAP"
TapiDevicesPath = "TAPI DEVICES"
RasTapiDevicesPath = "SOFTWARE\Microsoft\RAS\"$(TapiDevicesPath)
Capi20Path = $(SoftwarePath)"\CAPI20"
PcmciaDataBasePath = $(ServicesPath)"\Pcmcia\DataBase"
KeyNull = ""
; Rights
MAXIMUM_ALLOWED = 33554432
[DialogConstants]
DlgCaption = *(^($(OEM),$(OtDCa)),~(^($(OEM),$(OtO)),$(Option)))
Tab1Title = *(^($(OEM),$(OtDT1)),~(^($(OEM),$(OtO)),$(Option)))
Tab2Title = *(^($(OEM),$(OtDT2)),~(^($(OEM),$(OtO)),$(Option)))
[ProductConstants]
; allgemeine Informationen
; ------------------------
Manufacturer = "SCM"
OEM = "Manufacturer 1"
ProductSoftwareName = *(^($(OEM),$(OtPsn)),~(^($(OEM),$(OtO)),$(Option)))
ProductSoftwareNamePath = $(SoftwarePath)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
; allgemeine DateiVerzeichnispfade
; --------------------------------
DriverDir = $(!STF_WINDOWSPATH)"\System32\Drivers"
System32Dir = $(!STF_WINDOWSPATH)"\System32"
SystemDir = $(!STF_WINDOWSPATH)"\System"
; CurrentDriver
; -------------
Driver = ~(^(FilesBinaries, 1),$(Option))
DriverName = *(^(FilesBinaries, 2),~(^(FilesBinaries, 1), $(Option)))
DriverReName = *(^(FilesBinaries, 4),~(^(FilesBinaries, 1), $(Option)))
DriverSize = *(^(FilesBinaries, 3),~(^(FilesBinaries, 1), $(Option)))
; ErrorLogging
; ------------
ErrorLogging = "%SystemRoot%\System32\Drivers\"$(DriverReName)
; Software\..\CurrentVersion
; -----------------------------------
ProductSoftwareDescription = *(^($(OEM),$(OtPsd)),~(^($(OEM),$(OtO)),$(Option)))
ProductVersion = {1,29}
ServiceName = $(ProductSoftwareName) ; wird durch AddSoftware festgelegt
SoftwareType = "driver"
ProductSoftwareTitle = *(^($(OEM),$(OtPst)),~(^($(OEM),$(OtO)),$(Option)))
; Services\$(ServiceName)
; -----------------------
ServiceDisplayName = *(^($(OEM),$(OtSdn)),~(^($(OEM),$(OtO)),$(Option)))
DriverImagePath = "%SystemRoot%\System32\Drivers\"$(DriverReName)
ServiceGroup = *(^($(OEM),$(OtSGr)),~(^($(OEM),$(OtO)),$(Option)))
; Software\..\CurrentVersion\Netrules
; -----------------------------------
NetRuleAdapter = *(^($(OEM),$(OtNrA)),~(^($(OEM),$(OtO)),$(Option)))
BindableTxt = {$(ServiceName)"Driver "$(ServiceName)$(NetRuleAdapter)" non exclusive 100"}
NetRuleSoftwareBindForm = """"$(ServiceName)Sys""" yes no container"
NetRuleSoftwareClass = {$(ServiceName)"Driver basic"}
NetRuleSoftwareType = $(ServiceName)"Sys "$(ServiceName)"Driver"
NetRuleSoftwareUse = $(SoftwareType)
; Service Namen, Anzeigetexte
; ---------------------------
; später entfernen
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"+
$(ProductSoftwareName)"\CurrentVersion"
; Software\..\NetworkCards\n\
; ---------------------------
ProductHardwareDescription = *(^($(OEM),$(OtPhd)),~(^($(OEM),$(OtO)),$(Option)))
ProductHardwareName = *(^($(OEM),$(OtPhn)),~(^($(OEM),$(OtO)),$(Option)))
ProductHardwareTitle = *(^($(OEM),$(OtPht)),~(^($(OEM),$(OtO)),$(Option)))
; Software\..\NetworkCards\n\NetRules\
; ------------------------------------
NetRuleHardwareBindForm = " yes yes container"
NetRuleHardwareClass = {$(ServiceName)$(NetRuleAdapter)" basic"}
NetRuleHardwareType = $(ServiceName)" "$(ServiceName)$(NetRuleAdapter)
; Services\...n\Parameters\
;-------------------------
; --> others
AdapterId = *(^(HardWare ,$(HwAId)),~(^(HardWare ,$(HwO)), $(Option)))
BusName = *(^(HardWare ,$(HwDBu)),~(^(HardWare ,$(HwO)), $(Option)))
BusNumber = *(^(HardWare ,$(HwDNu)),~(^(HardWare ,$(HwO)), $(Option)))
BusType = *(^(BusTypes ,2),~(^(BusTypes ,1), $(BusName)))
MediaType = "ISDN"
InterruptNumber = *(^(HardWare,$(HwDi)),~(^(HardWare,$(HwO)),$(Option)))
IoBaseAddress = *(^(HardWare,$(HwDp)),~(^(HardWare,$(HwO)),$(Option)))
; --> Ndis
AddressList = {" 1 0", " 2 0"}
LineType = 1
MSNL0_Value = ""
MSNL1_Value = ""
MiscParam0_Value = "0"
MiscParam1_Value = "0"
; PnpService Namen, Anzeigetexte
; ------------------------------
PnpVendorId = *(^(HardWare,$(HwPId)),~(^(HardWare,$(HwO)),$(Option)))
PnpDriverName = *(^(FilesBinaries, 2),~(^(FilesBinaries, 1), Pnp))
PnpDriverReName = *(^(FilesBinaries, 4),~(^(FilesBinaries, 1), Pnp))
PnpDriverSize = *(^(FilesBinaries, 3),~(^(FilesBinaries, 1), Pnp))
PnpMapping = {"Irq","Port"}
PnpParams = {"InterruptNumber","IoBaseAddress"}
; Services\$(PnpServiceName)
;---------------------------
PnpServiceName = *(^($(OEM),$(OtPsn)),~(^($(OEM),$(OtO)),Pnp))
PnpServiceDisplayName = *(^($(OEM),$(OtSdn)),~(^($(OEM),$(OtO)),Pnp))
PnpDriverImagePath = "%SystemRoot%\System32\Drivers\"$(PnpDriverReName)
PnpServiceGroup = *(^($(OEM),$(OtSGr)),~(^($(OEM),$(OtO)),Pnp))
DeviceName = "CapiCfg"
; Pcmcia-Cards
; ------------
PcmciaAdapterNames = {"ISDN-Adapter", +
"ISDN-Adapter II"}
Pcmcia = 1
IoLength = 8
; übrige dateinamen
; -----------------
HelpFileName = *(^(FilesBinaries, 2),~(^(FilesBinaries, 1), Hlp))
HelpFileReName = *(^(FilesBinaries, 4),~(^(FilesBinaries, 1), Hlp))
HelpFileSize = *(^(FilesBinaries, 3),~(^(FilesBinaries, 1), Hlp))
ConfigFileName = *(^(FilesBinaries, 2),~(^(FilesBinaries, 1), Cfg))
ConfigFileReName = *(^(FilesBinaries, 4),~(^(FilesBinaries, 1), Cfg))
ConfigFileSize = *(^(FilesBinaries, 3),~(^(FilesBinaries, 1), Cfg))
Capi20Name = *(^(FilesBinaries, 2),~(^(FilesBinaries, 1), C20))
Capi20ReName = *(^(FilesBinaries, 4),~(^(FilesBinaries, 1), C20))
Capi20Size = *(^(FilesBinaries, 3),~(^(FilesBinaries, 1), C20))
Capi2032Name = *(^(FilesBinaries, 2),~(^(FilesBinaries, 1), C32))
Capi2032ReName = *(^(FilesBinaries, 4),~(^(FilesBinaries, 1), C32))
Capi2032Size = *(^(FilesBinaries, 3),~(^(FilesBinaries, 1), C32))
;***********************************************************************
; F i l e s S e c t i o n
;
;***********************************************************************
; FileNames für die Driver
;***********************************************************************
[FilesBinaries]
Box, scbe.sys, 262000, scbe.sys
Card, scwe.sys, 262000, scwe.sys
Fax, scfe.sys, 262000, scfe.sys
Pc104, scie.sys, 262000, scie.sys
Ndis, sedlw.sys, 262000, sedlw.sys
Pnp, scwd.sys, 262000, scwd.sys
Star, scpe.sys, 262000, scpe.sys
Starii, scpiie.sys, 262000, scpiie.sys
Win, scwe.sys, 262000, scwe.sys
WinPci, scwpe.sys, 262000, scwpe.sys
Hlp, sc.hlp, 262000, sc.hlp
Cfg, capicfg.dll, 262000, capicfg.dll
C20, capi20.dll, 262000, capi20.dll
C32, capi2032.dll, 262000, capi2032.dll
;***********************************************************************
; DriverBinaries
;***********************************************************************
[Files-Driver]
1, $(DriverName), SIZE=$(DriverSize), DECOMPRESS, RENAME=$(DriverReName)
[Files-PnP]
1, $(PnpDriverName), SIZE=$(PnpDriverSize), DECOMPRESS, RENAME=$(PnpDriverReName)
;***********************************************************************
; laufzeit und hilfe
;***********************************************************************
[Files-System32]
1, $(HelpFileName), SIZE=$(HelpFileSize), DECOMPRESS, RENAME=$(HelpFileReName)
1, $(ConfigFileName), SIZE=$(ConfigFileSize), DECOMPRESS, RENAME=$(ConfigFileReName)
;***********************************************************************
; laufzeit und hilfe
;***********************************************************************
[Files-Capi32]
1, $(Capi2032Name), SIZE=$(Capi2032Size), DECOMPRESS, RENAME=$(Capi2032ReName)
;***********************************************************************
; 16-Bit Umgebung
;***********************************************************************
[Files-Capi16]
1, $(Capi20Name), SIZE=$(Capi20Size), DECOMPRESS, RENAME=$(Capi20ReName)
;***********************************************************************
; SetupScript
;***********************************************************************
[Files-Oem]
1, oemsetup.inf, SIZE=31000, RENAME=$(OldInfName)
;***********************************************************************
; DialogTexte
;***********************************************************************
[SetupMessageGER]
OptionAlreadyInstalled = "Diese Produktoption wurde bereits installiert."
RecentlyRemoved = "Diese Netzwerkkomponente wurde gerade entfernt. Bitte führen Sie einen Neustart Ihres Computers durch und installieren Sie erneut."
PCIConfig = "PCI ISDN-Adapter werden vom Betriebssystem konfiguriert."
SetServiceGroupOrder = "Erzeuge die ServiceGroupOrder"
SetNewCapiDevice = "Erzeuge einen neuen Controller"
AddNewSoftware = "Installiere die neue Software"
AddNewNetworkCard = "Installiere die neue Netzwerkkarte"
InitNetworkCard = "Initialisiere den ISDN - Adapter"
CopyFiles = "Kopiere die Dateien"
PcmciaSupport = "Installiere den Pcmcia-Support"
ParallelPortSupport = "Installiere den Parallelport-Support"
PnpSupport = "Installiere den Pnp-Service"
NdisSupport = "Registriere die Tapi-Devices"
ConfigureAdapter = "Konfiguriere den ISDN - Adapter"
InstallationFailed = "Die Installation ist fehlgeschlagen. Es werden alle neu installierten Komponenten entfernt."
[SetupMessageENG]
OptionAlreadyInstalled = "This product option is already installed."
RecentlyRemoved = "This network component was recently removed. Please restart your computer."
PCIConfig = "PCI ISDN adapters will be configured by the operating system."
SetServiceGroupOrder = "Am setting the service group order"
SetNewCapiDevice = "Am setting a new controller"
AddNewSoftware = "Am installing the new software"
AddNewNetworkCard = "Am installing the new network card"
InitNetworkCard = "Am initializing the ISDN adapter"
CopyFiles = "Am copying the files"
PcmciaSupport = "Am installing the Pcmcia support"
ParallelPortSupport = "Am installing the parallel port support"
PnpSupport = "Am installing the Pnp service"
NdisSupport = "Am registering the Tapi devices"
ConfigureAdapter = "Am configuring the ISDN adapter"
InstallationFailed = "The installation has failed. All newly installed components will be removed."
[SetupMessageITA]
OptionAlreadyInstalled = "Questa opzione di prodotto è già stata installata."
RecentlyRemoved = "Questo componente di rete è stato appena disinstallato. Esegui un riavvio del computer."
PCIConfig = "Gli adattatori ISDN PCI vengono configurati dal sistema operativo."
SetServiceGroupOrder = "Crea il ServiceGroupOrder"
SetNewCapiDevice = "Crea un nuovo controllore"
AddNewSoftware = "Installa il nuovo software"
AddNewNetworkCard = "Installa la nuova carta di rete"
InitNetworkCard = "Inizializza l'adattatore ISDN"
CopyFiles = "Copia i file"
PcmciaSupport = "Installa il supporto Pcmcia"
ParallelPortSupport = "Installa il supporto porta parallela"
PnpSupport = "Installa il servizio Pnp"
NdisSupport = "Registra il dispositivo Tapi"
ConfigureAdapter = "Configura l'adattatore ISDN"
InstallationFailed = "L'installazione non è riuscita. Tutti i nuovi componenti vengono disinstallati."
[SetupMessageFRA]
OptionAlreadyInstalled = "Cette option de produit a déjà été installée"
RecentlyRemoved = "Ce composant de réseau vient d’être enlevé, veuillez effectuer un nouveau démarrage de votre ordinateur."
PCIConfig = "Les adaptateurs PCI ISDN sont configurés par le système d’exploitation"
SetServiceGroupOrder = "Crée le ServiceGroupOrder"
SetNewCapiDevice = "Crée un nouveau contrôleur"
AddNewSoftware = "Installe lenouveau logiciel"
AddNewNetworkCard = "Installe la nouvelle carte de réseau"
InitNetworkCard = "Initialise l’adaptateur ISDN"
CopyFiles = "Copie les fichiers"
PcmciaSupport = "Installe le support Pcmcia"
ParallelPortSupport = "Installe le support Parallelport"
PnpSupport = "Installe le service Pnp"
NdisSupport = "Enregistre les Tapi-Devices"
ConfigureAdapter = "Configure l’adaptateur ISDN"
InstallationFailed = "L’installation n’a pas réussi. Tous les composants nouvellement installés seront effacés."
; Optionsabhängige InstallationsTexte
; -----------------------------------
[SetupTextGER]
NdisInstallOptionText = $(Manufacturer)" NDIS WAN Miniportdriver"
StarInstallOptionText = $(Manufacturer)" PC-Card ISDN-Adapter"
StariiInstallOptionText = $(Manufacturer)" PC-Card II ISDN-Adapter"
NdisDialogCaption = $(Manufacturer)" NDIS WAN Miniportdriver Konfiguration"
StarDialogCaption = $(Manufacturer)" PC-Card ISDN-Adapter Konfiguration"
StariiDialogCaption = $(Manufacturer)" PC-Card II ISDN-Adapter Konfiguration"
[SetupTextENG]
NdisInstallOptionText = $(Manufacturer)" NDIS WAN Miniportdriver"
StarInstallOptionText = $(Manufacturer)" PC-Card ISDN-Adapter"
StariiInstallOptionText = $(Manufacturer)" PC-Card II ISDN-Adapter"
NdisDialogCaption = $(Manufacturer)" NDIS-WAN Miniport driver configuration"
StarDialogCaption = $(Manufacturer)" PC-Card ISDN-Adapter configuration"
StariiDialogCaption = $(Manufacturer)" PC-Card II ISDN-Adapter configuration"
[SetupTextITA]
NdisInstallOptionText = $(Manufacturer)" NDIS WAN Miniportdriver"
StarInstallOptionText = $(Manufacturer)" PC-Card ISDN-Adapter"
StariiInstallOptionText = $(Manufacturer)" PC-Card II ISDN-Adapter"
NdisDialogCaption = $(Manufacturer)" Configurazione del driver NDIS-WAN Miniport"
StarDialogCaption = $(Manufacturer)" Configurazione del PC-Card driver ISDN"
StariiDialogCaption = $(Manufacturer)" Configurazione del PC-Card II driver ISDN"
[SetupTextFRA]
NdisInstallOptionText = $(Manufacturer)" NDIS WAN Miniportdriver"
StarInstallOptionText = $(Manufacturer)" PC-Card ISDN-Adapter"
StariiInstallOptionText = $(Manufacturer)" PC-Card II ISDN-Adapter"
NdisDialogCaption = $(Manufacturer)" Configuration du driver Miniport NDIS WAN"
StarDialogCaption = $(Manufacturer)" Configuration de l´ adaptateur RNIS PC-Card"
StariiDialogCaption = $(Manufacturer)" Configuration de l´ adaptateur RNIS PC-Card II"
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.