;///////////////////////////////////////////////////////////////////////////// ;// !!! READ THIS BEFORE YOU CHANGE THIS FILE !!! ;// --------------------------------------------- ;// ;// This file is used by ClusOCM.dll in Windows Server 2003 to ;// install or upgrade cluster service binaries. ;// ;// This file has one section for clean install and five for upgrades (from ;// Windows NT 4.0, from Windows 2000 and Windows Server 2003 ;// when the binaries are installed but node is not part of cluster, from ;// Windows 2000 and Windows Server 2003 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 Windows 2000 check if this change is applicable ;// for upgrades from Windows NT 4.0 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 Windows 2000 node upgrade section ;///////////////////////////////////////////////////////////////////////////// [Windows2000_Upgrade_Unclustered] CopyFiles=ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterWMIFiles DelFiles=ObseleteWindows2000Files AddReg=FilesInstalledInstallStateReg, InstallDirReg, ClusterLogReg, CluAdminReg, ClusNetPortReserveAddReg DelReg=OCMToDoList, PrevOSVerInfoDelReg, ClusNetPortReserveDelReg AddService=ClusDisk,,ClusDiskService RegisterDlls=ClusterCOMComponents ProfileItems=CluAdminProfile [Windows2000_Upgrade_Unclustered_Cleanup] ; Nothing can be done here. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Registry entries for upgrade of unclustered Windows 2000 node ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [OCMToDoList] ; To do list of the OC Manager created by ClusOCM in Windows 2000. 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 Windows 2000 ;///////////////////////////////////////////////////////////////////////////// [Windows2000_Upgrade] CopyFiles=ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterWMIFiles DelFiles=ObseleteWindows2000Files AddReg=UpgradeInstallStateReg, InstallDirReg, ClusterLogReg, CluAdminReg, ClusSvcEventLogReg, ClusNetPortReserveAddReg, ClusDiskEventLogReg, DiskTimeOutValueReg DelReg=ClusSvcDependencyDelReg, PrevOSVerInfoDelReg, ClusNetPortReserveDelReg RegisterDlls=ClusterCOMComponents ProfileItems=CluAdminProfile [Windows2000_Upgrade_Cleanup] ; Nothing can be done here. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Registry entries for upgrade of clustered Windows 2000 node ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;///////////////////////////////////////////////////////////////////////////// ;// Section for upgrade of a clustered Windows Server 2003 node ;///////////////////////////////////////////////////////////////////////////// ; ; The Windows Server 2003 -> Windows Server 2003 upgrade path has to be the same as the ; Windows 2000 -> Windows Server 2003 upgrade path, since some early builds of ; Windows Server 2003 still used the Windows 2000 cluster setup files. ; [WindowsDotNet_Upgrade] CopyFiles=ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterWMIFiles DelFiles=ObseleteWindows2000Files AddReg=UpgradeInstallStateReg, InstallDirReg, ClusterLogReg, CluAdminReg, ClusSvcEventLogReg, ClusNetPortReserveAddReg, ClusDiskEventLogReg, DiskTimeOutValueReg DelReg=ClusSvcDependencyDelReg, PrevOSVerInfoDelReg, ClusNetPortReserveDelReg RegisterDlls=ClusterCOMComponents ProfileItems=CluAdminProfile [WindowsDotNet_Upgrade_Cleanup] ; Nothing can be done here. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Registry entries for upgrade of clustered Windows Server 2003 node ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;///////////////////////////////////////////////////////////////////////////// ;// Section for upgrade of an unclustered Windows Server 2003 node ;///////////////////////////////////////////////////////////////////////////// ; ; The Windows Server 2003 -> Windows Server 2003 upgrade path has to be the same as the ; Windows 2000 -> Windows Server 2003 upgrade path, since some early builds of ; Windows Server 2003 still used the Windows 2000 cluster setup files. ; [WindowsDotNet_Upgrade_Unclustered] CopyFiles=ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterWMIFiles DelFiles=ObseleteWindows2000Files AddReg=FilesInstalledInstallStateReg, InstallDirReg, ClusterLogReg, CluAdminReg, ClusNetPortReserveAddReg DelReg=PrevOSVerInfoDelReg, ClusNetPortReserveDelReg RegisterDlls=ClusterCOMComponents ProfileItems=CluAdminProfile [WindowsDotNet_Upgrade_Unclustered_Cleanup] ; Nothing can be done here. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Registry entries for upgrade of unclustered Windows Server 2003 node ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;///////////////////////////////////////////////////////////////////////////// ;// Section for upgrade of a node from Windows NT 4.0 ;///////////////////////////////////////////////////////////////////////////// [NT4_Upgrade] CopyFiles=ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterWMIFiles DelFiles=ObseleteNT4ClusterFiles, ObseleteNT4Installer, ObseleteNT4PrivateFiles, ObseleteNT4HelpFiles, NT4EEInstallerStartupFile AddReg=UpgradeInstallStateReg, InstallDirReg, ClusterLogReg, CluAdminReg, ClusSvcEventLogReg, ClusNetPortReserveAddReg, ClusDiskEventLogReg, DiskTimeOutValueReg 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 ObseleteWindows2000Files = 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 Windows Server 2003. HKLM,"System\CurrentControlSet\Services\EventLog\System\ClusSvc","CategoryMessageFile",0x20000,%32768%\ClusSvc.exe HKLM,"System\CurrentControlSet\Services\EventLog\System\ClusSvc","CategoryCount",0x10001,30 ; Remove the dependency of the cluster service on the WMI service. [ClusSvcDependencyDelReg] ; In Windows 2000, 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" [ClusDiskEventLogReg] ; 0x20000 maps to FLG_ADDREG_TYPE_EXPAND_SZ. HKLM,"System\CurrentControlSet\Services\EventLog\System\ClusDisk","EventMessageFile",0x20000,"%32768%\ClusSvc.exe;%systemroot%\system32\iologmsg.dll" HKLM,"System\CurrentControlSet\Services\EventLog\System\ClusDisk","TypesSupported",0x10001,7 ; Set the default time out value for I/O to 60 seconds [DiskTimeOutValueReg] ; The fourth field, 0x10001, maps to FLG_ADDREG_TYPE_DWORD. HKLM,"System\CurrentControlSet\Services\Disk","TimeOutValue",0x10001,20 ;///////////////////////////////////////////////////////////////////////////// ;// 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,, 32768,,vsstask.dll,0x00000001,, 32768,,vsstskex.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 VSSTask.dll,,,1 VSSTskEx.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 [ObseleteWindows2000Files] 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. If this service is stopped, clustering will be unavailable. If this service is disabled, any services that explicitly depend on it will fail to start." 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"