;///////////////////////////////////////////////////////////////////////////// ;// !!! READ THIS BEFORE YOU CHANGE THIS FILE !!! ;// --------------------------------------------- ;// ;// This file is used by ClusOCM.dll in Whistler to install or upgrade ;// cluster service binaries. ;// ;// This file has one section for clean install and five for upgrades (from ;// NT4, from Win2K and Whistler when the binaries are installed but ;// node is not part of cluster, from Win2K and Whistler when node is part ;// of cluster.). Changing any section will most probably affect all ;// other sections. So, when you change any section, go through the following ;// checklist. ;// ;// 1. Check if the changes that you made, need to be made in the other scenarios ;// as well. If so, make the corresponding changes in other sections as well. ;// For example, if you make a change to the way the node is upgraded from Win2K ;// check if this change is applicable for upgrades from NT4 as well. ;// ;// 2. If you are changing the upgrade path, YOU WILL HAVE TO CHANGE THE FORM, ;// JOIN AND CLEANUP code as well. Make sure that these changes are made in ;// the Mgmt\ClusCfg\BaseCluster component. ;// ;// 3. Every section has a cleanup section as well. The cleanup section is used ;// to undo the changes made (as far as possible), if an error occurs. So, if ;// you add something to a section see if you need to undo this action in the ;// cleanup section. ;// ;// 4. If any subsection is reused by more than one section (for example, the ;// then put under the 'Common' heading in this file. ;// ;///////////////////////////////////////////////////////////////////////////// [Version] Signature= "$Windows NT$" LayoutFile=layout.inf ;///////////////////////////////////////////////////////////////////////////// ;// Sections needed by OC Manager ;///////////////////////////////////////////////////////////////////////////// [Optional Components] Cluster [Cluster] OptionDesc=%ClusterComponentDesc% Tip=%ClusterComponentTip% ;///////////////////////////////////////////////////////////////////////////// ;// Clean install section ;///////////////////////////////////////////////////////////////////////////// [Clean_Install] CopyFiles=ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterWMIFiles AddReg=FilesInstalledInstallStateReg, InstallDirReg, ClusterLogReg, CluAdminReg, ClusNetPortReserveAddReg DelReg=ClusNetPortReserveDelReg AddService=ClusDisk,,ClusDiskService RegisterDlls=ClusterCOMComponents ProfileItems=CluAdminProfile [Clean_Install_Cleanup] DelReg=CleanInstallCleanupReg DelService=ClusDisk ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Registry entries for clean install ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [CleanInstallCleanupReg] ; We delete this entire key so that installation state becomes unknown on error (this is the state ; that it was in before the clean install). Deleting just the value is not enough, since ; ClRtlGetClusterInstallState() will return an error if the key is present and the value isn't. HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Cluster Server" ;///////////////////////////////////////////////////////////////////////////// ;// Unclustered Win2k node upgrade section ;///////////////////////////////////////////////////////////////////////////// [Win2k_Upgrade_Unclustered] CopyFiles=ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterWMIFiles DelFiles=ObseleteWin2kFiles AddReg=FilesInstalledInstallStateReg, InstallDirReg, ClusterLogReg, CluAdminReg, ClusNetPortReserveAddReg DelReg=OCMToDoList, PrevOSVerInfoDelReg, ClusNetPortReserveDelReg AddService=ClusDisk,,ClusDiskService RegisterDlls=ClusterCOMComponents ProfileItems=CluAdminProfile [Win2k_Upgrade_Unclustered_Cleanup] ; Nothing can be done here. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Registry entries for upgrade of unclustered Win2k node ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [OCMToDoList] ; To do list of the OC Manager created by ClusOCM in Win2k. This would have been ; deleted if ClusCfg.exe had been run, but we will have to do it ourselves now. HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Setup\OCManager\ToDoList\Cluster" ;///////////////////////////////////////////////////////////////////////////// ;// Section for upgrade of a clustered node from Win2k ;///////////////////////////////////////////////////////////////////////////// [Win2k_Upgrade] CopyFiles=ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterWMIFiles DelFiles=ObseleteWin2kFiles AddReg=UpgradeInstallStateReg, InstallDirReg, ClusterLogReg, CluAdminReg, ClusSvcEventLogReg, ClusNetPortReserveAddReg DelReg=ClusSvcDependencyDelReg, PrevOSVerInfoDelReg, ClusNetPortReserveDelReg RegisterDlls=ClusterCOMComponents ProfileItems=CluAdminProfile [Win2k_Upgrade_Cleanup] ; Nothing can be done here. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Registry entries for upgrade of clustered Win2k node ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;///////////////////////////////////////////////////////////////////////////// ;// Section for upgrade of a clustered Whistler node ;///////////////////////////////////////////////////////////////////////////// ; ; The Whistler -> Whistler upgrade path has to be the same as the Win2K -> Whistler ; upgrade path, since some early builds of Whistler still used the Win2K cluster ; setup files. ; [Whistler_Upgrade] CopyFiles=ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterWMIFiles DelFiles=ObseleteWin2kFiles AddReg=UpgradeInstallStateReg, InstallDirReg, ClusterLogReg, CluAdminReg, ClusSvcEventLogReg, ClusNetPortReserveAddReg DelReg=ClusSvcDependencyDelReg, PrevOSVerInfoDelReg, ClusNetPortReserveDelReg RegisterDlls=ClusterCOMComponents ProfileItems=CluAdminProfile [Whistler_Upgrade_Cleanup] ; Nothing can be done here. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Registry entries for upgrade of clustered Whistler node ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;///////////////////////////////////////////////////////////////////////////// ;// Section for upgrade of an unclustered Whistler node ;///////////////////////////////////////////////////////////////////////////// ; ; The Whistler -> Whistler upgrade path has to be the same as the Win2K -> Whistler ; upgrade path, since some early builds of Whistler still used the Win2K cluster ; setup files. ; [Whistler_Upgrade_Unclustered] CopyFiles=ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterWMIFiles DelFiles=ObseleteWin2kFiles AddReg=FilesInstalledInstallStateReg, InstallDirReg, ClusterLogReg, CluAdminReg, ClusNetPortReserveAddReg DelReg=PrevOSVerInfoDelReg, ClusNetPortReserveDelReg RegisterDlls=ClusterCOMComponents ProfileItems=CluAdminProfile [Whistler_Upgrade_Unclustered_Cleanup] ; Nothing can be done here. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Registry entries for upgrade of unclustered Whistler node ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;///////////////////////////////////////////////////////////////////////////// ;// Section for upgrade of a node from NT4 ;///////////////////////////////////////////////////////////////////////////// [NT4_Upgrade] CopyFiles=ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterWMIFiles DelFiles=ObseleteNT4ClusterFiles, ObseleteNT4Installer, ObseleteNT4PrivateFiles, ObseleteNT4HelpFiles, NT4EEInstallerStartupFile AddReg=UpgradeInstallStateReg, InstallDirReg, ClusterLogReg, CluAdminReg, ClusSvcEventLogReg, ClusNetPortReserveAddReg DelReg=PrevOSVerInfoDelReg, NT4UninstallKeyDelReg, NT4RPCProtocolDelReg, ClusNetPortReserveDelReg RegisterDlls=ClusterCOMComponents ProfileItems=CluAdminProfile, NT4EEInstallerDelProf [NT4_Upgrade_Cleanup] ; Nothing can be done here. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Registry entries for upgrade from NT4 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [NT4UninstallKeyDelReg] HKLM,"Software\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Cluster Server" ; RPC now provides services needed by the cluster service. Remove our dlls from the protocol stack. [NT4RPCProtocolDelReg] HKLM,Software\Microsoft\Rpc\ClientProtocols\ncadg_cluster HKLM,Software\Microsoft\Rpc\ServerProtocols\ncadg_cluster ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Profile items for upgrade from NT4 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Delete the link to the Enterprise Edition Installer from the Administrative Tools (Common) menu [NT4EEInstallerDelProf] ; 0x00000002 stands for FLG_PROFITEM_DELETE Name=%NT4EEInstallerLinkName%, 0x00000002 CmdLine=11,,nhloader.exe SubDir=%NT4AdminToolsProfile% ;///////////////////////////////////////////////////////////////////////////// ;// Common service creation entries ;///////////////////////////////////////////////////////////////////////////// ; Create the ClusDisk service [ClusDiskService] DisplayName = %ClusDiskServiceDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 4 ; SERVICE_DISABLED ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\ClusDisk.sys LoadOrderGroup = Filter ;///////////////////////////////////////////////////////////////////////////// ;// Common destination id to directory mappings ;///////////////////////////////////////////////////////////////////////////// ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Note: Dir id 32768 (DIRID_USER + 0) always maps to the expanded cluster ; installation directory (c:\winnt\cluster) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [DestinationDirs] ClusterSystemFiles = 11 ; %SystemRoot%\System32 ClusterDriverFiles = 12 ; %SystemRoot%\System32\Drivers ClusterWMIFiles = 11, WBEM ; %SystemRoot%\System32\WBEM ClusterFiles = 32768 ; Usually %SystemRoot%\Cluster ClusterAdminFiles = 32768 ObseleteWin2kFiles = 32768 ObseleteNT4ClusterFiles = 32768 ObseleteNT4PrivateFiles = 32768, Private ; Usually %SystemRoot%\Cluster\Private ObseleteNT4HelpFiles = 32768 ObseleteNT4Installer = 11 ; %SystemRoot%\System32 NT4EEInstallerStartupFile = 16407, %StartupGroup% ; All Users\Start Menu\Programs\Startup ( 16384 + CSIDL_COMMON_PROGRAMS ) ;///////////////////////////////////////////////////////////////////////////// ;// Common registry entries ;///////////////////////////////////////////////////////////////////////////// ; Write the cluster installation directory out to the registry [InstallDirReg] HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Cluster Server","ClusterInstallationDirectory",0x0,%32768% ; Indicates that the cluster files have been installed, but the node is not part of a cluster. [FilesInstalledInstallStateReg] ; Note that eInstallStateFilesCopied has a value of 1. ; The fourth field, 0x10001, maps to FLG_ADDREG_TYPE_DWORD. HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Cluster Server","ClusterInstallationState",0x10001,1 ; Create the ClusterLog environment variable. [ClusterLogReg] ; 0x20002 maps to FLG_ADDREG_TYPE_EXPAND_SZ | FLG_ADDREG_NOCLOBBER HKLM,System\CurrentControlSet\Control\Session Manager\Environment,ClusterLog,0x20002,%32768%\cluster.log ; Create the registry entries needed by CluAdmin [CluAdminReg] ; Note that 0x20000 maps to FLG_ADDREG_TYPE_EXPAND_SZ. HKLM,Software\Microsoft\Windows\CurrentVersion\App Paths\CluAdmin.exe,,0x20000,%32768%\CluAdmin.exe ; Add new entries to the cluster eventlog registry. [ClusSvcEventLogReg] ; 0x10001 maps to FLG_ADDREG_TYPE_DWORD. ; 0x20000 maps to FLG_ADDREG_TYPE_EXPAND_SZ. ; Categories were added to clussvc in Whistler. HKLM,"System\CurrentControlSet\Services\EventLog\System\ClusSvc","CategoryMessageFile",0x20000,%32768%\ClusSvc.exe HKLM,"System\CurrentControlSet\Services\EventLog\System\ClusSvc","CategoryCount",0x10001,28 ; Remove the dependency of the cluster service on the WMI service. [ClusSvcDependencyDelReg] ; In Win2k, the ClusSvc depended on the WMI service. This dependency has been ; has now been removed. So, delete this dependency from the SCM database. ; (0x00018002 maps to FLG_DELREG_MULTI_SZ_DELSTRING) HKLM,"System\CurrentControlSet\Services\ClusSvc","DependOnService",0x00018002,"WMI" ; Sets the cluster installation state after an upgrade. [UpgradeInstallStateReg] ; Indicates that the Cluster Setup OCM DLL has upgraded successfully. ; Note that eClusterInstallStateUpgraded has a value of 3. ; The fourth field, 0x10001, maps to FLG_ADDREG_TYPE_DWORD. HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Cluster Server","ClusterInstallationState",0x10001,3 ; Delete the information about the previous OS version, since we no longer need it. [PrevOSVerInfoDelReg] HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Cluster Server\PreviousOSVersionInfo" ; Registry entries needed to reserve the ClusNet port. The range of ports to be reserved are to be appended ; to this MULTISZ string. First delete all existing entries that match our range, to make sure that ; this range is not duplicted on upgrades. [ClusNetPortReserveDelReg] ; (0x00018002 maps to FLG_DELREG_MULTI_SZ_DELSTRING) HKLM,"System\CurrentControlSet\Services\Tcpip\Parameters",ReservedPorts,0x00018002,"3343-3343" ; Now append the string to the MULTISZ string [ClusNetPortReserveAddReg] ; The flag 0x00010008 maps to ( FLG_ADDREG_TYPE_MULTI_SZ | FLG_ADDREG_APPEND ) HKLM,"System\CurrentControlSet\Services\Tcpip\Parameters",ReservedPorts,0x00010008,"3343-3343" ;///////////////////////////////////////////////////////////////////////////// ;// Common COM registrations ;///////////////////////////////////////////////////////////////////////////// [ClusterCOMComponents] ; 0x00000001 maps to FLG_REGSVR_DLLREGISTER 32768,,CluAdMMC.dll,0x00000001,, 32768,,ClAdmWiz.dll,0x00000001,, 32768,,CluAdmEx.dll,0x00000001,, 32768,,ClNetREx.dll,0x00000001,, 32768,,ClCfgSrv.dll,0x00000001,, 11,WBEM,ClusWMI.dll,0x00000001,, ;///////////////////////////////////////////////////////////////////////////// ;// Common profile sections ;///////////////////////////////////////////////////////////////////////////// [CluAdminProfile] Name=%CluAdminProfileName%, CmdLine=32768,,CluAdmin.exe SubDir=%AdminToolsProfile% InfoTip="@%11%\Setup\ClusOCM.dll,-2" DisplayResource="%11%\Setup\ClusOCM.dll",1 ;///////////////////////////////////////////////////////////////////////////// ;// Common file lists ;///////////////////////////////////////////////////////////////////////////// [ClusterSystemFiles] ClusSprt.dll,,,1 [ClusterDriverFiles] ClusDisk.sys,,,1 ClusNet.sys,,,1 [ClusterFiles] ClusSvc.exe,,,1 ClusRes.dll,,,1 ResrcMon.exe,,,1 WSHClus.dll,,,1 ClNetRes.dll,,,1 [ClusterAdminFiles] ClAdmWiz.dll,,,1 CluAdmin.exe,,,1 CluAdmEx.dll,,,1 CluAdMMC.dll,,,1 DebugEx.dll,,,1 ; 0x00000401 stands for COPYFLG_REPLACEONLY | COPYFLG_WARN_IF_SKIP ClNetREx.dll,,,1 MQClus.dll,,,1 ClCfgSrv.dll,,,1 ClCfgSrv.inf,,,1 [ClusterWMIFiles] ClusWMI.dll,,,1 ClusWMI.mof,,,1 [ObseleteWin2kFiles] ClusCfg.exe,,,1 Cluster.inf,,,1 [ObseleteNT4ClusterFiles] ClusCfg.exe,,,1 Cluster.inf,,,1 ClusPrxy.exe,,,1 RPCLTccl.dll,,,1 RPCLTscl.dll,,,1 Setup.Exe,,,1 Setup.Hlp,,,1 CluAdmin.Cnt,,,1 [ObseleteNT4PrivateFiles] Security.dll,,,1 [ObseleteNT4Installer] NHLoader.exe,,,1 [ObseleteNT4HelpFiles] CluAdmin.hlp,,,1 ClusCfg.hlp,,,1 ; The Enterprise Edition Installer item under the Startup menu [NT4EEInstallerStartupFile] %NT4EEInstallerStartupFileName% ;///////////////////////////////////////////////////////////////////////////// ;// Common strings ;///////////////////////////////////////////////////////////////////////////// [Strings] ;;;;;;;;;;;;;;;;;;;;;;; ; Localizable Strings ; ;;;;;;;;;;;;;;;;;;;;;;; ClusterComponentDesc="Cluster Service" ClusterComponentTip="Enables servers to work together as a cluster to keep server-based applications highly available, regardless of individual component failures." ClusDiskServiceDesc="Cluster Disk Driver" CluAdminProfileName="Cluster Administrator" AdminToolsProfile="Administrative Tools" NT4EEInstallerLinkName="Enterprise Edition Installer" NT4AdminToolsProfile="Administrative Tools" StartupGroup="Startup" NT4EEInstallerStartupFileName="Windows NT Server, Enterprise Edition Installer.cmd"