Avatar billede gudmund_nielsen Nybegynder
11. januar 2004 - 14:12 Der er 50 kommentarer og
1 løsning

Installering af en Windows NT 4 BDC

Hej,
Jeg har brug for detaljeret at få at vide hvorledes man installerer en BDC i et kørende Windows NT 4 netværk. Ligeledes vil jeg gerne vide om man, udover replikering af brugerkonti, adgangskoder mv., også kan få replikeret andet software installeret på PDC'en over på BDC'en. Grunden til mine spsm. er at den gamle PDC skal udskiftes med en nyere maskine. BDC skal, hvis ovenstående kan lade sig gøre, bagefter "forfremmes" til PDC. Efterfølgende skal den gamgle PDC simpelthen tages væk fra nettet. Hvis du har en detaljeret vejledning om hvordan jeg skal gøre, lige fra installation af BDC'en til og med at den "forfremmes" til en PDC i det eksisterende netværk, vil jeg være meget taknemmelig.
Avatar billede arnholst Nybegynder
11. januar 2004 - 17:06 #1
Der er kun 1 forskel på at installere en PDC og en BDC, nemlig hvor du sætter krydset når den spørger dig efter hvad det er du gerne vil installere. Hvis du vælger PDC, så opretter den domænet, hvis du vælger BDC, så spørger den ud på netværket for at finde PDC'en for domænet for at få oplysningerne herfra.

Hvis du ønsker at de 2 servere bytter roller, går du ind med server manager på PDC'en vælger BDC'en og siger promote to PDC, herefter klarer NT jobbet for dig (det eneste den sådan set gør at at den siger at nu må du gerne skrive i SAM databasen på den gamle BDC)

Med hensyn til replikering af installeret software, så kan dette ikke lade sig gøre. Det eneste som NT 4 Domain controllere udveksler er som du selv siger SAM databasen og Netlogon, som bliver replikeret rundt.

Så du bliver nødt til at installere dit software en gang til.
Avatar billede gudmund_nielsen Nybegynder
11. januar 2004 - 17:24 #2
Ok, skal jeg ikke ind på PDC'en og oprette BDC'en i administrationen et eller andet sted før jeg installerer PDC'en. Ellers vil PDC'en vel ikke lade BDC'en få adgang til domænet som en BDC??? Jeg mener at jeg et eller andet sted har set at man kan lave en opsætning så directories mv. også bliver replikeret
PDC<->BDC. Er det noget du kender til???
Avatar billede gudmund_nielsen Nybegynder
11. januar 2004 - 17:24 #3
Jeg mener selvfølgelig før jeg installeret BDC'en, men det tror jeg du forstår.
Avatar billede arnholst Nybegynder
11. januar 2004 - 22:56 #4
nej, du behøver ikke lave noget på PDC'en, for du skal angive et domain admin password for at den kan melde sig ind i domænet.

pr. standard replikere den kun Netlogon, hvis den også skal replikere andre biblioteker skal der et 3rd part værktøj til, men du kan selvfølgelig komme biblioteker ned i netlogon, som så bliver replikeret.
Avatar billede gudmund_nielsen Nybegynder
12. januar 2004 - 15:28 #5
OK, tænkte nok det var sådan. Du er helt sikker på at der skal et tredje parts program til at replikere andre biblioteker? Hvor ligger server manager på PDC'en (under administration antager jeg?). Pointene er snart dine.
Avatar billede gudmund_nielsen Nybegynder
12. januar 2004 - 15:30 #6
Så vidt jeg ved skal begge servere også være på samme niveau, dvs. have installeret nøjagtig den samme servicepack for at det kan lade sig gøre ...
Avatar billede arnholst Nybegynder
12. januar 2004 - 22:27 #7
Server manager og User manager og alle de andre administrations programmer ligger som du selv siger samlet under administration.

Dine servere behøver ikke være på samme niveau, men det er bedst hvis de er, altså mht. servicepacks
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 13:08 #8
ok
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 13:09 #9
Tja
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 13:11 #10
arnholst jeg har brug for din hjælp, er du der???
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 19:11 #11
test
Avatar billede arnholst Nybegynder
14. januar 2004 - 22:04 #12
jeg er næsten aldrig på midt på dagen, det er bedst at fange mig om aftenen
Avatar billede lap Nybegynder
14. januar 2004 - 22:08 #13
jeg vil lige gøre opmærksom på et genialt værktøj - hvis din pdc også er printerserver.

Download printmig.exe fra microsoft - kør det fra bdc imod din pdc - "backup" alle printere - så fremstilles en .cab-fil, som indeholder alle printere - med drivere og hele skidtet.

Herefter laver du blot en "restore" på bdc ud fra .cab-filen - og vupti, så har du alle printere oprettet (med drivere og det hele).

Har brugt det til et ca. 200 printere uden problemer.
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:15 #14
Jeg kan ikke connecte til PDC'en når jeg kommer dertil i opsætningen. PDC'en kører TCP/IP og NetBIOS men ikke med fast IP nr. Alligevel virker arbejdsstationerne op mod PDC'en udmærket. Den har nr. 192.168.0.1 hvis jeg husker ret. Når jeg så angiver domænenavn og adminisrator navn og adgangskode til PDC i slutningen af setup kan der ikke connectes. Jeg ved ikke hvad der er galt. HJÆLP.
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:16 #15
arnholst er du der? har du en mailadresse? evt. et tlf.nr. Vil du sende det til guni@hotmail.com tak
Avatar billede lap Nybegynder
14. januar 2004 - 22:17 #16
kan du pinge din bdc fra din pdc? En server uden fast ip-adresse lyder risikabelt, men det vil da virke.
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:20 #17
Jeg ved ikke hvad der er galt. TCP/IP et sat op på PDC'en som om den skal hente IP.nr. fra en DHCP server. Udstyret er koblet på denne måde: alle de nuværende arbejdsstationer og PDC'en kører via BNC til HUB. HUB er forbundet med Cisco router til Internettet. Den nye BDC er koblet til HUB'en med et RJ45 stik. Hvad er der galt med det? Jeg forstår det simpelthen ikke, rent bortset fra at den måde nettet er sat op på for efterhånden en del år siden ikke er særligt smart synes jeg. Men det kan ikke lave om grundet en gammel version af Navision, så det skal kunne fungere på en eller anden måde.
Avatar billede lap Nybegynder
14. januar 2004 - 22:23 #18
kan du pinge din bdc fra din pdc?

Kablingen lyder ok, så det burde ikke være noget problem - hvis du ellers kan pinge - så test det.
Avatar billede lap Nybegynder
14. januar 2004 - 22:24 #19
dir problem kan nemlig være, at du ikke har et kørende netværk på din nye bdc
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:27 #20
jeg når jo aldrig så langt at jeg kan ping ... opsætningen er jo ikke færdig da det er en BDC der SKAL connect til PDC'en før opsætningen er færdig.
Avatar billede lap Nybegynder
14. januar 2004 - 22:28 #21
netværk SKAL være opsat på bdc inden du kan tilmelde BDC'en til domænet. Jeg tror ikke NT4 har dedekteret dit netkort - hvis jeg ikke tager meget fejl, så er den nye BDC er relativ ny maskine?
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:28 #22
Det eneste jeg kan se er nogle blink ude på HUB'en, så netkortet skulle være iorden. Andet og mer sker der ikke.
Avatar billede lap Nybegynder
14. januar 2004 - 22:29 #23
prøv at give fabrikat/model på den nye bdc
Avatar billede arnholst Nybegynder
14. januar 2004 - 22:29 #24
du får lige en mail også
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:30 #25
Du har ret i det med Ip.nr. Det er tåbeligt som det er lavet, MEN grundet Navision problemer er vi nødt til at køre videre med det bestående. Øvelsen går ud på at få en BDC op at stå og forfremme den til PDC så den gamle PDC kan tages ned.
Avatar billede lap Nybegynder
14. januar 2004 - 22:32 #26
Det er helt ok - jeg lever med DHCP-delen, så det graver vi ikke mere i. Hvis du ikke er blevet spurgt efter netværks setup - så er netkort med stor sansynlighed ikke fundet (NT4 er trods alt 10 år gammel)
Avatar billede arnholst Nybegynder
14. januar 2004 - 22:32 #27
de 2 maskiner står på samme netværkssegment, kan du fra PDC'en pinge BDC'en, så har BDC'en da fået en ip adresse og fået startet netkortet
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:32 #28
Netkortet er indbygget på bundkortet og det er et VIA823x Ethernet.
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:33 #29
Nej netkortet blev ikke fundet men efter en del besvær fik jeg driveren installeret fra cd-rom'en der fulgte med.
Avatar billede lap Nybegynder
14. januar 2004 - 22:34 #30
Nogle blik på hub'en indikerer alene, at der er trafik på netværket - det siger intet om, at der er trafik på de rigtige ben. Der er jo en hub (med bnc), så der sendes på alle ben ved trafik.
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:35 #31
Her er oem filen der anvendes:

;
;  Purpose:  Netcard setup information file for Windows NT 3.51 / NT 4.0
;
;  Author:    Tevin Chen
;
;  Date:      Oct, 2002
;

[Identification]
    OptionType = NetAdapter
[PlatformsSupported]
    PCI
[Options]
    FET

;============================================================================
[FileConstants]
UtilityInf      = "UTILITY.INF"
subroutineinf  = "SUBROUTN.INF"
SoftwareType    = "driver"
Exit_Code      = 0
NetEventDLL    = "%SystemRoot%\System32\netevent.dll"
IoLogMsgDLL    = "%SystemRoot%\System32\IoLogMsg.dll"
Manufacturer    = "VIA Technologies, Inc."

; Driver Version info
; VERSION.... 3.13
ProductMajorVersion = "3"
ProductMinorVersion = "13"
ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)

; DEVICE_ID....
; (0x1106 == 4358)
VendorID = 4358

ProductSoftwareName    = "FETNDIS"
ProductSoftwareTitle    = "VIA Rhine Family Fast Ethernet Adapter Driver"
NT4Driver = "fetnd4.sys"
NT351Driver = "fetnd3.sys"
ProductSoftwareImagePathNT4 = "\SystemRoot\System32\drivers\"$(NT4Driver)
ProductSoftwareImagePathNT351 = "\SystemRoot\System32\drivers\"$(NT351Driver)
NetRuleSoftwareType    = "FETSys ndisDriver FETDriver"
NetRuleSoftwareUse      = $(SoftwareType)
NetRuleSoftwareBindForm = """FETSys"" yes no container"
NetRuleSoftwareClass    = {"FETDriver basic"}
NetRuleSoftwareSWBindable = {"FETDriver FETAdapter non exclusive 100"}

HelpFileName = "fetndh.hlp"
ProductHardwareName = "FETNDIS"

ProductHardwareFETVT3106STitle = "VIA VT6105M Rhine III Management Adapter"
ProductHardwareFETVT3106JTitle = "VIA VT6105 Rhine III Fast Ethernet Adapter"
ProductHardwareFETVT3065Title = "VIA Rhine II Fast Ethernet Adapter"
ProductHardwareFETVT3043Title = "VIA VT86C100A Rhine Fast Ethernet Adapter"
ProductHardwareFETDescription = "VIA Rhine Family Fast Ethernet Adapter"

NetRuleHardwareFETType  = "FET FETAdapter"
NetRuleHardwareFETClass = {"FETAdapter basic"}
AdapterFETType = 5  ;; PCI board
HelpFETId = 30
; DEVICE_ID....
; VT3043 (0x30431106 == 809701638)
VT3043CFID = 809701638

; VT3065 (0x30651106 == 811929862)
VT3065CFID = 811929862

; VT3106S (0x30531106 == 810750214)
VT3106SCFID = 810750214

; VT3106J (0x31061106 == 822481158)
VT3106JCFID = 822481158

; SubID....
; VT3106S (0x01061106 == 17174790 )
;VT3106SSubID = 17174790

; VT3106J (0x01051106 == 17109254 )
;VT3106JSubID = 17109254

; VT3065 (0x01021106 == 16912646)
;VT3065SubID = 16912646

; VT3043 (0x01001106 == 16781574)
;VT3043SubID = 16781574

NetRuleHardwareBindForm = " yes yes container"
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
;ParamKeyName  = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"

VT3106SDefaultParamList = { {ReceiveBuffers,$(NoTitle),$(!REG_VT_DWORD),64},+
                            {TransmitBuffers,$(NoTitle),$(!REG_VT_DWORD),64},+
                            {ReceiveBurstIndicate,$(NoTitle),$(!REG_VT_DWORD),64},+
                            {ReceiveThreshold,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {TransmitThreshold,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {BurstLength,$(NoTitle),$(!REG_VT_DWORD),1},+
                            {MapRegisters,$(NoTitle),$(!REG_VT_DWORD),32},+
                            {EarlyReceive,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {EarlyTransmit,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {ValidatePacketLen,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),"000000000000"},+
                            {ConnectionType,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {NwayForce,$(NoTitle),$(!REG_VT_DWORD),1},+
                            {FlowCtrl,&(NoTitle),$(!REG_VT_DWORD),0},+
                            {8021pqtag,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {VLANID,$(NoTitle),$(!REG_VT_DWORD),0} }

VT3106JDefaultParamList = { {ReceiveBuffers,$(NoTitle),$(!REG_VT_DWORD),64},+
                            {TransmitBuffers,$(NoTitle),$(!REG_VT_DWORD),64},+
                            {ReceiveBurstIndicate,$(NoTitle),$(!REG_VT_DWORD),64},+
                            {ReceiveThreshold,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {TransmitThreshold,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {BurstLength,$(NoTitle),$(!REG_VT_DWORD),1},+
                            {MapRegisters,$(NoTitle),$(!REG_VT_DWORD),32},+
                            {EarlyReceive,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {EarlyTransmit,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {ValidatePacketLen,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),"000000000000"},+
                            {ConnectionType,$(NoTitle),$(!REG_VT_DWORD),0},+
                            {NwayForce,$(NoTitle),$(!REG_VT_DWORD),1},+
                            {FlowCtrl,&(NoTitle),$(!REG_VT_DWORD),0} }

VT3065DefaultParamList = { {ReceiveBuffers,$(NoTitle),$(!REG_VT_DWORD),64},+
                          {TransmitBuffers,$(NoTitle),$(!REG_VT_DWORD),64},+
                          {ReceiveBurstIndicate,$(NoTitle),$(!REG_VT_DWORD),64},+
                          {ReceiveThreshold,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {TransmitThreshold,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {BurstLength,$(NoTitle),$(!REG_VT_DWORD),1},+
                          {MapRegisters,$(NoTitle),$(!REG_VT_DWORD),32},+
                          {EarlyReceive,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {EarlyTransmit,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {ValidatePacketLen,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),"000000000000"},+
                          {ConnectionType,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {NwayForce,$(NoTitle),$(!REG_VT_DWORD),1},+
                          {HWPhyReset,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {FlowCtrl,&(NoTitle),$(!REG_VT_DWORD),0} }

VT3043DefaultParamList = { {ReceiveBuffers,$(NoTitle),$(!REG_VT_DWORD),64},+
                          {TransmitBuffers,$(NoTitle),$(!REG_VT_DWORD),8},+
                          {ReceiveBurstIndicate,$(NoTitle),$(!REG_VT_DWORD),64},+
                          {ReceiveThreshold,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {TransmitThreshold,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {BurstLength,$(NoTitle),$(!REG_VT_DWORD),1},+
                          {MapRegisters,$(NoTitle),$(!REG_VT_DWORD),8},+
                          {EarlyReceive,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {EarlyTransmit,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {ValidatePacketLen,$(NoTitle),$(!REG_VT_DWORD),0},+
                          {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),"000000000000"},+
                          {ConnectionType, $(NoTitle),$(!REG_VT_DWORD),0} }

ConnectionTypeParamList = { {Type,$(NoTitle),$(!REG_VT_SZ),"enum"},+
                            {ParamDesc,$(NoTitle),$(!REG_VT_SZ),"Connection Type"} }
ConnectionTypeEnumList = { {0,$(NoTitle),$(!REG_VT_SZ),"Auto-Negotiation"},+
                          {1,$(NoTitle),$(!REG_VT_SZ),"100BaseTx Half Duplex"},+
                          {2,$(NoTitle),$(!REG_VT_SZ),"100BaseTx Full Duplex"},+
                          {3,$(NoTitle),$(!REG_VT_SZ),"10BaseT  Half Duplex"},+
                          {4,$(NoTitle),$(!REG_VT_SZ),"10BaseT  Full Duplex"} }

NetworkAddressParamList = { {Type,$(NoTitle),$(!REG_VT_SZ),"edit"},+
                            {ParamDesc,$(NoTitle),$(!REG_VT_SZ),"Network Address"},+
                            {LimitText,$(NoTitle),$(!REG_VT_DWORD),12},+
                            {Optional,$(NoTitle),$(!REG_VT_DWORD),0} }

TransmitBuffersParamList = { {Type,$(NoTitle),$(!REG_VT_SZ),"int"},+
                            {ParamDesc,$(NoTitle),$(!REG_VT_SZ),"Transmit Buffers"},+
                            {Max,$(NoTitle),$(!REG_VT_DWORD),128},+
                            {Min,$(NoTitle),$(!REG_VT_DWORD),48} }

VT3043TransmitBuffersParamList = { {Type,$(NoTitle),$(!REG_VT_SZ),"int"},+
                                  {ParamDesc,$(NoTitle),$(!REG_VT_SZ),"Transmit Buffers"},+
                                  {Max,$(NoTitle),$(!REG_VT_DWORD),64},+
                                  {Min,$(NoTitle),$(!REG_VT_DWORD),4} }

ReceiveBuffersParamList = { {Type,$(NoTitle),$(!REG_VT_SZ),"int"},+
                            {ParamDesc,$(NoTitle),$(!REG_VT_SZ),"Receive Buffers"},+
                            {Max,$(NoTitle),$(!REG_VT_DWORD),128},+
                            {Min,$(NoTitle),$(!REG_VT_DWORD),64} }

FlowCtrlParamList = { {Type,$(NoTitle),$(!REG_VT_SZ),"enum"},+
                      {ParamDesc,$(NoTitle),$(!REG_VT_SZ),"Flow Control"} }
FlowCtrlEnumList = { {0,$(NoTitle),$(!REG_VT_SZ),"Hardware Default"},+
                    {1,$(NoTitle),$(!REG_VT_SZ),"Disabled"},+
                    {2,$(NoTitle),$(!REG_VT_SZ),"Enabled"} }

8021pqtagParamList = { {Type,$(NoTitle),$(!REG_VT_SZ),"enum"},+
                      {ParamDesc,$(NoTitle),$(!REG_VT_SZ),"802.1p/Q Tagging"} }
DisableEnableEnumList = { {0,$(NoTitle),$(!REG_VT_SZ),"Disabled"},+
                          {1,$(NoTitle),$(!REG_VT_SZ),"Enabled"} }

VLANIDParamList = { {Type,$(NoTitle),$(!REG_VT_SZ),"int"},+
                    {ParamDesc,$(NoTitle),$(!REG_VT_SZ),"VLAN ID"},+
                    {Max,$(NoTitle),$(!REG_VT_DWORD),4094},+
                    {Min,$(NoTitle),$(!REG_VT_DWORD),0} }

;============================================================================
[GeneralConstants]
Sub  = ""
from = ""
to  = ""
ExitCodeOk    = 0
ExitCodeCancel = 1
ExitCodeFatal  = 2
KeyNull        = ""
MAXIMUM_ALLOWED = 33554432
RegistryErrorIndex = NO_ERROR
KeyProduct      = ""
KeyParameters  = ""
TRUE            = 1
FALSE          = 0
NoTitle        = 0
ExitState      = "Active"
OldVersionExisted = $(FALSE)
DriverPath      = $(!STF_NTPATH)\drivers

NT351Version = "3.51"
NT40Version = "4.0"

;============================================================================
[date]
    Now = {} ? $(!LIBHANDLE) GetSystemDate

;============================================================================
[Identify]
    read-syms Identification
    set Status = STATUS_SUCCESSFUL
    set Identifier = $(OptionType)
    set Media = #("Source Media Descriptions", 1, 1)
    Return $(Status) $(Identifier) $(Media)

;============================================================================
[ReturnOptions]
    set Status = STATUS_FAILED
    set OptionList = {}
    set OptionTextList = {}

    set LanguageList = ^(LanguagesSupported, 1)
    Ifcontains(i) $($0) in $(LanguageList)
        ifstr(i) $($1) == ""
            goto returnoptions
        endif

        set PlatformList = ^(PlatformsSupported, 1)
        Ifcontains(i) $($1) in $(PlatformList)
            goto returnoptions
        else
            set Status = STATUS_NOTSUPPORTED
            goto finish_ReturnOptions
        endif
    else
        set Status = STATUS_NOLANGUAGE
        goto finish_ReturnOptions
    endif

;----------------------------------------------------------------------------
returnoptions = +
    set OptionList = ^(Options, 1)
    set OptionTextList = ^(OptionsText$($0), 1)
    set Status = STATUS_SUCCESSFUL

;----------------------------------------------------------------------------
finish_ReturnOptions = +
    Return $(Status) $(OptionList) $(OptionTextList)

;============================================================================
[InstallOption]
    set Option  = $($1)
    set SrcDir  = $($2)
    set AddCopy  = $($3)
    set DoCopy  = $($4)
    set DoConfig = $($5)

    set LanguageList = ^(LanguagesSupported, 1)
    Ifcontains(i) $($0) NOT-IN $(LanguageList)
        Return STATUS_NOLANGUAGE
    endif

    set-subst LF = "\n"
    read-syms GeneralConstants
    read-syms FileConstants
    set NetRuleSoftwareBindable = $($R1)
    read-syms DialogConstants$(!STF_LANGUAGE)

    ifstr(i) $(!NTN_Origination) == "NCPA"
        set Continue = "OK"
    endif

    read-syms FileConstants$(!STF_LANGUAGE)
    detect date
    set-title  $(Function$(Option)Title)
    set to  = Begin
    set from = Begin
    set CommonStatus = STATUS_SUCCESSFUL
    EndWait

;----------------------------------------------------------------------------
Begin = +

    ; Get the version of NT from registry (for NT3.51/NT4.0)
    set CurrentVersionValue = ""
    OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion" $(!REG_KEY_READ) KeyNt
    ifstr(i) $(KeyNt) != ""
        GetRegValue $(KeyNt) "CurrentVersion" CurrentVersionValue
        CloseRegKey $(KeyNt)
    endif

    set TargetVersion = *($(CurrentVersionValue),4)
    set TargetOS = ""
    ifstr $(TargetVersion) == $(NT351Version)
        set TargetOS = "NT351"
    else-ifstr $(TargetVersion) == $(NT40Version)
        set TargetOS = "NT4"
    else
        set Error = "This driver does not support Windows NT version "*($(CurrentVersionValue),4)" !"
        goto fatal
    endif

    Ifstr(i) $(!NTN_InstallMode) == deinstall
        set StartLabel = removeadapter
    Else-Ifstr(i) $(!NTN_InstallMode) == Update
        set StartLabel = UpgradeSoftware
    Else-Ifstr(i) $(!NTN_InstallMode) == bind
        set StartLabel = bindingadapter
    Else-Ifstr(i) $(!NTN_InstallMode) == configure
        Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
            Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
            Ifint $($ShellCode) != $(!SHELL_CODE_OK)
                goto ShellCodeError
            Endif

            set Error = $($R0)
            set from = end
            set to = end
            goto nonfatalinfo
        Else
            set StartLabel = configureadapter
        Endif
    Else
        set StartLabel = installadapter
        set OEM_ABANDON_OPTIONS = {}
        set OEM_ABANDON_SOFTWARE = FALSE
        set OEM_ABANDON_ON = TRUE
    Endif

    set from = $(fatal)
    set to = $(fatal)
    goto $(StartLabel)
;----------------------------------------------------------------------------
installadapter = +

    OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
    Ifstr $(KeyProduct) != $(KeyNull)
        CloseRegKey $(KeyProduct)
        Ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
            Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle), $(ProductVersion)
            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                goto ShellCodeError
            endif
            goto end
        Else
            Shell $(UtilityInf), CardExistedDlg
            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                goto ShellCodeError
            endif

            ifstr(i) $($R1) != "OK"
                set CommonStatus = STATUS_USERCANCEL
                goto end
            endif
            set OldVersionExisted = $(TRUE)
        Endif
    Endif

    ifstr(i) $(DoCopy) == "YES"
        Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
        Ifint $($ShellCode) != $(!SHELL_CODE_OK)
            Goto ShellCodeError
        Else-Ifstr(i) $($R0) == STATUS_FAILED
            Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                goto ShellCodeError
            endif

            set Error = $($R0)
            Goto fatal
        Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
            Goto successful
        Endif
       
        Set SrcDir = $($R1)
    endif

    Goto installproduct
;----------------------------------------------------------------------------
configureadapter = +

    Ifstr(i) $(KeyProduct) == $(KeyNull)
        OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
        Ifstr $(KeyProduct) == $(KeyNull)
            Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
            Goto fatalregistry
        Endif
    Endif

    Shell $(UtilityInf) FindService, $(KeyProduct)
    Ifint $($ShellCode) != $(!SHELL_CODE_OK)
        Goto ShellCodeError
    Endif

    Ifstr(i) $($R0) != NO_ERROR
        Goto fatalregistry
    endif

    set KeyParameters = $($R2)
    CloseRegKey $($R1)

    Ifstr $(KeyParameters) == $(KeyNull)
        set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
        goto fatalregistry
    endif

    set OldVersionExisted = $(TRUE)
    set ValueName = ""
    set ValueData = ""
    set ValueList = {}

    set PropKeyNameList = {}
    set PropKeyDescList = {}
    set KeyEnumValueList = {}
    set KeyEnumDescList = {}
    set DispTypeList = {}

    OpenRegKey $(KeyParameters) "" "UI" $(MAXIMUM_ALLOWED) H_UI
    ifstr $(H_UI) == $(KeyNull)
        set RegistryErrorIndex = UNABLE_ACCESS_CONFIGURE_SERVICE
        CloseRegKey $(KeyParameters)
        goto fatalregistry
    endif

    set UIKeyList = {}
    EnumRegKey $(H_UI) UIKeyList

    ForListDo $(UIKeyList)
        set UIKeyName = *($($), 1)
        set PropKeyNameList = >( $(PropKeyNameList), $(UIKeyName) )

        OpenRegKey $(H_UI) "" $(UIKeyName) $(MAXIMUM_ALLOWED) H_UIKey
        ifstr $(H_UIKey) == $(KeyNull)
            set RegistryErrorIndex = UNABLE_ACCESS_CONFIGURE_SERVICE
            CloseRegKey $(H_UI)
            goto fatalregistry
        endif

        EnumRegValue $(H_UIKey) ValueList

        ForListDo $(ValueList)
            set ValueName = *($($), 1)
            set ValueData = *($($), 4)

            ifstr(i) $(ValueName) == "Type"
                set DisplayType = $(ValueData)
                set DispTypeList = >( $(DispTypeList), $(DisplayType) )
            endif

            ifstr(i) $(ValueName) == "ParamDesc"
                set DisplayDesc = $(ValueData)
                set PropKeyDescList = >( $(PropKeyDescList), $(DisplayDesc) )
            endif

            ifstr(i) $(ValueName) == "Max"
                set MaxLimit = $(ValueData)
            endif

            ifstr(i) $(ValueName) == "Min"
                set MinLimit = $(ValueData)
            endif
        EndForListDo

        ifstr(i) $(DisplayType) == "int"
            set EnumValueStr = $(MinLimit)","$(MaxLimit)
            set KeyEnumValueList = >( $(KeyEnumValueList), $(EnumValueStr) )
            set KeyEnumDescList = >( $(KeyEnumDescList), "" )
        else-ifstr(i) $(DisplayType) == "edit"
            set KeyEnumValueList = >( $(KeyEnumValueList), "" )
            set KeyEnumDescList = >( $(KeyEnumDescList), "" )
        else-ifstr(i) $(DisplayType) == "enum"
            OpenRegKey $(H_UIKey) "" "enum" $(!REG_KEY_READ) H_Enum
            ifstr $(H_Enum) == $(KeyNull)
                set RegistryErrorIndex = UNABLE_ACCESS_CONFIGURE_SERVICE
                CloseRegKey $(H_UIKey)
                goto fatalregistry
            endif

            EnumRegValue $(H_Enum) EnumList

            set EnumValueStr = ""
            set EnumDescStr = ""
            set flag = $(FALSE)
            ForListDo $(EnumList)
                set EnumValue = *($($), 1)
                set EnumDesc = *($($), 4)

                ifint $(flag) == $(TRUE)
                    set EnumValueStr = $(EnumValueStr)","$(EnumValue)
                    set EnumDescStr = $(EnumDescStr)","$(EnumDesc)
                else
                    set EnumValueStr = $(EnumValue)
                    set EnumDescStr = $(EnumDesc)
                    set flag = $(TRUE)
                endif
            EndForListDo

            set KeyEnumValueList = >( $(KeyEnumValueList), $(EnumValueStr) )
            set KeyEnumDescList = >( $(KeyEnumDescList), $(EnumDescStr) )
        else
            ; Add Error Handling Code Here
        endif
    EndForListDo

    EnumRegValue $(KeyParameters) ValueList

    set CurrKeyValueList = {}

    ForListDo $(PropKeyNameList)
        set KeyName = $($)

        ForListDo $(ValueList)
            set ValueName = *($($), 1)
            set ValueData = *($($), 4)
            ifstr $(ValueName) == $(KeyName)
                set CurrKeyValueList = >($(CurrKeyValueList), $(ValueData))
            endif
        EndForListDo
    EndForListDo
    ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS $(CurrKeyValueList)

    LoadLibrary "" $(!STF_WINDOWSSYSPATH)"\ntutil.dll" PropHandle
    LibraryProcedure SetResult, $(PropHandle), ShowProp, $(PropKeyDescList), +
                                                        $(CurrKeyValueList), +
                                                        $(KeyEnumValueList), +
                                                        $(KeyEnumDescList), +
                                                        $(DispTypeList), +
                                                        $(HelpFileName)
    FreeLibrary $(PropHandle)

    ifstr $(SetResult) == "PROPERTY_UI_USER_CANCEL"
        set CommonStatus = STATUS_USERCANCEL
        goto end
    endif

    ifstr $(SetResult) == $(CurrKeyValueList)
        set CommonStatus = STATUS_USERCANCEL
        goto end
    endif

    ifstr(i) $(!NTN_InstallMode) == configure
        goto updateparameters
    endif

;----------------------------------------------------------------------------
installproduct =+

    StartWait
    ; DEVICE_ID....
    ; 65535

    ; search device ID for 3043/3065/3106J/3106S
    set AdapterList65 = {}
    set AdapterList43 = {}
    set AdapterList106J = {}
    set AdapterList106S = {}
    set NoAdapter = $(TRUE)

    ; find 3043 adapters
    set-div DeviceID = $(VT3043CFID) 65535
    Shell $(UtilityInf), GetPCIInformation, $(VendorID) $(DeviceID)
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
        goto ShellCodeError
    endif

    ifstr(i) $($R0) != {}
        set AdapterList43 = $($R0)
        set NoAdapter = $(FALSE)
    endif

    ; find 3065 adapters
    set-div DeviceID = $(VT3065CFID) 65535
    Shell $(UtilityInf), GetPCIInformation, $(VendorID) $(DeviceID)
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
        goto ShellCodeError
    endif

    ifstr(i) $($R0) != {}
        set AdapterList65 = $($R0)
        set NoAdapter = $(FALSE)
    endif

    ; find 3106J adapters
    set-div DeviceID = $(VT3106JCFID) 65535
    Shell $(UtilityInf), GetPCIInformation, $(VendorID) $(DeviceID)
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
        goto ShellCodeError
    endif

    ifstr(i) $($R0) != {}
        set AdapterList106J = $($R0)
        set NoAdapter = $(FALSE)
    endif
   
    ; find 3106S adapters
    set-div DeviceID = $(VT3106SCFID) 65535
    Shell $(UtilityInf), GetPCIInformation, $(VendorID) $(DeviceID)
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
        goto ShellCodeError
    endif

    ifstr(i) $($R0) != {}
        set AdapterList106S = $($R0)
        set NoAdapter = $(FALSE)
    endif
 
    ; no adapters was found
    ifint $(NoAdapter) == $(TRUE)
        set Error = $(CANNOT_FIND_ANY_CARD)
        set CommonStatus = USER_CANCEL
        set from = end
        goto nonfatal
    endif
   
    Ifstr(i) $(DoCopy) == "YES"
        Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
        Ifint $($ShellCode) != $(!SHELL_CODE_OK)
            Goto ShellCodeError
        Else-Ifstr(i) $($R0) == STATUS_FAILED
            Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                goto ShellCodeError
            endif

            set Error = $($R0)
            Goto fatal
        Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
            Goto successful
        Endif
        Set SrcDir = $($R1)
    Endif

    install "Install-Option"

    ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
        Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
        ifint $($ShellCode) != $(!SHELL_CODE_OK)
            goto ShellCodeError
        endif

        set Error = $($R0)
        goto fatal
    endif

    ; Chinghua - setting default values if user re-install the driver

    ifint $(OldVersionExisted) == $(TRUE)
        ; Update InfName and InfOption
        OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Ncpa" $(MAXIMUM_ALLOWED) H_Ncpa
        ifstr $(H_Ncpa) == $(KeyNull)
            Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
            Goto fatalregistry
        endif

        GetRegValue $(H_Ncpa),"InfReturn", InfReturnList
        set InfReturnValue = *( $(InfReturnList), 4 )

        Split-String $(InfReturnValue) "," DestinationList
        set InfFileName = *( $(DestinationList), 1 )

        CloseRegKey $(H_Ncpa)

        OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName)"\NetRules" $(MAXIMUM_ALLOWED) H_NetRules
        ifstr $(H_NetRules) == $(KeyNull)
            Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
            Goto fatalregistry
        endif

        SetRegValue $(H_NetRules) {InfName,$(NoTitle),$(!REG_VT_SZ),$(InfFileName)}
        SetRegValue $(H_NetRules) {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}
        CloseRegKey $(H_NetRules)

        ; setting default value for 3106S ****************************
        ForListDo $(AdapterList106S)
            set BusNum = *( $($), 1 )
            set DeviceNum = *( $($), 2 )
            set Sub = "VT3106S"
            set Description = $(ProductHardware$(Option)Description)
            set Product = $(ProductHardwareName)

            OpenRegKey $(!REG_H_LOCAL) +
                      "" +
                      "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards" +
                      $(!REG_KEY_READ) +
                      IE_KeyNetcards

            EnumRegKey $(IE_KeyNetcards) IE_KeyNameList

            ForListDo $(IE_KeyNameList)
                set IE_KeyName = *( $($), 1 )

                OpenRegKey $(IE_KeyNetcards) "" $(IE_KeyName) $(!REG_KEY_READ) IE_Card
                ifstr $(IE_Card) == $(KeyNull)
                    Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
                    Goto fatalregistry
                endif

                GetRegValue $(IE_Card),"ProductName", ProductNameInfo
                set CardProductName = *( $(ProductNameInfo), 4 )

                ifstr(i) $(CardProductName) == $(Product)
                    GetRegValue $(IE_Card), "ServiceName", ServiceNameInfo
                    set ServiceName = *( $(ServiceNameInfo), 4 )

                    OpenRegKey $(!REG_H_LOCAL) +
                              "" +
                              $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters" +
                              $(!REG_KEY_READWRITE) +
                              IE_KeyService
                    ifstr $(IE_KeyService) == $(KeyNull)
                        Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
                        Goto fatalregistry
                    endif

                    GetRegValue $(IE_KeyService), "BusNumber", BusInfo
                    GetRegValue $(IE_KeyService), "SlotNumber", SlotInfo
                    set CardBusNum = *( $(BusInfo), 4 )
                    set CardSlotNum = *( $(SlotInfo), 4 )

                    ifint $(CardBusNum) == $(BusNum)
                        ifint $(CardSlotNum) == $(DeviceNum)
                            ; Update InfName and InfOption
                            OpenRegKey $(IE_Card) "" "NetRules" $(MAXIMUM_ALLOWED) H_NetRules
                            ifstr $(H_NetRules) == $(KeyNull)
                                Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
                                Goto fatalregistry
                            endif

                            SetRegValue $(H_NetRules) {InfName,$(NoTitle),$(!REG_VT_SZ),$(InfFileName)}
                            SetRegValue $(H_NetRules) {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}
                            CloseRegKey $(H_NetRules)

                            ; Set default value
                            set NewValueList = $($(Sub)DefaultParamList)
                            set ParamPath = $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters"
                            OpenRegKey $(!REG_H_LOCAL) "" $(ParamPath) $(!REG_KEY_WRITE) KeyParam
                            Shell $(UtilityInf), AddValueList, $(KeyParam), $(NewValueList)

                            ; for 3106S UI registry >>>>>>>>>>>>>>>>>>>>>>>>>>>>
                            CreateRegKey $(KeyParam) {"UI",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_UI
                            ifstr $(H_UI) == $(KeyNull)
                                OpenRegKey $(KeyParam) "" "UI" $(MAXIMUM_ALLOWED) H_UI
                                ifstr $(H_UI) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(KeyParam)
                                    goto fatalregistry
                                endif
                            endif

                            ; for 3106S ConnectionType registry >>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"ConnectionType",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_ConnectionType
                            ifstr $(H_ConnectionType) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "ConnectionType" $(MAXIMUM_ALLOWED) H_ConnectionType
                                ifstr $(H_ConnectionType) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(ConnectionTypeParamList)
                            Shell $(UtilityInf), AddValueList, $(H_ConnectionType), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            ; for 3106S ConnectionType Enum registry
                            CreateRegKey $(H_ConnectionType) {"enum",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_Enum
                            ifstr $(H_Enum) == $(KeyNull)
                                OpenRegKey $(H_ConnectionType) "" "enum" $(MAXIMUM_ALLOWED) H_Enum
                                ifstr $(H_Enum) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_ConnectionType)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(ConnectionTypeEnumList)
                            Shell $(UtilityInf), AddValueList, $(H_Enum), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_Enum)
                            CloseRegKey $(H_ConnectionType)

                            ; for 3106S NetworkAddress registry >>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"NetworkAddress",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_NetworkAddress
                            ifstr $(H_NetworkAddress) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "NetworkAddress" $(MAXIMUM_ALLOWED) H_NetworkAddress
                                ifstr $(H_NetworkAddress) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(NetworkAddressParamList)
                            Shell $(UtilityInf), AddValueList, $(H_NetworkAddress), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_NetworkAddress)

                            ; for 3106S TransmitBuffers registry >>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"TransmitBuffers",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_TransmitBuffers
                            ifstr $(H_TransmitBuffers) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "TransmitBuffers" $(MAXIMUM_ALLOWED) H_TransmitBuffers
                                ifstr $(H_TransmitBuffers) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(TransmitBuffersParamList)
                            Shell $(UtilityInf), AddValueList, $(H_TransmitBuffers), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_TransmitBuffers)

                            ; for 3106S ReceiveBuffers registry >>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"ReceiveBuffers",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_ReceiveBuffers
                            ifstr $(H_ReceiveBuffers) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "ReceiveBuffers" $(MAXIMUM_ALLOWED) H_ReceiveBuffers
                                ifstr $(H_ReceiveBuffers) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(ReceiveBuffersParamList)
                            Shell $(UtilityInf), AddValueList, $(H_ReceiveBuffers), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_ReceiveBuffers)

                            ; for 3106S FlowCtrl registry >>>>>>>>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"FlowCtrl",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_FlowCtrl
                            ifstr $(H_FlowCtrl) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "FlowCtrl" $(MAXIMUM_ALLOWED) H_FlowCtrl
                                ifstr $(H_FlowCtrl) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(FlowCtrlParamList)
                            Shell $(UtilityInf), AddValueList, $(H_FlowCtrl), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            ; for 3106S FlowCtrl Enum registry
                            CreateRegKey $(H_FlowCtrl) {"enum",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_Enum
                            ifstr $(H_Enum) == $(KeyNull)
                                OpenRegKey $(H_FlowCtrl) "" "enum" $(MAXIMUM_ALLOWED) H_Enum
                                ifstr $(H_Enum) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_FlowCtrl)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(FlowCtrlEnumList)
                            Shell $(UtilityInf), AddValueList, $(H_Enum), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_Enum)
                            CloseRegKey $(H_FlowCtrl)

                            ; for 3106S 8021pqtag registry >>>>>>>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"8021pqtag",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_8021pqtag
                            ifstr $(H_8021pqtag) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "8021pqtag" $(MAXIMUM_ALLOWED) H_8021pqtag
                                ifstr $(H_8021pqtag) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(8021pqtagParamList)
                            Shell $(UtilityInf), AddValueList, $(H_8021pqtag), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            ; for 3106S 8021pqtag Enum registry
                            CreateRegKey $(H_8021pqtag) {"enum",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_Enum
                            ifstr $(H_Enum) == $(KeyNull)
                                OpenRegKey $(H_8021pqtag) "" "enum" $(MAXIMUM_ALLOWED) H_Enum
                                ifstr $(H_Enum) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_8021pqtag)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(DisableEnableEnumList)
                            Shell $(UtilityInf), AddValueList, $(H_Enum), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_Enum)
                            CloseRegKey $(H_8021pqtag)

                            ; for 3106S VLANID registry >>>>>>>>>>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"VLANID",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_VLANID
                            ifstr $(H_VLANID) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "VLANID" $(MAXIMUM_ALLOWED) H_VLANID
                                ifstr $(H_VLANID) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(VLANIDParamList)
                            Shell $(UtilityInf), AddValueList, $(H_VLANID), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_VLANID)
                            CloseRegKey $(H_UI)

                            CloseRegKey $(KeyParam)

                            ; Update Software Title
                            set ParamPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(IE_KeyName)
                            OpenRegKey $(!REG_H_LOCAL) "" $(ParamPath) $(!REG_KEY_WRITE) KeyParam
                            SetRegValue $(KeyParam) {Title,$(NoTitle),$(!REG_VT_SZ),"["$(IE_KeyName)"] "$(ProductHardware$(Option)$(Sub)Title)}
                            CloseRegKey $(KeyParam)

                            ; Update Version Number
                            set ParamPath = "SOFTWARE\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
                            OpenRegKey $(!REG_H_LOCAL) "" $(ParamPath) $(!REG_KEY_WRITE) KeyParam
                            SetRegValue $(KeyParam) {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)}
                            SetRegValue $(KeyParam) {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)}
                            CloseRegKey $(KeyParam)
                        endif
                    endif
                    CloseRegKey $(IE_KeyService)

                endif
                CloseRegKey $(IE_Card)

            EndForListDo
            CloseRegKey $(IE_KeyNetcards)

        EndForListDo

       
        ; setting default value for 3106J ****************************
        ForListDo $(AdapterList106J)
            set BusNum = *( $($), 1 )
            set DeviceNum = *( $($), 2 )
            set Sub = "VT3106J"
            set Description = $(ProductHardware$(Option)Description)
            set Product = $(ProductHardwareName)

            OpenRegKey $(!REG_H_LOCAL) +
                      "" +
                      "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards" +
                      $(!REG_KEY_READ) +
                      IE_KeyNetcards

            EnumRegKey $(IE_KeyNetcards) IE_KeyNameList

            ForListDo $(IE_KeyNameList)
                set IE_KeyName = *( $($), 1 )

                OpenRegKey $(IE_KeyNetcards) "" $(IE_KeyName) $(!REG_KEY_READ) IE_Card
                ifstr $(IE_Card) == $(KeyNull)
                    Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
                    Goto fatalregistry
                endif

                GetRegValue $(IE_Card),"ProductName", ProductNameInfo
                set CardProductName = *($(ProductNameInfo), 4)

                ifstr(i) $(CardProductName) == $(Product)
                    GetRegValue $(IE_Card), "ServiceName", ServiceNameInfo
                    set ServiceName = *($(ServiceNameInfo), 4)
                    OpenRegKey $(!REG_H_LOCAL) +
                              "" +
                              $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters" +
                              $(!REG_KEY_READWRITE) +
                              IE_KeyService
                    ifstr $(IE_KeyService) == $(KeyNull)
                        Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
                        Goto fatalregistry
                    endif

                    GetRegValue $(IE_KeyService), "BusNumber", BusInfo
                    GetRegValue $(IE_KeyService), "SlotNumber", SlotInfo
                    set CardBusNum = *( $(BusInfo), 4 )
                    set CardSlotNum = *( $(SlotInfo), 4 )

                    ifint $(CardBusNum) == $(BusNum)
                        ifint $(CardSlotNum) == $(DeviceNum)
                            ; Update InfName and InfOption
                            OpenRegKey $(IE_Card) "" "NetRules" $(MAXIMUM_ALLOWED) H_NetRules
                            ifstr $(H_NetRules) == $(KeyNull)
                                Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
                                Goto fatalregistry
                            endif

                            SetRegValue $(H_NetRules) {InfName,$(NoTitle),$(!REG_VT_SZ),$(InfFileName)}
                            SetRegValue $(H_NetRules) {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}
                            CloseRegKey $(H_NetRules)

                            ; Set default value
                            set NewValueList = $($(Sub)DefaultParamList)
                            set ParamPath = $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters"
                            OpenRegKey $(!REG_H_LOCAL) "" $(ParamPath) $(!REG_KEY_WRITE) KeyParam
                            Shell  $(UtilityInf), AddValueList, $(KeyParam), $(NewValueList)

                            ; for 3106J UI registry >>>>>>>>>>>>>>>>>>>>>>>>>>>>
                            CreateRegKey $(KeyParam) {"UI",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_UI
                            ifstr $(H_UI) == $(KeyNull)
                                OpenRegKey $(KeyParam) "" "UI" $(MAXIMUM_ALLOWED) H_UI
                                ifstr $(H_UI) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(KeyParam)
                                    goto fatalregistry
                                endif
                            endif

                            ; for 3106J ConnectionType registry >>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"ConnectionType",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_ConnectionType
                            ifstr $(H_ConnectionType) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "ConnectionType" $(MAXIMUM_ALLOWED) H_ConnectionType
                                ifstr $(H_ConnectionType) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(ConnectionTypeParamList)
                            Shell $(UtilityInf), AddValueList, $(H_ConnectionType), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            ; for 3106J ConnectionType Enum registry
                            CreateRegKey $(H_ConnectionType) {"enum",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_Enum
                            ifstr $(H_Enum) == $(KeyNull)
                                OpenRegKey $(H_ConnectionType) "" "enum" $(MAXIMUM_ALLOWED) H_Enum
                                ifstr $(H_Enum) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_ConnectionType)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(ConnectionTypeEnumList)
                            Shell $(UtilityInf), AddValueList, $(H_Enum), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_Enum)
                            CloseRegKey $(H_ConnectionType)

                            ; for 3106J NetworkAddress registry >>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"NetworkAddress",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_NetworkAddress
                            ifstr $(H_NetworkAddress) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "NetworkAddress" $(MAXIMUM_ALLOWED) H_NetworkAddress
                                ifstr $(H_NetworkAddress) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(NetworkAddressParamList)
                            Shell $(UtilityInf), AddValueList, $(H_NetworkAddress), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_NetworkAddress)

                            ; for 3106J TransmitBuffers registry >>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"TransmitBuffers",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_TransmitBuffers
                            ifstr $(H_TransmitBuffers) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "TransmitBuffers" $(MAXIMUM_ALLOWED) H_TransmitBuffers
                                ifstr $(H_TransmitBuffers) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(TransmitBuffersParamList)
                            Shell $(UtilityInf), AddValueList, $(H_TransmitBuffers), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_TransmitBuffers)

                            ; for 3106J ReceiveBuffers registry >>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"ReceiveBuffers",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_ReceiveBuffers
                            ifstr $(H_ReceiveBuffers) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "ReceiveBuffers" $(MAXIMUM_ALLOWED) H_ReceiveBuffers
                                ifstr $(H_ReceiveBuffers) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(ReceiveBuffersParamList)
                            Shell $(UtilityInf), AddValueList, $(H_ReceiveBuffers), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_ReceiveBuffers)

                            ; for 3106J FlowCtrl registry >>>>>>>>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"FlowCtrl",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_FlowCtrl
                            ifstr $(H_FlowCtrl) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "FlowCtrl" $(MAXIMUM_ALLOWED) H_FlowCtrl
                                ifstr $(H_FlowCtrl) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(FlowCtrlParamList)
                            Shell $(UtilityInf), AddValueList, $(H_FlowCtrl), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            ; for 3106J FlowCtrl Enum registry
                            CreateRegKey $(H_FlowCtrl) {"enum",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_Enum
                            ifstr $(H_Enum) == $(KeyNull)
                                OpenRegKey $(H_FlowCtrl) "" "enum" $(MAXIMUM_ALLOWED) H_Enum
                                ifstr $(H_Enum) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_FlowCtrl)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(FlowCtrlEnumList)
                            Shell $(UtilityInf), AddValueList, $(H_Enum), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_Enum)
                            CloseRegKey $(H_FlowCtrl)

                            CloseRegKey $(KeyParam)

                            ; Update Software Title
                            set ParamPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$(IE_KeyName)
                            OpenRegKey $(!REG_H_LOCAL) "" $(ParamPath) $(!REG_KEY_WRITE) KeyParam
                            SetRegValue $(KeyParam) {Title,$(NoTitle),$(!REG_VT_SZ),"["$(IE_KeyName)"] "$(ProductHardware$(Option)$(Sub)Title)}
                            CloseRegKey $(KeyParam)

                            ; Update Version Number
                            set ParamPath = "SOFTWARE\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
                            OpenRegKey $(!REG_H_LOCAL) "" $(ParamPath) $(!REG_KEY_WRITE) KeyParam
                            SetRegValue $(KeyParam) {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)}
                            SetRegValue $(KeyParam) {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)}
                            CloseRegKey $(KeyParam)
                        endif
                    endif
                    CloseRegKey $(IE_KeyService)

                endif
                CloseRegKey $(IE_Card)

            EndForListDo
            CloseRegKey $(IE_KeyNetcards)

        EndForListDo


        ; setting default value for 3065 *****************************
        ForListDo $(AdapterList65)
            set BusNum = *( $($), 1 )
            set DeviceNum = *( $($), 2 )
            set Sub = "VT3065"
            set Description = $(ProductHardware$(Option)Description)
            set Product = $(ProductHardwareName)

            OpenRegKey $(!REG_H_LOCAL) +
                      "" +
                      "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards" +
                      $(!REG_KEY_READ) +
                      IE_KeyNetcards

            EnumRegKey $(IE_KeyNetcards) IE_KeyNameList
            ForListDo $(IE_KeyNameList)
                set IE_KeyName = *( $($), 1 )

                OpenRegKey $(IE_KeyNetcards) "" $(IE_KeyName) $(MAXIMUM_ALLOWED) IE_Card
                ifstr $(IE_Card) == $(KeyNull)
                    Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
                    Goto fatalregistry
                endif

                GetRegValue $(IE_Card), "ProductName", ProductNameInfo
                set CardProductName = *( $(ProductNameInfo), 4 )

                ifstr(i) $(CardProductName) == $(Product)
                    GetRegValue $(IE_Card), "ServiceName", ServiceNameInfo
                    set ServiceName = *( $(ServiceNameInfo), 4 )

                    OpenRegKey $(!REG_H_LOCAL) +
                              "" +
                              $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters" +
                              $(!REG_KEY_READWRITE) +
                              IE_KeyService
                    ifstr $(IE_KeyService) == $(KeyNull)
                        Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
                        Goto fatalregistry
                    endif

                    GetRegValue $(IE_KeyService), "BusNumber", BusInfo
                    GetRegValue $(IE_KeyService), "SlotNumber", SlotInfo
                    set CardBusNum = *( $(BusInfo), 4 )
                    set CardSlotNum = *( $(SlotInfo), 4 )

                    ifint $(CardBusNum) == $(BusNum)
                        ifint $(CardSlotNum) == $(DeviceNum)
                            ; Update InfName and InfOption
                            OpenRegKey $(IE_Card) "" "NetRules" $(MAXIMUM_ALLOWED) H_NetRules
                            ifstr $(H_NetRules) == $(KeyNull)
                                Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
                                Goto fatalregistry
                            endif

                            SetRegValue $(H_NetRules) {InfName,$(NoTitle),$(!REG_VT_SZ),$(InfFileName)}
                            SetRegValue $(H_NetRules) {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}
                            CloseRegKey $(H_NetRules)

                            ; Set default value
                            set NewValueList = $($(Sub)DefaultParamList)
                            set ParamPath = $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters"
                            OpenRegKey $(!REG_H_LOCAL) "" $(ParamPath) $(!REG_KEY_WRITE) KeyParam
                            Shell $(UtilityInf), AddValueList, $(KeyParam), $(NewValueList)

                            ; for 3065 UI registry >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                            CreateRegKey $(KeyParam) {"UI",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_UI
                            ifstr $(H_UI) == $(KeyNull)
                                OpenRegKey $(KeyParam) "" "UI" $(MAXIMUM_ALLOWED) H_UI
                                ifstr $(H_UI) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(KeyParam)
                                    goto fatalregistry
                                endif
                            endif

                            ; for 3065 ConnectionType registry >>>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"ConnectionType",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_ConnectionType
                            ifstr $(H_ConnectionType) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "ConnectionType" $(MAXIMUM_ALLOWED) H_ConnectionType
                                ifstr $(H_ConnectionType) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(ConnectionTypeParamList)
                            Shell $(UtilityInf), AddValueList, $(H_ConnectionType), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            ; for 3065 ConnectionType Enum registry
                            CreateRegKey $(H_ConnectionType) {"enum",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_Enum
                            ifstr $(H_Enum) == $(KeyNull)
                                OpenRegKey $(H_ConnectionType) "" "enum" $(MAXIMUM_ALLOWED) H_Enum
                                ifstr $(H_Enum) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_ConnectionType)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(ConnectionTypeEnumList)
                            Shell $(UtilityInf), AddValueList, $(H_Enum), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_Enum)
                            CloseRegKey $(H_ConnectionType)

                            ; for 3065 NetworkAddress registry >>>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"NetworkAddress",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_NetworkAddress
                            ifstr $(H_NetworkAddress) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "NetworkAddress" $(MAXIMUM_ALLOWED) H_NetworkAddress
                                ifstr $(H_NetworkAddress) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(NetworkAddressParamList)
                            Shell $(UtilityInf), AddValueList, $(H_NetworkAddress), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_NetworkAddress)

                            ; for 3065 TransmitBuffers registry >>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"TransmitBuffers",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_TransmitBuffers
                            ifstr $(H_TransmitBuffers) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "TransmitBuffers" $(MAXIMUM_ALLOWED) H_TransmitBuffers
                                ifstr $(H_TransmitBuffers) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(TransmitBuffersParamList)
                            Shell $(UtilityInf), AddValueList, $(H_TransmitBuffers), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_TransmitBuffers)

                            ; for 3065 ReceiveBuffers registry >>>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"ReceiveBuffers",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_ReceiveBuffers
                            ifstr $(H_ReceiveBuffers) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "ReceiveBuffers" $(MAXIMUM_ALLOWED) H_ReceiveBuffers
                                ifstr $(H_ReceiveBuffers) == $(KeyNull)
                                    set RegistryErrorIndex = UNABLE_CREATE_SERVICE_SUBKEY
                                    CloseRegKey $(H_UI)
                                    goto fatalregistry
                                endif
                            endif

                            set NewValueList = $(ReceiveBuffersParamList)
                            Shell $(UtilityInf), AddValueList, $(H_ReceiveBuffers), $(NewValueList)
                            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                                goto ShellCodeError
                            endif

                            CloseRegKey $(H_ReceiveBuffers)

                            ; for 3065 FlowCtrl registry >>>>>>>>>>>>>>>>>>>>>>>
                            CreateRegKey $(H_UI) {"FlowCtrl",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" H_FlowCtrl
                            ifstr $(H_FlowCtrl) == $(KeyNull)
                                OpenRegKey $(H_UI) "" "FlowCtrl" $(MAXIMUM_ALLOWED) H_FlowCtrl
                                ifstr $(H
Avatar billede arnholst Nybegynder
14. januar 2004 - 22:36 #32
Nu gik det ligepludselig stærkt men bare lige for at opsummere, er du i din NT installation kommet til noget netværkssetup, hvor du kan angive hvilket netkort du har og om den skal bruge fast ip eller køre DHCP ??
Avatar billede lap Nybegynder
14. januar 2004 - 22:36 #33
og du blev spurgt efter ip-setup - og gav en ip-adresse indenfor 192.168.0.X ? Og du er i stand til at pinge den ip-adresse fra PDC?
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:37 #34
ja det der med blink er jeg enig i, men det er noget værre skidt det her og jeg skal have det til at virke.
Avatar billede lap Nybegynder
14. januar 2004 - 22:37 #35
arnholst> fortsætter du?
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:39 #36
Nix, jeg har prøvet at give BDC et fast IP.nr. ... virker heller ikke. Jeg har også byttet om på bindingerne idet jeg så, at på PDC'en var NetBIOS bundet først, derefter WINS så vidt jeg husker, men der køres slet ikke WINS ... så gad vide om det bare er standard når man vælger NetBIOS.
Avatar billede lap Nybegynder
14. januar 2004 - 22:41 #37
så knækkede eksperten?
Avatar billede lap Nybegynder
14. januar 2004 - 22:42 #38
så vågnede E til live igen. Du skal vælge standard omkring bindinger - det vigtigste er, at du installerer tcp/ip - giver en ip-adresse - og efter next (måske 2*next) er netværket startet - og du kan pinge!
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:49 #39
øøøhhhhhhhh, hvor er alle svarene blevet af? Er i der stadigvæk????
Avatar billede lap Nybegynder
14. januar 2004 - 22:50 #40
jeg har de samme problemer - men har du ikke oprettet samme spørgsmål 2 gange - som 2 forskellige brugere?
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:52 #41
tja, jeg ved faktisk ikke rigtig hvad jeg skal gøre. Det i foreslår har jeg prøvet. Der er een ting jeg ikke har prøvet: i stedet for at skrive domænenavn vil jeg prøve at skrive ip.nr. på PDC'en imorgen ... måske virker det så, men det er lidt underligt.
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 22:53 #42
jo, spsm. er 2 steder for nu er det kritisk, jeg skal have det op at stå.
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 23:03 #43
jeg går i seng nu, der er noget i vejen med ekspertens system. Tak for idag.
Avatar billede lap Nybegynder
14. januar 2004 - 23:09 #44
test
Avatar billede lap Nybegynder
14. januar 2004 - 23:12 #45
det nytter intet at skrive en ip-adresse - det SKAL være netbios domænenavn. Hvis du ikke kan pinge din maskine, så virker dit netværk ikke.

Uden netværk - ingen dc på NT4 - så nemt er det. Du skal altså alene fejlsøge på netværk - i samme øjeblik du er i stand til at pinge pdc til bdc, så virker tingene også.

og det er åbenbart en kendt fejl på eksperten, at indlæg manger - hvis man så selv lægger et indlæg, så kommer hele indholdet igen.
Avatar billede searchers Nybegynder
15. januar 2004 - 17:19 #46
Har selv fundet ud af det.
Avatar billede searchers Nybegynder
15. januar 2004 - 17:20 #47
OK
Avatar billede arnholst Nybegynder
17. januar 2004 - 10:37 #48
Jeg blev lige ramt af den fejl, som LAP omtalte (den med ikke at kunne se nogen indlæg), så har du fået løst dit netværksproblem.

Sådan at du nu kan pinge fra din PDC mod din BDC ???
Avatar billede gudmund_nielsen Nybegynder
18. januar 2004 - 09:30 #49
Ja, det var det værste bøvl jeg længe har været ude for; noget i retning af at tage en motor fra en Gogomobil og sætte den ind i en Rolroyce. også fordi at firmaet ville køre videre med Navision 3.55, så dem nye "Rolroyce" var vanskelig, da NT 4 server version 1 (altså ikke opdateret med nogen servicepacks) skulle installeres på den nye. Men det LYKKEDES. Jeg var nødt til at "slå" USB og meget andet fra i BIOS'en og der var utroligt meget teknik i det hele. Men efterhånden fik jeg den til at køre som BDC og promoverede herefter den til PDC og tog den gamle ud. Det tog mig 3 dage og jeg ved at andre havde afslået at lave den "øvelse", men jeg gjorde det altså. Læs mere om mig på http://gunidata.sa-net.dk og tak for kommentarene mv.
Avatar billede gudmund_nielsen Nybegynder
18. januar 2004 - 09:31 #50
Undskyld, min hjemmeside er: http://www.gunidata.sa-net.dk
Avatar billede lap Nybegynder
18. januar 2004 - 10:47 #51
lægger lige et svar, hvis du kunne bruge noget af ovenstående til noget - og det var da rart, at du fik det til at virke. NT4 er jo ikke helt ny, så der er visse problemer med ny hardware - som du jo også har konstateret :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester