Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

693 lines
19 KiB

  1. ;***********************************************************************
  2. ;
  3. ; OEMNSVDN.INF
  4. ;
  5. ; DNS Service
  6. ;
  7. ; History: tromano 10/27/95 created
  8. ;
  9. ;***********************************************************************
  10. ;-----------------------------------------------------------------------
  11. ; OPTION TYPE
  12. ; -----------
  13. ; This identifies the Option type we are dealing with. The different
  14. ; possible types are:
  15. ;
  16. ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  17. ;
  18. ; Types specific to networking:
  19. ;
  20. ; NetAdapter, a netcard / adapter combination or just a netcard
  21. ; NetDriver, just a netcard driver
  22. ; NetTransport, a complete NDIS-compliant TDI transport stack
  23. ; NetService, an NT networking service
  24. ; NetWork, a complete network ensemble.
  25. ; NetProvider a complete network which supports NT MPR protocol
  26. ;-----------------------------------------------------------------------
  27. [Identification]
  28. OptionType = NetService
  29. ;-----------------------------------------------------------------------
  30. ; OPTION LIST
  31. ; -----------
  32. ; This section lists the OEM Option key names. These keys are locale
  33. ; independent and used to represent the option in a locale independent
  34. ; manner.
  35. ;
  36. ;-----------------------------------------------------------------------
  37. [Options]
  38. DNS
  39. ;***********************************************************************
  40. ; CONSTANTS FOR USING DIALOGS
  41. ;***********************************************************************
  42. [FileConstants]
  43. ;
  44. ; Product Info
  45. ;
  46. Manufacturer = "Microsoft"
  47. ProductMajorVersion = "4"
  48. ProductMinorVersion = "0"
  49. ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
  50. ProductOpSupport = 132 ; 0x0084 ; Display,Removable,NOT Properties,Not Updatable
  51. ;================================================================
  52. ; DNS Service
  53. ;
  54. ;================================================================
  55. ;
  56. ;
  57. ;
  58. ProductDNSName = "DNS"
  59. ProductDNSImagePath = "%SystemRoot%\System32\dns.exe"
  60. ; Service is auto start mode
  61. ProductDNSSvcType = "serviceauto"
  62. ProductService = $(!NTN_ServiceBase)"\"$(ProductDNSName)
  63. ;NetRuleDNSType = "dnsserver dnsService dns"
  64. ;NetRuleDNSUse = "service yes yes"
  65. ;NetRuleDNSBindForm = """Dnsserver"" yes yes container"
  66. ;NetRuleDNSClass = {"dns dnsService yes"}
  67. ;
  68. ; Registry Key Names
  69. ;
  70. ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(Product$(Option)Name)"\CurrentVersion"
  71. [GeneralConstants]
  72. ;
  73. ; File names, etc.
  74. ;
  75. UtilityInf = "UTILITY.INF"
  76. subroutineinf = "SUBROUTN.INF"
  77. Exit_Code = 0
  78. ;ShellCode = 0
  79. BillboardVisible = 0
  80. ;
  81. ; Program flow control variables.
  82. ;
  83. from = ""
  84. to = ""
  85. ;
  86. ; Return codes; Exit_Code is set to one of these
  87. ;
  88. ExitCodeOk = 0
  89. ExitCodeCancel = 1
  90. ExitCodeFatal = 2
  91. KeyNull = ""
  92. MAXIMUM_ALLOWED = 33554432
  93. SERVICE_NO_CHANGE = 4294967295
  94. RegistryErrorIndex = NO_ERROR
  95. KeyProduct = ""
  96. KeyParameters = ""
  97. TRUE = 1
  98. FALSE = 0
  99. NoTitle = 0
  100. ExitState = "Active"
  101. OldVersionExisted = $(FALSE)
  102. [date]
  103. ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  104. ; Minute, Second }
  105. Now = {} ? $(!LIBHANDLE) GetSystemDate
  106. ;---------------------------------------------------------------------------
  107. ; 1. Identify
  108. ;
  109. ; DESCRIPTION: To verify that this INF deals with the same type of options
  110. ; as we are choosing currently.
  111. ;
  112. ; INPUT: None
  113. ;
  114. ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL
  115. ; $($R1): Option Type (COMPUTER ...)
  116. ; $($R2): Diskette description
  117. ;---------------------------------------------------------------------------
  118. [Identify]
  119. ;
  120. ;
  121. read-syms Identification
  122. set Status = STATUS_SUCCESSFUL
  123. set Identifier = $(OptionType)
  124. set Media = #("Source Media Descriptions", 1, 1)
  125. Return $(Status) $(Identifier) $(Media)
  126. ;------------------------------------------------------------------------
  127. ; 2. ReturnOptions:
  128. ;
  129. ; DESCRIPTION: To return the option list supported by this INF and the
  130. ; localised text list representing the options.
  131. ;
  132. ;
  133. ; INPUT: $($0): Language used. ( ENG | FRN | ... )
  134. ;
  135. ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
  136. ; STATUS_NOLANGUAGE
  137. ; STATUS_FAILED
  138. ;
  139. ; $($R1): Option List
  140. ; $($R2): Option Text List
  141. ;------------------------------------------------------------------------
  142. [ReturnOptions]
  143. ;
  144. ;
  145. set Status = STATUS_FAILED
  146. set OptionList = {}
  147. set OptionTextList = {}
  148. ;
  149. ; Check if the language requested is supported
  150. ;
  151. set LanguageList = ^(LanguagesSupported, 1)
  152. Ifcontains(i) $($0) in $(LanguageList)
  153. goto returnoptions
  154. else
  155. set Status = STATUS_NOLANGUAGE
  156. goto finish_ReturnOptions
  157. endif
  158. ;
  159. ; form a list of all the options and another of the text representing
  160. ;
  161. returnoptions = +
  162. set OptionList = ^(Options, 1)
  163. set OptionTextList = ^(OptionsText$($0), 1)
  164. set Status = STATUS_SUCCESSFUL
  165. finish_ReturnOptions = +
  166. Return $(Status) $(OptionList) $(OptionTextList)
  167. ;----------InstallOption-------------------------------------------------
  168. ;
  169. ; InstallOption:
  170. ;
  171. ; This section is shelled to by main installation processing
  172. ; or by NCPASHEL.INF during reconfig, removal, update, etc.
  173. ;
  174. ;
  175. ; FUNCTION: To copy files representing Options
  176. ; To configure the installed option
  177. ; To update the registry for the installed option
  178. ;
  179. ; INPUT: $($0): Language to use
  180. ; $($1): OptionID to install
  181. ; $($2): SourceDirectory
  182. ; $($3): AddCopy (YES | NO)
  183. ; $($4): DoCopy (YES | NO)
  184. ; $($5): DoConfig (YES | NO)
  185. ;
  186. ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
  187. ; STATUS_NOLANGUAGE |
  188. ; STATUS_USERCANCEL |
  189. ; STATUS_FAILED
  190. ;
  191. ;------------------------------------------------------------------------
  192. [InstallOption]
  193. ;
  194. ; extract parameters
  195. ;
  196. set Option = $($1)
  197. set SrcDir = $($2)
  198. set AddCopy = $($3)
  199. set DoCopy = $($4)
  200. set DoConfig = $($5)
  201. ;
  202. ; Check if the language requested is supported
  203. ;
  204. set LanguageList = ^(LanguagesSupported, 1)
  205. Ifcontains(i) $($0) NOT-IN $(LanguageList)
  206. Return STATUS_NOLANGUAGE
  207. endif
  208. Debug-Output "OEMNSVDN.INF: STF_CWDIR is: "$(!STF_CWDIR)
  209. Debug-Output "OEMNSVDN.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
  210. ; define all the constants
  211. set-subst LF = "\n"
  212. read-syms GeneralConstants
  213. read-syms FileConstants
  214. read-syms DialogConstants$(!STF_LANGUAGE)
  215. ifstr(i) $(!NTN_Origination) == "NCPA"
  216. set Continue = $(OK)
  217. endif
  218. read-syms FileConstants$(!STF_LANGUAGE)
  219. read-syms FileDependentDlg$(!STF_LANGUAGE)
  220. detect date
  221. set-title $(FunctionTitle)
  222. set to = Begin
  223. set from = Begin
  224. ;
  225. ; Assume all is well.
  226. ;
  227. set CommonStatus = STATUS_SUCCESSFUL
  228. EndWait
  229. ;
  230. ; Set up the operation-mode-based variables and gaily welcome
  231. ; the user. If the "install mode" variable is improperly set,
  232. ; assume this is a new installation.
  233. ;
  234. Begin = +
  235. Ifstr(i) $(!NTN_InstallMode) == deinstall
  236. set StartLabel = removeadapter
  237. else-Ifstr(i) $(!NTN_InstallMode) == Update
  238. set StartLabel = UpgradeSoftware
  239. else-Ifstr(i) $(!NTN_InstallMode) == configure
  240. set StartLabel = configureadapter
  241. ;
  242. ; You cannot config the software component
  243. ;
  244. Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  245. Debug-Output "Cannot configure the software."
  246. Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  247. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  248. Debug-Output "ShellCode error: cannot get an error string."
  249. goto ShellCodeError
  250. endif
  251. set Error = $($R0)
  252. set from = end
  253. set to = end
  254. goto nonfatalinfo
  255. endif
  256. else-Ifstr(i) $(!NTN_InstallMode) == bind
  257. set StartLabel = bindingadapter
  258. else
  259. set StartLabel = installadapter
  260. set OEM_ABANDON_SOFTWARE = {}
  261. set OEM_ABANDON_OPTIONS = {}
  262. endif
  263. set from = $(fatal)
  264. set to = $(fatal)
  265. goto $(StartLabel)
  266. ;-----------------------------------------------
  267. ; Installation Section
  268. ;-----------------------------------------------
  269. installadapter = +
  270. Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  271. Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  272. Goto ShellCodeError
  273. Else-Ifstr(i) $($R0) == STATUS_FAILED
  274. Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  275. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  276. goto ShellCodeError
  277. endif
  278. set Error = $($R0)
  279. Goto fatal
  280. Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  281. Goto successful
  282. Endif
  283. Set SrcDir = $($R1)
  284. ifstr(i) $(!NTN_InstallMode) == "install"
  285. Debug-Output "OEMNSVDN.INF: installadapter: installing [Install-Option]"
  286. install "Install-Option"
  287. ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  288. Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  289. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  290. goto ShellCodeError
  291. endif
  292. set Error = $($R0)
  293. goto fatal
  294. endif
  295. endif
  296. set OEM_ABANDON_ON = TRUE
  297. StartWait
  298. set ThisOption = DNS
  299. ;
  300. ;
  301. Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer),+
  302. $(Product$(ThisOption)Name),+
  303. $(Product$(ThisOption)Name),+
  304. $(Product$(ThisOption)DisplayName), $(STF_CONTEXTINFNAME),+
  305. $(Product$(ThisOption)ImagePath),+
  306. $(Product$(ThisOption)SvcType),+
  307. "", {"Tcpip", "Afd", "NetBT", "RpcSs", "NTLmSsp"}, "", $(ProductDNSImagePath), 7, "", "", "", ""
  308. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  309. Debug-Output "OEMNSVDN.INF: ShellCode error, add software component"
  310. goto ShellCodeError
  311. endif
  312. set RegistryErrorIndex = $($R0)
  313. Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  314. EndWait
  315. Debug-Output "OEMNSVDH.INF: Registry error: add software components"
  316. CloseRegKey $($R1)
  317. CloseRegKey $($R2)
  318. CloseRegKey $($R3)
  319. CloseRegKey $($R4)
  320. CloseRegKey $($R5)
  321. goto fatalregistry
  322. endif
  323. set DNSVersKeyHandle = $($R1)
  324. set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),"service"},+
  325. {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  326. {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  327. {Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+
  328. {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Description)},+
  329. {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Name)},+
  330. {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)}, +
  331. {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  332. Shell $(UtilityInf), AddValueList, $(DNSVersKeyHandle), $(NewValueList)
  333. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  334. Debug-Output "OEMNSVDN.INF: ShellCode error, add value list"
  335. goto ShellCodeError
  336. endif
  337. set DNSNetRulesKeyHandle = $($R2)
  338. set NewValueList = {{InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  339. Shell $(UtilityInf), AddValueList, $(DNSNetRulesKeyHandle), $(NewValueList)
  340. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  341. Debug-Output "ShellCode error."
  342. goto ShellCodeError
  343. endif
  344. set RegistryErrorIndex = $($R0)
  345. Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  346. EndWait
  347. Debug-Output "OEMNXPTC.INF: Registry error: add value list."
  348. CloseRegKey $(DHCPVersKeyHandle)
  349. CloseRegKey $(DHCPParmKeyHandle)
  350. goto fatalregistry
  351. Endif
  352. CloseRegKey $($R1)
  353. CloseRegKey $($R2)
  354. CloseRegKey $($R3)
  355. CloseRegKey $($R4)
  356. CloseRegKey $($R5)
  357. ifstr(i) $(!STF_INSTALL_TYPE) != "SETUPBOOTED"
  358. Shell "" AddDNS
  359. endif
  360. EndWait
  361. ;
  362. ; Set our master component for auto-self-removal
  363. ;
  364. goto successful
  365. ;-----------------------------------------------
  366. ; Configuration Section
  367. ;-----------------------------------------------
  368. configureadapter = +
  369. goto end
  370. ;-----------------------------------------------
  371. ; Binding section
  372. ;-----------------------------------------------
  373. bindingadapter =+
  374. goto end
  375. ;-----------------------------------------------
  376. ; Removeadapter section
  377. ;
  378. ;
  379. ; Removal errors are ignored, since we want to
  380. ; try to remove as much as possible.
  381. ;-----------------------------------------------
  382. removeadapter = +
  383. Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), $(ProductDNSName)
  384. goto end
  385. ;-----------------------------------------------
  386. ; Upgrade Software section
  387. ;-----------------------------------------------
  388. UpgradeSoftware = +
  389. ; Upgrade software component
  390. ;
  391. OpenRegKey $(!REG_H_LOCAL) "" $(ProductService) $(MAXIMUM_ALLOWED) KeyProduct
  392. ifstr $(KeyProduct) != $(KeyNull)
  393. ; Changes in Beta2 require the following
  394. ;
  395. ; Reset Image Path, MessageFileKey, and DependOnService
  396. SetRegValue $(KeyProduct) {ImagePath,$(NoTitle),$(!REG_VT_EXPAND_SZ), $(ProductDNSImagePath)}
  397. SetRegValue $(KeyProduct) {DependOnService,$(NoTitle),$(!REG_VT_MULTI_SZ), {"Tcpip", "Afd", "NetBT", "RpcSs", "NTLmSsp"}}
  398. install "Install-Update"
  399. ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  400. goto fatal
  401. endif
  402. ; Update version
  403. SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  404. SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  405. ;
  406. ; Update description and op support
  407. ;
  408. SetRegValue $(KeyProduct) {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(Option)Description)}
  409. SetRegValue $(KeyProduct) {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)}
  410. OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EventLog\System\"$(ProductDNSName) $(MAXIMUM_ALLOWED) EventLog
  411. ifstr $(EventLog) != $(KeyNull)
  412. SetRegValue $(EventLog) {EventMessageFile,$(NoTitle),$(!REG_VT_EXPAND_SZ), $(ProductDNSImagePath)}
  413. CloseRegKey $(EventLog)
  414. endif
  415. CloseRegKey $(KeyProduct)
  416. endif
  417. goto end
  418. ;
  419. ; End of Upgrade Software
  420. ;
  421. ;
  422. ; Escape hatches
  423. ;
  424. successful = +
  425. goto end
  426. ;
  427. ; info display
  428. ;
  429. infomsg =+
  430. read-syms InfoDlg
  431. ui start "Warning"
  432. set CommonStatus = STATUS_USERCANCEL
  433. goto end
  434. ;
  435. ; warning display
  436. ;
  437. warning = +
  438. Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  439. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  440. goto ShellCodeError
  441. endif
  442. ifstr(i) $($R1) == "OK"
  443. goto $(to)
  444. else-ifstr(i) $($R1) == "CANCEL"
  445. goto $(from)
  446. else
  447. ; Debug-Msg "Error Error Bad DLGEVENT"
  448. goto "end"
  449. endif
  450. ;
  451. ; non fatal error display
  452. ;
  453. nonfatalinfo = +
  454. Set CommonStatus = STATUS_USERCANCEL
  455. Set Severity = STATUS
  456. goto nonfatalmsg
  457. nonfatal = +
  458. Set Severity = NONFATAL
  459. goto nonfatalmsg
  460. nonfatalmsg = +
  461. ifstr(i) $(Error) == ""
  462. Set Severity = NONFATAL
  463. Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  464. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  465. goto ShellCodeError
  466. endif
  467. set Error = $($R0)
  468. endif
  469. Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  470. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  471. goto ShellCodeError
  472. endif
  473. ifstr(i) $($R1) == "OK"
  474. goto $(from)
  475. else
  476. goto "end"
  477. endif
  478. ;
  479. ; Registry is broken
  480. ;
  481. fatalregistry = +
  482. Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  483. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  484. goto ShellCodeError
  485. endif
  486. set Error = $($R0)
  487. goto fatal
  488. ;
  489. ; fatal error display
  490. ;
  491. fatal = +
  492. ifstr(i) $(Error) == ""
  493. Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  494. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  495. goto ShellCodeError
  496. endif
  497. set Error = $($R0)
  498. endif
  499. Ifint $(BillboardVisible) != 0
  500. Shell "subroutn.inf" PopBillboard
  501. Set BillboardVisible = 0
  502. Endif
  503. Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  504. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  505. goto ShellCodeError
  506. endif
  507. goto setfailed
  508. ;
  509. ; Shelling error
  510. ;
  511. ShellCodeError = +
  512. set DlgType = "MessageBox"
  513. set STF_MB_TITLE = $(ShellCodeErrorTitle)
  514. set STF_MB_TEXT = $(ShellCodeErrorText)
  515. set STF_MB_TYPE = 1
  516. set STF_MB_ICON = 3
  517. set STF_MB_DEF = 1
  518. ui start "Error Message"
  519. goto setfailed
  520. setfailed = +
  521. set CommonStatus = STATUS_FAILED
  522. ;
  523. ; If OEM_ABANDON_ON, we need to clean up the registry
  524. ;
  525. ifstr(i) $(OEM_ABANDON_ON) == TRUE
  526. set OEM_ABANDON_ON = FALSE
  527. goto removeadapter
  528. endif
  529. goto end
  530. end = +
  531. goto term
  532. term = +
  533. Return $(CommonStatus)
  534. ;***************************************************************
  535. ; Get File Size SECTIONS
  536. ;***************************************************************
  537. [GetFilesSize]
  538. set FileSizeList = ^(Files-DNS,3)
  539. set TotalSize = 0
  540. ForListDo $(FileSizeList)
  541. Split-String $($) "=" SplitString
  542. set Size = *($(SplitString),3)
  543. set-add TotalSize = $(TotalSize) $(Size)
  544. EndForListDo
  545. set-div SizeInK = $(TotalSize) 1024
  546. return $(SizeInK)
  547. ;***************************************************************
  548. ; INSTALL SECTIONS
  549. ;***************************************************************
  550. [Install-Option]
  551. set STF_VITAL = ""
  552. ifstr(i) $(AddCopy) == "YES"
  553. ; Create the samples directory
  554. CreateDir $(!STF_WINDOWSSYSPATH)\DNS
  555. CreateDir $(!STF_WINDOWSSYSPATH)\DNS\SAMPLES
  556. ; Add the files to the copy list
  557. ;
  558. AddSectionFilesToCopyList Files-DNS $(SrcDir) $(!STF_WINDOWSSYSPATH)
  559. AddSectionFilesToCopyList Files-DNS-SAMPLE $(SrcDir) $(!STF_WINDOWSSYSPATH)\dns\samples
  560. AddSectionFilesToCopyList Files-DNS-SAMPLE1 $(SrcDir) $(!STF_WINDOWSSYSPATH)\dns
  561. endif
  562. ifstr(i) $(DoCopy) == "YES"
  563. ;
  564. ; Copy files in the copy list
  565. ;
  566. set !STF_NCPA_FLUSH_COPYLIST = TRUE
  567. CopyFilesInCopyList
  568. endif
  569. ifstr(i) $(DoConfig) == "YES"
  570. ;
  571. ; Add product to registry
  572. ;
  573. ;
  574. ; Finish up
  575. endif
  576. Exit
  577. [Install-Update]
  578. set STF_VITAL = ""
  579. set STF_OVERWRITE = "VERIFYSOURCEOLDER"
  580. AddSectionFilesToCopyList Files-DNS $(SrcDir) $(!STF_WINDOWSSYSPATH)
  581. AddSectionFilesToCopyList Files-DNS-SAMPLE $(SrcDir) $(!STF_WINDOWSSYSPATH)\dns\samples
  582. Exit
  583. [AddDNS]
  584. read-syms FileConstants$(!STF_LANGUAGE)
  585. read-syms GeneralConstants
  586. OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\DNS" $(MAXIMUM_ALLOWED) ProductKey
  587. ifstr(i) $(ProductKey) != ""
  588. CloseRegKey $(ProductKey)
  589. endif
  590. return