home *** CD-ROM | disk | FTP | other *** search
/ CICA NT 1997 November / CICA_NT_CD-ROM_Walnut_Creek_November_1997.iso / patches / sp5_351m.exe / UPDATE.INF < prev    next >
INI File  |  1996-09-19  |  59KB  |  1,318 lines

  1. [FileKeyedClasses]
  2.     Hal            = hal.dll
  3.     Ntoskrnl       = ntoskrnl.exe
  4. [FilesKeyedSections]
  5.     FilesHal       = $(STF_HALDEST)
  6.     FilesNtoskrnl  = $(STF_WINDOWSSYSPATH)
  7. [FilesHal]
  8.     HALR98B  = 1, HALR98B.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  9.  
  10. [FilesNtoskrnl]
  11.     NTKRNLMP = 1, NTKRNLMP.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  12.     NTOSKRNL = 1, NTOSKRNL.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  13.  
  14. [FileSections]
  15.     FilesPrimary        = C:
  16.     FilesPal            = $(STF_HALDEST)
  17.     FilesWinnt          = $(STF_WINDOWSPATH)
  18.     FilesSystem32       = $(STF_WINDOWSSYSPATH)
  19.     FilesSystem         = $(STF_WINDOWSPATH)\system
  20.     FilesDrivers        = $(STF_WINDOWSSYSPATH)\drivers
  21.     FilesConfig         = $(STF_WINDOWSSYSPATH)\config
  22.     FilesWinspool       = $(STF_WINDOWSSYSPATH)\spool
  23.     FilesPrnDriver      = $(STF_WINDOWSSYSPATH)\spool\drivers\$(!STF_PRNPLATFORM)\1
  24.     FilesPrnProc        = $(STF_WINDOWSSYSPATH)\spool\prtprocs\$(!STF_PRNPLATFORM)
  25.     FilesDbgCom         = $(STF_WINDOWSPATH)\symbols\com
  26.     FilesDbgCpl         = $(STF_WINDOWSPATH)\symbols\cpl
  27.     FilesDbgDll         = $(STF_WINDOWSPATH)\symbols\dll
  28.     FilesDbgDrv         = $(STF_WINDOWSPATH)\symbols\drv
  29.     FilesDbgExe         = $(STF_WINDOWSPATH)\symbols\exe
  30.     FilesDbgScr         = $(STF_WINDOWSPATH)\symbols\scr
  31.     FilesDbgSys         = $(STF_WINDOWSPATH)\symbols\sys
  32. [FileSectionsOsLoader]
  33.     FilesOsLoader       = $(STF_OSLDEST)
  34. [FileSectionsFPNW]
  35.     FilesFpNwLogin      = $(STF_FPNWSYSPATH)\login
  36.     FilesFpNwPublic     = $(STF_FPNWSYSPATH)\public
  37. [FileSectionsIIS]
  38.     FilesIIS            = $(STF_IISPATH)
  39. [FileSectionsSSL]
  40.     FilesSSL        = $(STF_WINDOWSSYSPATH)
  41. [FileSectionsCopyAlways]
  42.     FilesSystem32CopyAlways = $(STF_WINDOWSSYSPATH)
  43.     FilesDriversCopyAlways  = $(STF_WINDOWSSYSPATH)\drivers
  44. [FileSectionsWINNT]
  45.     FilesInfWinnt       = $(STF_WINDOWSSYSPATH)
  46. [FileSectionsLANMANNT]
  47.     FilesInfLanmanNT    = $(STF_WINDOWSSYSPATH)
  48. [FileSectionsCopyAlwaysWINNT]
  49.     FilesSystem32CopyAlwaysWinnt = $(STF_WINDOWSSYSPATH)
  50. [FileSectionsCopyAlwaysLANMANNT]
  51.     FilesSystem32CopyAlwaysLanmanNT = $(STF_WINDOWSSYSPATH)
  52. [FilesPrimary]
  53.  
  54. [FilesOsLoader]
  55. 1 = 1, OSLOADER.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  56.  
  57. [FilesPal]
  58.  
  59. [FilesWinnt]
  60.  
  61. [FilesSystem32]
  62. 1 = 1, ADVAPI32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  63. 2 = 1, ARP.EXE     , RENAME=$(NEWFILE), NOLOG, UNDO
  64. 3 = 1, AUTOCHK.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  65. 4 = 1, BASESRV.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  66. 5 = 1, BROWSER.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  67. 6 = 1, CACLS.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  68. 7 = 1, CMD.EXE     , RENAME=$(NEWFILE), NOLOG, UNDO
  69. 8 = 1, COMCTL32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  70. 9 = 1, COMDLG32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  71. 10 = 1, CSRSRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  72. 11 = 1, CSRSS.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  73. 12 = 1, DECPSMON.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  74. 13 = 1, DHCPSSVC.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  75. 14 = 1, EVENTLOG.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  76. 15 = 1, FC.EXE      , RENAME=$(NEWFILE), NOLOG, UNDO
  77. 16 = 1, FPNW.DLL    , RENAME=$(NEWFILE), NOLOG, UNDO
  78. 17 = 1, FPNWAUTH.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  79. 18 = 1, FPNWMGR.CPL , RENAME=$(NEWFILE), NOLOG, UNDO
  80. 19 = 1, FPNWOPER.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  81. 20 = 1, FTP.EXE     , RENAME=$(NEWFILE), NOLOG, UNDO
  82. 21 = 1, FTPSVC.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  83. 22 = 1, FTSRCH.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  84. 23 = 1, GDI32.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  85. 24 = 1, GLSRV.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  86. 25 = 1, HPMON.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  87. 26 = 1, IMAGEHLP.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  88. 27 = 1, INETMIB1.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  89. 28 = 1, INETSLOC.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  90. 29 = 1, INFOADMN.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  91. 30 = 1, KBDUK.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  92. 31 = 1, KERNEL32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  93. 32 = 1, KRNL286.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  94. 33 = 1, KRNL386.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  95. 34 = 1, LMMIB2.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  96. 35 = 1, LOCALMON.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  97. 36 = 1, LOCALSPL.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  98. 37 = 1, LPDSVC.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  99. 38 = 1, LPRHELP.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  100. 39 = 1, LPRMON.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  101. 40 = 1, LSASRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  102. 41 = 1, LSASS.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  103. 42 = 1, MAIN.CPL    , RENAME=$(NEWFILE), NOLOG, UNDO
  104. 43 = 1, MGMTAPI.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  105. 44 = 1, MPR.DLL     , RENAME=$(NEWFILE), NOLOG, UNDO
  106. 45 = 1, MSGINA.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  107. 46 = 1, MSNCDET.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  108. 47 = 1, MSSFS32.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  109. 48 = 1, NDDENB32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  110. 49 = 1, NETAPI32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  111. 50 = 1, NETLOGON.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  112. 51 = 1, NETRAP.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  113. 52 = 1, NETUI0.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  114. 53 = 1, NETUI1.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  115. 54 = 1, NETUI2.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  116. 55 = 1, NTBACKUP.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  117. 56 = 1, NTDLL.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  118. 57 = 1, NTLANMAN.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  119. 58 = 1, NTLMSSPS.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  120. 59 = 1, NTVDM.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  121. 60 = 1, NWAPI16.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  122. 61 = 1, NWAPI32.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  123. 62 = 1, NWCONV.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  124. 63 = 1, NWMON.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  125. 64 = 1, NWPROVAU.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  126. 65 = 1, NWSEVENT.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  127. 66 = 1, NWSLIB.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  128. 67 = 1, NWWKS.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  129. 68 = 1, OLE2DISP.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  130. 69 = 1, OLE2NLS.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  131. 70 = 1, OLE32.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  132. 71 = 1, OLEAUT32.DLL, RENAME=$(NEWFILE), OVERWRITE=OLDER, VERSION="2,20,4049,1"
  133. 72 = 1, OLEDLG.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  134. 73 = 1, OLETHK32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  135. 74 = 1, OPENGL32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  136. 75 = 1, PERFCTRS.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  137. 76 = 1, PERFMON.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  138. 77 = 1, PROGMAN.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  139. 78 = 1, QV.DLL      , RENAME=$(NEWFILE), NOLOG, UNDO
  140. 79 = 1, RASADMIN.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  141. 80 = 1, RASCCP.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  142. 81 = 1, RASCHAP.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  143. 82 = 1, RASCTRS.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  144. 83 = 1, RASGTWY.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  145. 84 = 1, RASIPXCP.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  146. 85 = 1, RASMAN.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  147. 86 = 1, RASNBFCP.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  148. 87 = 1, RASPAP.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  149. 88 = 1, RASPPPEN.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  150. 89 = 1, RASSRV.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  151. 90 = 1, RASTAPI.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  152. 91 = 1, ROUTE.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  153. 92 = 1, RPCDGC3.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  154. 93 = 1, RPCDGS3.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  155. 94 = 1, RPCDGS6.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  156. 95 = 1, RPCLTC1.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  157. 96 = 1, RPCLTC3.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  158. 97 = 1, RPCLTC5.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  159. 98 = 1, RPCLTC6.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  160. 99 = 1, RPCLTC7.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  161. 100 = 1, RPCLTS3.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  162. 101 = 1, RPCLTS5.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  163. 102 = 1, RPCLTS6.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  164. 103 = 1, RPCRT4.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  165. 104 = 1, RPCSS.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  166. 105 = 1, RPLSVC.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  167. 106 = 1, SAMLIB.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  168. 107 = 1, SAMSRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  169. 108 = 1, SCM.EXE     , RENAME=$(NEWFILE), NOLOG, UNDO
  170. 109 = 1, SECURITY.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  171. 110 = 1, SENDFL32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  172. 111 = 1, SERVICES.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  173. 112 = 1, SETUPDLL.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  174. 113 = 1, SFMMGR.CPL  , RENAME=$(NEWFILE), NOLOG, UNDO
  175. 114 = 1, SFMMON.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  176. 115 = 1, SFMPRINT.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  177. 116 = 1, SHELL32.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  178. 117 = 1, SMSS.EXE    , RENAME=$(NEWFILE), NOLOG, UNDO
  179. 118 = 1, SRVSVC.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  180. 119 = 1, TYPELIB.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  181. 120 = 1, ULIB.DLL    , RENAME=$(NEWFILE), NOLOG, UNDO
  182. 121 = 1, UNTFS.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  183. 122 = 1, UPS.EXE     , RENAME=$(NEWFILE), NOLOG, UNDO
  184. 123 = 1, USER32.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  185. 124 = 1, USERINIT.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  186. 125 = 1, USRMGR.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  187. 126 = 1, VDMREDIR.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  188. 127 = 1, VFORM32.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  189. 128 = 1, VWIPXSPX.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  190. 129 = 1, WGPOMG32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  191. 130 = 1, WIN32SPL.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  192. 131 = 1, WINFILE.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  193. 132 = 1, WINHLP32.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  194. 133 = 1, WINLOGON.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  195. 134 = 1, WINMSD.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  196. 135 = 1, WINS.EXE    , RENAME=$(NEWFILE), NOLOG, UNDO
  197. 136 = 1, WINSADMN.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  198. 137 = 1, WINSCTRS.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  199. 138 = 1, WINSEVNT.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  200. 139 = 1, WINSRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  201. 140 = 1, WOW32.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  202. 141 = 1, WOWEXEC.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  203. 142 = 1, WOWFAXUI.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  204. 143 = 1, WSHNETBS.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  205. 144 = 1, WSOCK32.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  206. 145 = 1, GDSPACE.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  207. 146 = 1, GDSSET.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  208.  
  209. [FilesSystem]
  210.  
  211. [FilesDrivers]
  212. 1 = 1, 4MMDAT.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  213. 2 = 1, 4MMSONY.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  214. 3 = 1, 9TRACK.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  215. 4 = 1, AFD.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  216. 5 = 1, AHA154X.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  217. 6 = 1, AIC78XX.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  218. 7 = 1, ARCHQIC.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  219. 8 = 1, ASYNCMAC.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  220. 9 = 1, ATAPI.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  221. 10 = 1, ATDISK.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  222. 11 = 1, ATI.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  223. 12 = 1, BHNT.SYS    , RENAME=$(NEWFILE), NOLOG, UNDO
  224. 13 = 1, CIRRUS.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  225. 14 = 1, DC21X4.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  226. 15 = 1, DEFEA.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  227. 16 = 1, DEFPA.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  228. 17 = 1, DIGIFEP5.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  229. 18 = 1, DISKPERF.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  230. 19 = 1, DLC.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  231. 20 = 1, DLTTAPE.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  232. 21 = 1, DPTSCSI.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  233. 22 = 1, ELNKMC.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  234. 23 = 1, EXABYTE1.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  235. 24 = 1, EXABYTE2.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  236. 25 = 1, FASTFAT.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  237. 26 = 1, FLOPPY.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  238. 27 = 1, FPNWSRV.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  239. 28 = 1, I8042PRT.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  240. 29 = 1, IBMTOK.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  241. 30 = 1, IBMTOK2I.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  242. 31 = 1, MINIQIC.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  243. 32 = 1, NBF.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  244. 33 = 1, NCRC700.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  245. 34 = 1, NDIS.SYS    , RENAME=$(NEWFILE), NOLOG, UNDO
  246. 35 = 1, NDISWAN.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  247. 36 = 1, NE3200.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  248. 37 = 1, NETBIOS.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  249. 38 = 1, NETBT.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  250. 39 = 1, NETFLX.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  251. 40 = 1, NPFS.SYS    , RENAME=$(NEWFILE), NOLOG, UNDO
  252. 41 = 1, NPMCA.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  253. 42 = 1, NTCX.SYS    , RENAME=$(NEWFILE), NOLOG, UNDO
  254. 43 = 1, NTEPC.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  255. 44 = 1, NTFS.SYS    , RENAME=$(NEWFILE), NOLOG, UNDO
  256. 45 = 1, NTXALL.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  257. 46 = 1, NTXEM.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  258. 47 = 1, NWLNKIPX.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  259. 48 = 1, NWLNKNB.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  260. 49 = 1, NWLNKRIP.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  261. 50 = 1, NWLNKSPX.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  262. 51 = 1, NWRDR.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  263. 52 = 1, PARALLEL.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  264. 53 = 1, PCMCIA.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  265. 54 = 1, RDR.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  266. 55 = 1, SCSIDISK.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  267. 56 = 1, SERIAL.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  268. 57 = 1, SERMOUSE.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  269. 58 = 1, SFMATALK.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  270. 59 = 1, SFMSRV.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  271. 60 = 1, SRV.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  272. 61 = 1, STREAMS.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  273. 62 = 1, TANDQIC.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  274. 63 = 1, TCARC.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  275. 64 = 1, TCPIP.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  276. 65 = 1, WANGQIC.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  277.  
  278. [FilesConfig]
  279. [FilesWinspool]
  280. [FilesPrnDriver]
  281. 1 = 1, CANON800.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  282. 2 = 1, DICONIX.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  283. 3 = 1, ESCP2MS.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  284. 4 = 1, HPDSKJET.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  285. 5 = 1, HPPCL.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  286. 6 = 1, HPPCL5MS.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  287. 7 = 1, PCL1200.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  288. 8 = 1, PCL5EMS.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  289. 9 = 1, PCL5MS.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  290. 10 = 1, PLOTTER.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  291. 11 = 1, PLOTUI.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  292. 12 = 1, PSCRIPT.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  293. 13 = 1, PSCRPTUI.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  294. 14 = 1, RASDD.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  295. 15 = 1, RASDDUI.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  296. 16 = 1, TXTONLY.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  297.  
  298. [FilesPrnProc]
  299. 1 = 1, NWPRINT.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  300. 2 = 1, SFMPSPRT.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  301.  
  302. [FilesDbgCom]
  303. [FilesDbgCpl]
  304. [FilesDbgDll]
  305. [FilesDbgDrv]
  306. [FilesDbgExe]
  307. [FilesDbgScr]
  308. [FilesDbgSys]
  309. [FilesInfWinnt]
  310. 1 = 1, OEMNADAP.INF, RENAME=$(NEWFILE), NOLOG, UNDO
  311.  
  312. [FilesInfLanmanNT]
  313. 1 = 1, NWDOC.HLP   , RENAME=$(NEWFILE), NOLOG, UNDO
  314. 2 = 1, OEMNADAP.INF, RENAME=$(NEWFILE), NOLOG, UNDO
  315. 3 = 1, OEMNADD3.INF, RENAME=$(NEWFILE), NOLOG, UNDO
  316. 4 = 1, OEMNADDF.INF, RENAME=$(NEWFILE), NOLOG, UNDO
  317.  
  318. [FilesSystem32CopyAlways]
  319. 1 = 1, C_1250.NLS  , RENAME=$(NEWFILE), NOLOG, UNDO
  320. 2 = 1, C_20261.NLS , RENAME=$(NEWFILE), NOLOG, UNDO
  321. 3 = 1, C_28592.NLS , RENAME=$(NEWFILE), NOLOG, UNDO
  322. 4 = 1, PRFLBMSG.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  323. 5 = 1, SNMPAPI.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  324. 6 = 1, STDOLE2.TLB , RENAME=$(NEWFILE), NOLOG, UNDO
  325.  
  326. [FilesDriversCopyAlways]
  327. [FilesSystem32CopyAlwaysWINNT]
  328. [FilesSystem32CopyAlwaysLANMANNT]
  329. [FilesFpNwLogin]
  330. 1 = 1, LOGIN.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  331. 2 = 1, SLIST.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  332.  
  333. [FilesFpNwPublic]
  334. 1 = 1, ATTACH.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  335. 2 = 1, CAPTURE.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  336. 3 = 1, CHGPASS.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  337. 4 = 1, ENDCAP.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  338. 5 = 1, LOGIN.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  339. 6 = 1, LOGOUT.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  340. 7 = 1, MAP.EXE     , RENAME=$(NEWFILE), NOLOG, UNDO
  341. 8 = 1, SETPASS.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  342. 9 = 1, SLIST.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  343.  
  344. [FilesIIS]
  345. 1 = 1, FTPSVC2.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  346. 2 = 1, GDSPACE.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  347. 3 = 1, GDSSET.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  348. 4 = 1, GOPHERD.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  349. 5 = 1, HTTPODBC.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  350. 6 = 1, INETINFO.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  351. 7 = 1, INFOCOMM.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  352. 8 = 1, KEYGEN.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  353. 9 = 1, SSPIFILT.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  354. 10 = 1, W3SVC.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  355.  
  356. [FilesSSL]
  357. 1 = 1, SSLSSPI.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  358.  
  359. [FileAttributes]
  360. [ProcessorID]
  361.     ProcessorID_I386  = I386
  362.     ProcessorID_I486  = I486
  363.     ProcessorID_I586  = I586
  364.     ProcessorID_R4000 = R4000
  365. [UiVars]
  366.     STF_PLATFORMDET    = "" ? $(!LIBHANDLE) GetPlatform
  367.     STF_CSDVER         = 1280
  368.     STF_BUILDVER       = 1057
  369.     STF_CSD1_NT35      = 256
  370.     STF_NT31_BUILDVER  = 528
  371.     STF_NT35_BUILDVER  = 807
  372.     STF_NT351_BUILDVER = 1057
  373.     STF_NT351_MAJORVER = 3
  374.     STF_NT351_MINORVER = 51
  375.     STF_PRIMARY        = "C:"
  376.     STF_NTDRIVE        = ""
  377.     STF_WINDOWSPATH    = "" ? $(!LIBHANDLE) GetWindowsNtDir
  378.     STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
  379.     STF_CONTROLSET     = CurrentControlSet
  380.     VolumeList         = {} ? $(!LIBHANDLE) GetHardDriveLetters
  381.     VolumeFSList       = {} ? $(!LIBHANDLE) GetHardDriveFileSystems
  382.     VolumeFreeList     = {} ? $(!LIBHANDLE) GetHardDriveFreeSpace
  383.     DisketteList       = {} ? $(!LIBHANDLE) GetFloppyDriveLetters
  384. [FreeSpaceI386]
  385.     RequiredFreeWinnt  = 25
  386. [FreeSpaceMips]
  387.     RequiredFreeWinnt  = 32
  388. [FreeSpaceppc]
  389.     RequiredFreeWinnt  = 32
  390. [FreeSpaceAlpha]
  391.     RequiredFreeWinnt  = 27
  392. [NVRAMVars]
  393.     SystemPartition = "" ? $(!LIBHANDLE) GetNVRAMVar SYSTEMPARTITION
  394.     OsLoader        = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADER
  395.     OsLoadPartition = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADPARTITION
  396.     OsLoadFilename  = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADFILENAME
  397. [Shell Commands]
  398.     set-title "Windows NT Setup"
  399.     set-subst CR = "\r"
  400.     set-subst LF = "\n"
  401.     set STF_LANGUAGE = ENG
  402.     set STF_LANGUAGE_TYPE = 9
  403.     read-syms Strings
  404.     shell "subroutn.inf" PushBillboard STATUSDLG $(Billboard1)
  405.     set BillboardPushed = TRUE
  406.     set IISPathFound = FALSE
  407.     set CopySSL = TRUE
  408.     set CopyLoader = TRUE
  409.     set FPNWSysPathFound = FALSE
  410.     set !LIBHANDLE      = ""
  411.     set !PATCHLIBHANDLE = ""
  412.     install   LoadSetupLibrary
  413.     read-syms ProductType
  414.     ifstr(i) $(!STF_PLATFORM) == I386
  415.     set STF_PRNPLATFORM = "w32x86"
  416.     set SamsrvChksum = "2D17C"
  417.     else-ifstr(i) $(!STF_PLATFORM) == Mips
  418.         set STF_PRNPLATFORM = "w32mips"
  419.     set SamsrvChksum = "40CF2"
  420.     else-ifstr(i) $(!STF_PLATFORM) == ppc
  421.         set STF_PRNPLATFORM = "w32ppc"
  422.     set SamsrvChksum = "435C0"
  423.     else-ifstr(i) $(!STF_PLATFORM) == Alpha
  424.         set STF_PRNPLATFORM = "w32alpha"
  425.     set SamsrvChksum = "3FA62"
  426.     endif
  427.     read-syms UiVars
  428.     detect    UiVars
  429.     install   LoadPatchLibrary
  430.     read-syms FreeSpace$(!STF_PLATFORM)
  431.     ifstr(i) $(STF_PLATFORM) != $(STF_PLATFORMDET)
  432.          ifstr(i) $(BillboardPushed) == TRUE
  433.              shell "subroutn.inf" PopBillboard
  434.              set BillboardPushed = FALSE
  435.          endif
  436.          shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String1)
  437.          goto patchnotdone
  438.     endif
  439.     shell "registry.inf" CheckSetupModify
  440.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  441.         ifstr(i) $(BillboardPushed) == TRUE
  442.             shell "subroutn.inf" PopBillboard
  443.             set BillboardPushed = FALSE
  444.         endif
  445.         Debug-Output "shelling CheckSetupModify failed"
  446.         goto patchnotdone
  447.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  448.         ifstr(i) $(BillboardPushed) == TRUE
  449.             shell "subroutn.inf" PopBillboard
  450.             set BillboardPushed = FALSE
  451.         endif
  452.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String4)
  453.         goto patchnotdone
  454.     endif
  455.     shell "" GetCheckedFree
  456.     ifint $($ShellCode) == $(!SHELL_CODE_OK)
  457.         ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  458.             ifstr(i) $($R1) == "checked"
  459.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String15)
  460.                 goto patchnotdone
  461.             endif
  462.         endif
  463.     endif
  464.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckWindowsMajorVersion
  465.     ifint $(STATUS) > $(STF_NT351_MAJORVER)
  466.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  467.         goto patchnotdone
  468.     else-ifint $(STATUS) = $(STF_NT351_MAJORVER)
  469.         LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckWindowsMinorVersion
  470.         ifint $(STATUS) > $(STF_NT351_MINORVER)
  471.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  472.             goto patchnotdone
  473.         endif
  474.     endif
  475.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckBuildVersion
  476.     ifint $(STATUS) <= $(STF_NT35_BUILDVER)
  477.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String16)
  478.         goto patchnotdone
  479.     else-ifint $(STATUS) < $(STF_NT351_BUILDVER)
  480.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String17)
  481.         goto patchnotdone
  482.     else-ifint $(STATUS) > $(STF_NT351_BUILDVER)
  483.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  484.         goto patchnotdone
  485.     endif
  486.     shell "" GetCSDVersion
  487.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  488.         ifstr(i) $(BillboardPushed) == TRUE
  489.             shell "subroutn.inf" PopBillboard
  490.             set BillboardPushed = FALSE
  491.         endif
  492.         goto patchnotdone
  493.     endif
  494.     ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
  495.         goto patchnotdone
  496.     else
  497.         ifint $($R1) > $(!STF_CSDVER)
  498.             ifstr(i) $(BillboardPushed) == TRUE
  499.                 shell "subroutn.inf" PopBillboard
  500.                 set BillboardPushed = FALSE
  501.             endif
  502.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String8)
  503.             goto patchnotdone
  504.         endif
  505.     endif
  506.     ifstr(i) $(!STF_PLATFORM) == ppc
  507.         OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion" 33554432 KeyCurrentVersion
  508.         ifstr(i) $(KeyCurrentVersion) != ""
  509.             GetRegValue $(KeyCurrentVersion) "CSDVersion" CSDVersionList
  510.             ifstr(i) $(CSDVersionList) == "Power Managed Version X"
  511.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String19)
  512.                 goto patchnotdone
  513.             endif
  514.             GetRegValue $(KeyCurrentVersion) "PowerManagedVersion" PMVersionList
  515.             ifstr(i) $(PMVersionList) != ""
  516.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String19)
  517.                 goto patchnotdone
  518.             endif
  519.         endif
  520.     endif
  521.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetLanguageType
  522.     ifstr(i) $(STATUS) == ERROR
  523.         goto patchnotdone
  524.     else
  525.         ifstr(i) $(STATUS) != $(STF_LANGUAGE_TYPE)
  526.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String20)
  527.             goto patchnotdone
  528.         endif
  529.     endif
  530.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), FixFPNWFiles
  531.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetFPNWPathName
  532.     ifstr(i) $(STATUS) != "FAILURE"
  533.         set STF_FPNWSYSPATH = $(STATUS)
  534.         set FPNWSysPathFound = TRUE
  535.     endif
  536. skip_patchvercheck = +
  537.     GetDriveInPath !STF_NTDRIVE $(!STF_WINDOWSSYSPATH)
  538.     ifint *($(VolumeFreeList), ~($(VolumeList), $(!STF_NTDRIVE))) < $(RequiredFreeWinnt)
  539.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String13a)$(RequiredFreeWinnt)$(String13b)$(!STF_NTDRIVE)$(String13c)
  540.         goto patchnotdone
  541.     endif
  542.     set STF_PRODUCT = ""
  543.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ProductOptions" 33554432 KeyProductOption
  544.     ifstr(i) $(KeyProductOption) != ""
  545.         GetRegValue $(KeyProductOption) "ProductType" ProductTypeList
  546.         set TempProductType = *($(ProductTypeList),4)
  547.         ifstr(i) $(TempProductType) == "winnt"
  548.             set !STF_PRODUCT = WINNT
  549.             set !PRODUCT_DIR = WINNT
  550.         else-ifstr(i) $(TempProductType) == "lanmannt"
  551.             set !STF_PRODUCT = LANMANNT
  552.             set !PRODUCT_DIR = NTAS
  553.         else-ifstr(i) $(TempProductType) == "servernt"
  554.             set !STF_PRODUCT = SERVERNT
  555.             set !PRODUCT_DIR = NTAS
  556.         endif
  557.         CloseRegKey $(KeyProductOptions)
  558.     endif
  559.     ifstr(i) $(STF_PRODUCT) == ""
  560.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String14)
  561.         goto patchnotdone
  562.     endif
  563.     ifstr(i) $(!STF_PLATFORM) == I386
  564.         set STF_HALDEST = $(!STF_WINDOWSSYSPATH)
  565.         LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetOsLoaderDest
  566.         ifstr(i) $(STATUS) == ERROR
  567.             goto patchnotdone
  568.         else
  569.             set STF_OSLDEST = $(STATUS)
  570.         endif
  571.         set NtLdrName = $(STF_OSLDEST)"ntldr"
  572.         LibraryProcedure STATUS,$(!PATCHLIBHANDLE), IsNTLDRVersionNewer $(NtLdrName)
  573.         ifstr(i) $(STATUS) == "YES"
  574.             set CopyLoader = FALSE
  575.         endif
  576.     else
  577.         read-syms NVRAMVars
  578.         detect    NVRAMVars
  579.         LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetOsLoaderDest         +
  580.                                                          $(SystemPartition) +
  581.                                                          $(OsLoader)        +
  582.                                                          $(OsLoadPartition) +
  583.                                                          $(OsLoadFilename)
  584.         ifstr(i) $(STATUS) == ERROR
  585.             goto patchnotdone
  586.         else
  587.             set STF_OSLDEST = $(STATUS)
  588.             set STF_HALDEST = $(STATUS)
  589.         endif
  590.     endif
  591.     OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\INetStp" 33554432 KeySvc
  592.     ifstr(i) $(KeySvc) != ""
  593.         GetRegValue $(KeySvc) "InstallPath" DestPathValue
  594.         set !STF_IISPATH0 = *($(DestPathValue), 4)
  595.         ifstr(i) $(STF_IISPATH0) != ""
  596.             set IISPathFound = TRUE
  597.             set STF_IISPATH = $(STF_IISPATH0)\Server
  598.         endif
  599.     endif
  600.     CloseRegKey $(KeySvc)
  601.     set FileToCheck = $(STF_WINDOWSSYSPATH)\sslsspi.dll
  602.     LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileToCheck)
  603.     ifstr(i) $(STATUS) == YES
  604.     LibraryProcedure Result $(!PATCHLIBHANDLE) GetSslFileDesc $(FileToCheck)
  605.     ifstr(i) $(Result) == "128"
  606.         shell "" QueryOkCancel $(String22)
  607.         ifstr(i) $($R1) == "CANCEL"
  608.         set CopySSL = FALSE
  609.         endif
  610.     endif
  611.     endif
  612.     read-syms FilesKeyedSections
  613.     set KeyedClassKeys  = ^(FileKeyedClasses, 0)
  614.     set KeyedClassFiles = ^(FileKeyedClasses, 1)
  615.     set KeyedClassFilesList = {}
  616.     ForListDo $(KeyedClassKeys)
  617.         set TmpKey       = Files$($)
  618.         set TmpFile      = #(FileKeyedClasses, $($), 1)
  619.         set TmpFilePath  = $($(TmpKey))\$(TmpFile)
  620.         set KeyedClassFilesList = >($(KeyedClassFilesList), $(TmpFilePath))
  621.     EndForListDo
  622.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetFileTypes $(KeyedClassFilesList)
  623.     ifstr(i) $(STATUS) == ERROR
  624.         goto patchnotdone
  625.     else-ifstr(i) $(STATUS) == SETUPLOGNOTPRESENT
  626.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String11)
  627.         goto patchnotdone
  628.     else-ifstr(i) $(STATUS) == NTOSKRNLNOTFOUND
  629.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String21)
  630.         goto patchnotdone
  631.     else
  632.         ForListDo $(KeyedClassKeys)
  633.             set $($)Type = *($(STATUS), $(#))
  634.         EndForListDo
  635.     endif
  636.     ifstr(i) $(BillboardPushed) == TRUE
  637.         shell "subroutn.inf" PopBillboard
  638.         set BillboardPushed = FALSE
  639.     endif
  640.     ifstr(i) $(Unattended) != TRUE
  641.         shell "" QueryOkCancel $(String9)
  642.         ifstr(i) $($R1) == "OK"
  643.         else
  644.             set String = $(String12)
  645.             goto finish2
  646.         endif
  647.     endif
  648.     shell "subroutn.inf" PushBillboard STATUSDLG $(Billboard2)
  649.     set BillboardPushed = TRUE
  650.     set MoveFileExList  = {}
  651.     read-syms FileSections
  652.     set FileSectionsList = ^(FileSections, 0)
  653.     set FileSource  = $(!STF_SRCDIR)
  654.     ForListDo $(FileSectionsList)
  655.         set FileSection = $($)
  656.         set FileDest    = $($($))
  657.         set FileList    = ^($(FileSection), 0)
  658.         ForListDo $(FileList)
  659.             set FileKey          = $($)
  660.             set File             = #($(FileSection), $(FileKey), 2)
  661.             set FileDestFullPath = $(FileDest)\$(File)
  662.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  663.             ifstr(i) $(STATUS) == YES
  664.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  665.                 ifstr(i) $(STATUS) == ERROR
  666.                     goto patchnotdone
  667.                 else
  668.                     ifstr(i) $(STATUS) == "YES"
  669.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  670.                         ifstr(i) $(NEWFILE) == ERROR
  671.                             goto patchnotdone
  672.                         else
  673.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  674.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  675.                         endif
  676.                     else
  677.                         set NEWFILE = $(File)
  678.                     endif
  679.                     install Install-File
  680.                 endif
  681.             endif
  682.         EndForListDo
  683.     EndForListDO
  684.     set FileSource  = $(!STF_SRCDIR)
  685.     ForListDo $(KeyedClassKeys)
  686.         set FileSection = Files$($)
  687.         set FileDest    = $($(FileSection))
  688.         set FileKey     = $($($)Type)
  689.         set KeyedClassChoices = ^(Files$($), 0)
  690.         ifcontains(i) $(FileKey) in $(KeyedClassChoices)
  691.             set File             = #(FileKeyedClasses, $($), 1)
  692.             set FileDestFullPath = $(FileDest)\$(File)
  693.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  694.             ifstr(i) $(STATUS) == YES
  695.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  696.                 ifstr(i) $(STATUS) == ERROR
  697.                     goto patchnotdone
  698.                 else
  699.                     ifstr(i) $(STATUS) == "YES"
  700.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  701.                         ifstr(i) $(NEWFILE) == ERROR
  702.                             goto patchnotdone
  703.                         else
  704.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  705.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  706.                         endif
  707.                     else
  708.                         set NEWFILE = $(File)
  709.                     endif
  710.                     install Install-File
  711.                 endif
  712.             endif
  713.         endif
  714.     EndForListDo
  715.     ifstr(i) $(STF_PRODUCT) == "WINNT"
  716.         set TEMP_PRODUCT = WINNT
  717.     else
  718.         set TEMP_PRODUCT = LANMANNT
  719.     endif
  720.     read-syms FileSections$(TEMP_PRODUCT)
  721.     set FileSectionsList = ^(FileSections$(TEMP_PRODUCT), 0)
  722.     set FileSource  = $(!STF_SRCDIR)$(PRODUCT_DIR)
  723.     ForListDo $(FileSectionsList)
  724.         set FileSection = $($)
  725.         set FileDest    = $($($))
  726.         set FileList    = ^($(FileSection), 0)
  727.         ForListDo $(FileList)
  728.             set FileKey      = $($)
  729.             set File         = #($(FileSection), $(FileKey), 2)
  730.             set FileDestFullPath = $(FileDest)\$(File)
  731.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  732.             ifstr(i) $(STATUS) == YES
  733.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  734.                 ifstr(i) $(STATUS) == ERROR
  735.                     goto patchnotdone
  736.                 else
  737.                     ifstr(i) $(STATUS) == "YES"
  738.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  739.                         ifstr(i) $(NEWFILE) == ERROR
  740.                             goto patchnotdone
  741.                         else
  742.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  743.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  744.                         endif
  745.                     else
  746.                         set NEWFILE = $(File)
  747.                     endif
  748.                     install Install-File
  749.                 endif
  750.             endif
  751.         EndForListDo
  752.     EndForListDO
  753.     ifstr(i) $(BillboardPushed) == TRUE
  754.         shell "subroutn.inf" PopBillboard
  755.         set BillboardPushed = FALSE
  756.     endif
  757.     read-syms FileSectionsCopyAlways
  758.     set FileSectionsList = ^(FileSectionsCopyAlways, 0)
  759.     set FileSource  = $(!STF_SRCDIR)
  760.     ForListDo $(FileSectionsList)
  761.         set FileSection = $($)
  762.         set FileDest    = $($($))
  763.         set FileList    = ^($(FileSection), 0)
  764.         ForListDo $(FileList)
  765.             set FileKey = $($)
  766.             set File    = #($(FileSection), $(FileKey), 2)
  767.             set NEWFILE = $(File)
  768.             set FileDestFullPath = $(FileDest)\$(File)
  769.             install Install-File
  770.         EndForListDo
  771.     EndForListDO
  772.     read-syms FileSectionsCopyAlways$(TEMP_PRODUCT)
  773.     set FileSectionsList = ^(FileSectionsCopyAlways$(TEMP_PRODUCT), 0)
  774.     set FileSource  = $(!STF_SRCDIR)$(PRODUCT_DIR)
  775.     ForListDo $(FileSectionsList)
  776.         set FileSection = $($)
  777.         set FileDest    = $($($))
  778.         set FileList    = ^($(FileSection), 0)
  779.         ForListDo $(FileList)
  780.             set FileKey = $($)
  781.             set File    = #($(FileSection), $(FileKey), 2)
  782.             set NEWFILE = $(File)
  783.             set FileDestFullPath = $(FileDest)\$(File)
  784.             install Install-File
  785.         EndForListDo
  786.     EndForListDO
  787.     ifstr(i) $(FPNWSysPathFound) == TRUE
  788.         read-syms FileSectionsFPNW
  789.         set FileSectionsList = ^(FileSectionsFPNW, 0)
  790.         set FileSource  = $(!STF_SRCDIR)
  791.         ForListDo $(FileSectionsList)
  792.             set FileSection = $($)
  793.             set FileDest    = $($($))
  794.             set FileList    = ^($(FileSection), 0)
  795.             ForListDo $(FileList)
  796.                 set FileKey      = $($)
  797.                 set File         = #($(FileSection), $(FileKey), 2)
  798.                 set FileDestFullPath = $(FileDest)\$(File)
  799.                 LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  800.                 ifstr(i) $(STATUS) == YES
  801.                     LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  802.                     ifstr(i) $(STATUS) == ERROR
  803.                         goto patchnotdone
  804.                     else
  805.                         ifstr(i) $(STATUS) == "YES"
  806.                             LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  807.                             ifstr(i) $(NEWFILE) == ERROR
  808.                                 goto patchnotdone
  809.                             else
  810.                                 set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  811.                                 set MoveFileExList = >($(MoveFileExList), $(FileComp))
  812.                             endif
  813.                         else
  814.                             set NEWFILE = $(File)
  815.                         endif
  816.                         install Install-File
  817.                     endif
  818.                 endif
  819.             EndForListDo
  820.         EndForListDO
  821.     endif
  822.     ifstr(i) $(CopyLoader) == TRUE
  823.         read-syms FileSectionsOsLoader
  824.         set FileSectionsList = ^(FileSectionsOsLoader, 0)
  825.         set FileSource  = $(!STF_SRCDIR)
  826.         ForListDo $(FileSectionsList)
  827.             set FileSection = $($)
  828.             set FileDest    = $($($))
  829.             set FileList    = ^($(FileSection), 0)
  830.             ForListDo $(FileList)
  831.                 set FileKey      = $($)
  832.                 set File         = #($(FileSection), $(FileKey), 2)
  833.                 set FileDestFullPath = $(FileDest)\$(File)
  834.                 LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  835.                 ifstr(i) $(STATUS) == YES
  836.                     LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  837.                     ifstr(i) $(STATUS) == ERROR
  838.                         goto patchnotdone
  839.                     else
  840.                         ifstr(i) $(STATUS) == "YES"
  841.                             LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  842.                             ifstr(i) $(NEWFILE) == ERROR
  843.                                 goto patchnotdone
  844.                             else
  845.                                 set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  846.                                 set MoveFileExList = >($(MoveFileExList), $(FileComp))
  847.                             endif
  848.                         else
  849.                             set NEWFILE = $(File)
  850.                         endif
  851.                         install Install-File
  852.                     endif
  853.                 endif
  854.             EndForListDo
  855.         EndForListDO
  856.     endif
  857.     ifstr(i) $(IISPathFound) == TRUE
  858.         read-syms FileSectionsIIS
  859.         set FileSectionsList = ^(FileSectionsIIS, 0)
  860.         set FileSource  = $(!STF_SRCDIR)
  861.         ForListDo $(FileSectionsList)
  862.             set FileSection = $($)
  863.             set FileDest    = $($($))
  864.             set FileList    = ^($(FileSection), 0)
  865.             ForListDo $(FileList)
  866.                 set FileKey      = $($)
  867.                 set File         = #($(FileSection), $(FileKey), 2)
  868.                 set FileDestFullPath = $(FileDest)\$(File)
  869.                 LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  870.                 ifstr(i) $(STATUS) == YES
  871.                     LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  872.                     ifstr(i) $(STATUS) == ERROR
  873.                         goto patchnotdone
  874.                     else
  875.                         ifstr(i) $(STATUS) == "YES"
  876.                             LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  877.                             ifstr(i) $(NEWFILE) == ERROR
  878.                                 goto patchnotdone
  879.                             else
  880.                                 set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  881.                                 set MoveFileExList = >($(MoveFileExList), $(FileComp))
  882.                             endif
  883.                         else
  884.                             set NEWFILE = $(File)
  885.                         endif
  886.                         install Install-File
  887.                     endif
  888.                 endif
  889.             EndForListDo
  890.         EndForListDO
  891.     endif
  892.     ifstr(i) $(CopySSL) == TRUE
  893.     read-syms FileSectionsSSL
  894.     set FileSectionsList = ^(FileSectionsSSL, 0)
  895.         set FileSource  = $(!STF_SRCDIR)
  896.         ForListDo $(FileSectionsList)
  897.             set FileSection = $($)
  898.             set FileDest    = $($($))
  899.             set FileList    = ^($(FileSection), 0)
  900.             ForListDo $(FileList)
  901.                 set FileKey      = $($)
  902.                 set File         = #($(FileSection), $(FileKey), 2)
  903.                 set FileDestFullPath = $(FileDest)\$(File)
  904.                 LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  905.                 ifstr(i) $(STATUS) == YES
  906.                     LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  907.                     ifstr(i) $(STATUS) == ERROR
  908.                         goto patchnotdone
  909.                     else
  910.                         ifstr(i) $(STATUS) == "YES"
  911.                             LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  912.                             ifstr(i) $(NEWFILE) == ERROR
  913.                                 goto patchnotdone
  914.                             else
  915.                                 set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  916.                                 set MoveFileExList = >($(MoveFileExList), $(FileComp))
  917.                             endif
  918.                         else
  919.                             set NEWFILE = $(File)
  920.                         endif
  921.                         install Install-File
  922.                     endif
  923.                 endif
  924.             EndForListDo
  925.         EndForListDO
  926.     endif
  927.     read-syms ProgressCopy$(!STF_LANGUAGE)
  928.     install   Install-DoCopy
  929.     ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  930.         goto patchnotdone
  931.     else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  932.         goto patchnotdone
  933.     endif
  934.     set FileSection = "FileAttributes"
  935.     set FileList    = ^(FileSection, 0)
  936.     ForListDo $(FileList)
  937.         set FileKey          = $($)
  938.         set File             = #($(FileSection), $(FileKey), 2)
  939.         set FileDest         = #($(FileSection), $(FileKey), 3)
  940.         set FilePerms        = #($(FileSection), $(FileKey), 4)
  941.         set FileDestFullPath = $(FileDest)\$(File)
  942.         ifstr(i) $(FilePerms) != ""
  943.             LibraryProcedure STATUS,$(!PATCHLIBHANDLE),ChangeFileAttributes $(FilePerms) $(FileDestFullPath)
  944.         endif
  945.     EndForListDo
  946. processmovefileex=+
  947.     ForListDo $(MoveFileExList)
  948.         set ExistingPath = *($($), 1)
  949.         set NewPath      = *($($), 2)
  950.         LibraryProcedure STATUS, $(!PATCHLIBHANDLE), CopyFileOnReboot $(ExistingPath) $(NewPath)
  951.         ifstr(i) $(STATUS) == ERROR
  952.             goto patchnotdone
  953.         endif
  954.     EndForListDo
  955.     ifstr(i) $(!STF_PLATFORM) == I386
  956.         set NtLdrPath = $(STF_OSLDEST)"ntldr"
  957.         LibraryProcedure STATUS, $(!PATCHLIBHANDLE), ForceFileNoCompress $(NtLdrPath)
  958.         ifstr(i) $(STATUS) == ERROR
  959.             goto patchnotdone
  960.         endif
  961.     endif
  962. patchdone =+
  963.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), RestoreSetupLog
  964.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), FixSetupLogChksum $(SamsrvChksum)
  965.     ifstr(i) $(BillboardPushed) == TRUE
  966.         shell "subroutn.inf" PopBillboard
  967.         set BillboardPushed = FALSE
  968.     endif
  969.     shell "" DoRegistryModifications $(!STF_CSDVER)
  970.     ifstr(i) $(Unattended) != TRUE
  971.         read-syms SetupDoneDlg$(!STF_LANGUAGE)
  972.         ui start "SetupDone"
  973.         ifstr(i) $(DLGEVENT) == "CONTINUE"
  974.             ui pop 1
  975.             goto rebootend
  976.         else
  977.             ui pop 1
  978.             goto finish1
  979.         endif
  980.     else
  981.         goto rebootend
  982.     endif
  983. patchnotdone =+
  984.     set String = $(String2)
  985. finish2 =+
  986.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), RestoreSetupLog
  987.     ifstr(i) $(BillboardPushed) == TRUE
  988.         shell "subroutn.inf" PopBillboard
  989.         set BillboardPushed = FALSE
  990.     endif
  991.     shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String)
  992.     goto finish1
  993. finish1 =+
  994.     install   FreeSetupLibrary
  995. finish =+
  996.     install   FreePatchLibrary
  997.     exit
  998. rebootend =+
  999.     set Reboot = YES
  1000.     ifstr(i) $(Unattended) != TRUE
  1001.     install    Install-Shutdown
  1002.     else
  1003.     ifstr(i) $(ForceClose) != TRUE
  1004.         set ForceAppsClosed = NO
  1005.     else
  1006.         set ForceAppsClosed = YES
  1007.     endif
  1008.     install Install-Shutdown2
  1009.     endif
  1010.     goto finish1
  1011.     exit
  1012. [LoadPatchLibrary]
  1013.     LoadLibrary "x" $(CWD)\patchdll.dll !PATCHLIBHANDLE
  1014.     exit
  1015. [FreePatchLibrary]
  1016.     ifstr(i) $(!PATCHLIBHANDLE) != ""
  1017.         FreeLibrary $(!PATCHLIBHANDLE)
  1018.     endif
  1019.     exit
  1020. [LoadSetupLibrary]
  1021.     LoadLibrary "x" $(!STF_CWDDIR)setupdll.dll !LIBHANDLE
  1022.     exit
  1023. [FreeSetupLibrary]
  1024.     ifstr(i) $(!LIBHANDLE) != ""
  1025.         FreeLibrary $(!LIBHANDLE)
  1026.     endif
  1027.     exit
  1028. [Install-File]
  1029.     set STF_VITAL = ""
  1030.     AddSectionKeyFileToCopyList $(FileSection) $(FileKey) $(FileSource) $(FileDest)
  1031.     exit
  1032. [Install-DoCopy]
  1033.     CopyFilesInCopyList
  1034.     exit
  1035. [Install-Shutdown]
  1036.     LibraryProcedure STATUS,$(!LIBHANDLE),ShutdownSystem $(Reboot)
  1037.     exit
  1038. [Install-Shutdown2]
  1039.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE),ShutdownSystem2 $(Reboot) $(ForceAppsClosed)
  1040.     exit
  1041. [RegistryConstants]
  1042.     MaskAllAccess          = 33554432
  1043.     NoTitle                = 0
  1044.     RegLastError           = $(!REG_ERROR_SUCCESS)
  1045.     CurrentControlSet      = "SYSTEM\CurrentControlSet"
  1046.     ServicesBaseName       = $(CurrentControlSet)"\Services"
  1047.     NetbtKeyPath           = $(ServicesBaseName)"\Netbt"
  1048. [DoRegistryModifications]
  1049.     set Status = STATUS_FAILED
  1050.     read-syms RegistryConstants
  1051.     set KeyPath   = { +
  1052.                      {SOFTWARE,                $(NoTitle), $(MaskAllAccess)}, +
  1053.                      {Microsoft,               $(NoTitle), $(MaskAllAccess)}, +
  1054.                      {"Windows NT",            $(NoTitle), $(MaskAllAccess)}, +
  1055.                      {CurrentVersion,          $(NoTitle), $(MaskAllAccess)}, +
  1056.                      {"Time Zones",            $(NoTitle), $(MaskAllAccess)}, +
  1057.                      {"E. South America Standard Time",     $(NoTitle), $(MaskAllAccess)}  +
  1058.                     }
  1059.     set KeyValues = { +
  1060.                      {Display, $(NoTitle), $(!REG_VT_SZ), "(GMT-03:00) Brasilia" } +
  1061.                     }
  1062.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  1063.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1064.         goto endCSDVersionCreate
  1065.     endif
  1066.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1067.         goto endCSDVersionCreate
  1068.     else
  1069.         CloseRegKey $($R1)
  1070.     endif
  1071.     set KeyPath   = { +
  1072.                      {SYSTEM,                $(NoTitle), $(MaskAllAccess)}, +
  1073.                      {CurrentControlSet,     $(NoTitle), $(MaskAllAccess)}, +
  1074.                      {Services,              $(NoTitle), $(MaskAllAccess)}, +
  1075.                      {Eventlog,              $(NoTitle), $(MaskAllAccess)}, +
  1076.                      {Application,           $(NoTitle), $(MaskAllAccess)}, +
  1077.                      {Perflib,               $(NoTitle), $(MaskAllAccess)}  +
  1078.                     }
  1079.     set KeyValues = { +
  1080.                      {EventMessageFile, $(NoTitle), $(!REG_VT_EXPAND_SZ), "%SystemRoot%\system32\prflbmsg.dll" } +
  1081.                      {TypesSupported, $(NoTitle), $(!REG_VT_DWORD), 7 } +
  1082.                     }
  1083.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  1084.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1085.         goto endCSDVersionCreate
  1086.     endif
  1087.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1088.         goto endCSDVersionCreate
  1089.     else
  1090.         CloseRegKey $($R1)
  1091.     endif
  1092.     OpenRegKey $(!REG_H_LOCAL) "" $(NetbtKeyPath) $(MaskAllAccess) KeyNetbt
  1093.     ifstr(i) $(KeyNetbt) != ""
  1094.         DeleteRegKey $(KeyNetbt) "Performance"
  1095.         CloseRegKey $(KeyNetbt)
  1096.     endif
  1097.     set KeyPath   = { +
  1098.                      {SYSTEM,                $(NoTitle), $(MaskAllAccess)}, +
  1099.                      {CurrentControlSet,     $(NoTitle), $(MaskAllAccess)}, +
  1100.                      {Control,               $(NoTitle), $(MaskAllAccess)}, +
  1101.                      {NLS,                   $(NoTitle), $(MaskAllAccess)}, +
  1102.                      {CodePage,              $(NoTitle), $(MaskAllAccess)}  +
  1103.                     }
  1104.     set KeyValues = { +
  1105.                      {1250,  $(NoTitle), $(!REG_VT_SZ), "C_1250.NLS" } +
  1106.                      {20261, $(NoTitle), $(!REG_VT_SZ), "C_20261.NLS" } +
  1107.                      {28592, $(NoTitle), $(!REG_VT_SZ), "C_28592.NLS" } +
  1108.                     }
  1109.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  1110.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1111.         goto endCSDVersionCreate
  1112.     endif
  1113.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1114.         goto endCSDVersionCreate
  1115.     else
  1116.         CloseRegKey $($R1)
  1117.     endif
  1118.     set KeyPath   = { +
  1119.                      {SYSTEM,                  $(NoTitle), $(MaskAllAccess)}, +
  1120.                      {CurrentControlSet,       $(NoTitle), $(MaskAllAccess)}, +
  1121.                      {Control,                 $(NoTitle), $(MaskAllAccess)}, +
  1122.                      {Lsa,                     $(NoTitle), $(MaskAllAccess)}  +
  1123.                     }
  1124.     set KeyValues = { +
  1125.                      {UpgradeSam, $(NoTitle), $(!REG_VT_DWORD), 1} +
  1126.                     }
  1127.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  1128.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1129.         goto endCSDVersionCreate
  1130.     endif
  1131.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1132.         goto endCSDVersionCreate
  1133.     else
  1134.         CloseRegKey $($R1)
  1135.     endif
  1136.     set KeyPath   = { +
  1137.                      {SYSTEM,            $(NoTitle), $(MaskAllAccess)}, +
  1138.                      {CurrentControlSet, $(NoTitle), $(MaskAllAccess)}, +
  1139.                      {Control,           $(NoTitle), $(MaskAllAccess)}, +
  1140.                      {ProductOptions,    $(NoTitle), $(MaskAllAccess)}, +
  1141.                     }
  1142.     set KeyValues = { +
  1143.                      {CSDVersion, $(NoTitle), $(!REG_VT_DWORD), $($0) } +
  1144.                     }
  1145.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  1146.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1147.         goto endCSDVersionCreate
  1148.     endif
  1149.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  1150.         goto endCSDVersionCreate
  1151.     else
  1152.         CloseRegKey $($R1)
  1153.     endif
  1154.     LibraryProcedure STATUS, $(!PATCHLIBHANDLE), ChangeReservedResourcesValues
  1155.     set Status = STATUS_SUCCESSFUL
  1156. endCSDVersionCreate = +
  1157.     Return $(Status)
  1158. [GetCSDVersion]
  1159.     set Status = STATUS_SUCCESSFUL
  1160.     read-syms RegistryConstants
  1161.     set CSDVersion = 0
  1162.     set KeyName = "SYSTEM\CurrentControlSet\Control\ProductOptions"
  1163.     OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle
  1164.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1165.         Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access"
  1166.         goto end_GetCSDVersion
  1167.     endif
  1168.     GetRegValue $(KeyHandle) "CSDVersion" CSDVersionValue
  1169.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1170.         CloseRegKey $(KeyHandle)
  1171.         goto end_GetCSDVersion
  1172.     endif
  1173.     set CSDVersion =  *($(CSDVersionValue), 4)
  1174.     CloseRegKey $(KeyHandle)
  1175. end_GetCSDVersion = +
  1176.     Return $(Status) $(CSDVersion)
  1177. [GetCheckedFree]
  1178.     set Status = STATUS_SUCCESSFUL
  1179.     read-syms RegistryConstants
  1180.     set System = Free
  1181.     set KeyName = "Software\Microsoft\Windows NT\CurrentVersion"
  1182.     OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle
  1183.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1184.         Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access"
  1185.         goto end_GetCheckedFree
  1186.     endif
  1187.     GetRegValue $(KeyHandle) "CurrentType" CurrentTypeValue
  1188.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1189.         CloseRegKey $(KeyHandle)
  1190.         goto end_GetCheckedFree
  1191.     endif
  1192.     Split-String *($(CurrentTypeValue), 4) " " CurrentTypeList
  1193.     ForListDo $(CurrentTypeList)
  1194.        ifstr(i) $($) == "free"
  1195.           set System = free
  1196.        else-ifstr(i) $($) == "checked"
  1197.           set System = checked
  1198.        endif
  1199.     EndForListDo
  1200.     CloseRegKey $(KeyHandle)
  1201. end_GetCheckedFree = +
  1202.     Return $(Status) $(System)
  1203. [QueryOkCancel]
  1204.     set DlgText = $($0)
  1205.     read-syms QueryOKCancelDlg$(!STF_LANGUAGE)
  1206.     ui start "SetupMessage"
  1207.     ifstr(i) $(DLGEVENT) == "OK"
  1208.         set Status     = STATUS_SUCCESSFUL
  1209.         set UserAction = $(DLGEVENT)
  1210.     else-ifstr(i) $(DLGEVENT) == "CANCEL"
  1211.         set Status     = STATUS_SUCCESSFUL
  1212.         set UserAction = $(DLGEVENT)
  1213.     else
  1214.         set Status     = STATUS_FAILED
  1215.         set UserAction = "CANCEL"
  1216.     endif
  1217.     Return $(Status) $(UserAction)
  1218. [Source Media Descriptions]
  1219.     1 = "Windows NT Workstation CD-ROM" , TAGFILE = cdrom.w
  1220. [Signature]
  1221.     FileType = MICROSOFT_FILE
  1222. [GetSignature]
  1223.     read-syms Signature
  1224.     return $(FileType)
  1225. [ProductType]
  1226. STF_PRODUCT  = Winnt
  1227. STF_PLATFORM = Mips
  1228. [Source Media Descriptions]
  1229.     1  = "Windows NT 3.51 Update Disk #1"  , TAGFILE = disk1
  1230.     2  = "Windows NT 3.51 Update Disk #2"  , TAGFILE = disk2
  1231.     3  = "Windows NT 3.51 Update Disk #3"  , TAGFILE = disk3
  1232.     4  = "Windows NT 3.51 Update Disk #4"  , TAGFILE = disk4
  1233.     5  = "Windows NT 3.51 Update Disk #5"  , TAGFILE = disk5
  1234.     6  = "Windows NT 3.51 Update Disk #6"  , TAGFILE = disk6
  1235.     7  = "Windows NT 3.51 Update Disk #7"  , TAGFILE = disk7
  1236.     8  = "Windows NT 3.51 Update Disk #8"  , TAGFILE = disk8
  1237.     9  = "Windows NT 3.51 Update Disk #9"  , TAGFILE = disk9
  1238.     10 = "Windows NT 3.51 Update Disk #10" , TAGFILE = disk10
  1239. [Strings]
  1240.     String1 = "This update disk cannot be used on this platform."
  1241.     String2 = "Setup failed to update the system."
  1242.     String3 = "Setup has successfully updated your system."
  1243.     String4 = "You do not have permission to update the system.  Please contact your system administrator."
  1244.     String5 = "Setup failed to setup your updated files for secure operation."
  1245.     String8 = "Setup has detected that the version of the system installed is "+
  1246.               "newer than the update you are applying to it.  The update can render "+
  1247.               "your system unstartable."
  1248.     String9 = "Setup is going to update your Windows NT system with the English "+
  1249.               "version of the update program.  If you wish to cancel the update "+
  1250.               "process, please press Cancel or press OK to continue."
  1251.     String11 = "Setup couldn't find the setup.log file in your repair directory. "+
  1252.                "Setup cannot proceed to update your system.  Please copy the setup.log "+
  1253.                "file from your Emergency Repair Disk to your repair directory "+
  1254.                "and restart the update."
  1255.     String12 = "Setup has not updated your system.  If you wish to update your "+
  1256.                "system please run the update utility again."
  1257.     String13a = "Not enough hard disk space to run Setup.  Setup needs at least "
  1258.     String13b = "MB of free hard disk space on "
  1259.     String13c = " before it can be run.  Delete some"+
  1260.                 " files and run the Update program again."
  1261.     String14  = "Setup cannot update your Windows NT files because it could not "+
  1262.                 "determine your product type.  Your registry may be corrupt."
  1263.     String15  = "Setup cannot update your checked system.  The update can only "+
  1264.                 "be applied to the retail system."
  1265.     String16  = "Setup cannot update your Windows NT files because your system is "+
  1266.                 "NT 3.1 or NT 3.5. Please upgrade your system to the retail Windows NT 3.51, "+
  1267.                 "and then update your system."
  1268.     String17  = "Setup cannot update your Windows NT files because your system is "+
  1269.                 "a pre-release of NT 3.51. Please upgrade your system to the retail "+
  1270.                 "Windows NT 3.51, and then update your system."
  1271.     String18  = "Setup cannot update your Windows NT files because your system is "+
  1272.                 "a version later than NT 3.51.  The update can only be applied "+
  1273.                 "to Windows NT 3.51."
  1274.     String19  = "Setup cannot update your Windows NT files because you have installed "+
  1275.                 "the IBM Power Management version of NT 3.51.  Please see IBM for "+
  1276.                 "a Service Pack that can be installed on your system."
  1277.     String20  = "Setup cannot update your Windows NT files because the language "+
  1278.                 "installed on your system is different from the Service Pack language."
  1279.     String21  = "Setup cannot find the location of your NTOSKRNL.EXE file in SETUP.LOG.  "+
  1280.                 "You may have renamed the Windows NT root directory since you first installed "+
  1281.                 "your system.  For the Service Pack Update to work correctly, you must rename "+
  1282.                 "your root directory back to what it was when you first installed your system."
  1283.     String22  = "You have a domestic-version 128-bit PCT/SSL security provider installed on your machine."$(LF)$(LF)+
  1284.                 "This Service Pack contains only an export grade version 40-bit PCT/SSL security provider."$(LF)$(LF)+
  1285.                 "Select Cancel to skip copying this file.  Your original 128-bit security provider will be left intact."$(LF)+
  1286.                 "Please see the readme.txt for information on obtaining the updated 128-bit security provider."$(LF)$(LF)+
  1287.                 "Otherwise, if you really know what you're doing, hit OK to overwrite."$(LF)$(LF)+
  1288.                 "Want to overwrite?"
  1289.     Billboard1 = "Please wait..."
  1290.     Billboard2 = "Please wait while the files to be updated are determined..."
  1291.     Billboard3 = "Please wait while the Emergency Repair Disk is updated..."
  1292. [ProgressCopyENG]
  1293.     ProCaption   = "Windows NT Setup"
  1294.     ProCancel    = "Cancel"
  1295.     ProCancelMsg = "The Windows NT 3.51 files are not completely updated.  Are you sure you want "+
  1296.                    "to cancel copying files?"
  1297.     ProCancelCap = "Setup Message"
  1298.     ProText1     = "Copying:"
  1299.     ProText2     = "To:"
  1300. [SetupDoneDlgENG]
  1301.     Caption     = "Windows NT Setup"
  1302.     DlgText     = "Windows NT 3.51 has been updated. If you change or add "+
  1303.                   "any components to your system, you will need to "+
  1304.                   "reapply the update."$(!LF)$(!LF)+
  1305.                   "Remove disks from the floppy disk drives and "+
  1306.                   "choose Restart Computer to run the updated system."
  1307.     Reboot      = "&Restart Computer"
  1308.     Windows     = "E&xit to Windows NT"
  1309.     DlgType     = "Info"
  1310.     DlgTemplate = "REBOOT"
  1311. [QueryOKCancelDlgENG]
  1312.     STF_MB_TITLE = "Setup Message"
  1313.     DlgType      = "MessageBox"
  1314.     STF_MB_TEXT  = $(DlgText)
  1315.     STF_MB_TYPE  = 2
  1316.     STF_MB_ICON  = 4
  1317.     STF_MB_DEF   = 1
  1318.