
;
; CLUSOCM.INF - This file is used by Optional Components Manager and clusocm.dll
;               which it calls to install and uninstall the Cluster service
;               component(s).
;
; Note that the following cluster files are installed by text mode setup because
; they are required by NT Workstation and Server as well as Enterprise:
;
;       clusapi.dll
;       resutils.dll
;       cluster.exe
;       msclus.dll
;
; In addition, the following files get installed by text mode setup because they
; must be available in the %windir%\system32 directory (along with sysocmgr.exe)
; during GUI mode setup:
;
;       clusocm.dll
;       clusocm.inf
;

[Version]
Signature= "$Windows NT$"
LayoutFile=layout.inf


;
; At this time, 2/27/98, there is a single Cluster service component.
;
[Optional Components]
Cluster


;-[ main install section ]------------------------------------------------------

[cluster]
OptionDesc = %ClusterComponentDesc%
Tip = %ClusterComponentTip%
CopyFiles = ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles
DelFiles = NT4.files.root, NT4.files.private
AddReg = ClusterInstallState.reg, RegisterCLUSIIS4withEvenLog.reg, MMCSnapin.Add.Reg, ClusterLog.Add.Reg
Uninstall = Cluster.uninstall
Needs = iis_common
; IconIndex = 10


;-[ main uninstall section ]----------------------------------------------------
;
;   This section gets used when the functions that process OC_QUEUE_FILE_OPS and
;   OC_COMPLETE_INSTALLATION detect that Cluster is to be uninstalled.
;

[Cluster.uninstall]
DelFiles = ClusterSystemFiles, ClusterDriverFiles, ClusterFiles, ClusterAdminFiles, ClusterUninstallFiles
DelFiles = ClusterUpgradeFiles, ClusterUpgradeReplaceOnlyFiles
DelFiles = NT4.files.root, NT4.files.private

;
;   This DelReg entry is used to remove the registry entries that were explicitly
;   created by clusocm.dll.
;
DelReg = WelcomeUI.Uninstall.reg, ClusterInstallState.Uninstall.reg, RegisterCLUSIIS4withEvenLog.Uninstall.reg, MMCSnapin.Del.Reg, ClusterLog.Del.Reg

;
;   This DelReg entry is used to remove the registry entries that were created
;   by cluscfg.exe. Note that the entries in the Cluster hive are not explicitly
;   deleted. My theory is that it is adequate to unload the Cluster hive and
;   remove the Cluster hive file.
;
DelReg = ClusCfg.reg

;
;   This DelReg entry exists solely to remove the "Uninstall" reg key on systems that
;   were perviously upgraded from NT4. Note that this key should have been removed
;   during the upgrade process, but may not have been.
DelReg = NT4.reg

;
;   Delete the services
;
DelService = ClusSvc
DelService = ClusDisk
DelService = ClusNet
DelService = TimeServ



;-[ special section to add Cluster configuration to the Welcome UI task list ]--
;
;   This AddReg entry is not included in the [cluster] section because the registry
;   entries are created conditionally in function QueueAddRegistryOperations when
;   OC_COMPLETE_INSTALLATION message are processed.

[WelcomeUI]
AddReg = WelcomeUI.reg


;-[ The next two sections are special sections for operations to be performed on UPGRADE ]---------

; This section performs the file copy operations on files like iisclus3.dll
; which need to be copied during an upgrade only if they already existed before 
; the upgrade. Note, only the [CopyFiles] subsection of this section will be
; processed and files that do not already exist are not copied. (Vvasu 7/15/1999)
[UpgradeReplaceOnly]
CopyFiles = ClusterUpgradeReplaceOnlyFiles


[Upgrade]
; This section is processed only during an upgrade. Note, a RenFiles subsection under this
; section is currently not being processed in CClusocmApp::QueueInstallFileOperations. (Vvasu 7/15/1999)

CopyFiles = ClusterUpgradeFiles

DelFiles = NT4.files.Startup, NT4.files.AdminTools, NT4.files.HelpFiles

AddReg = Upgrade.Add.reg, MMCSnapin.Add.Reg, ClusSvcEventLog.Add.Reg

DelReg = NT4.reg, Upgrade.Del.reg
;-[ special section for operations to be performed on UPGRADE when the Cluster service ]---------
;-[ is registered with the service control manager.                                    ]---------
;
;   This will remove the registry keys that add "Configure Cluster service" to the
;   Welcome UI "to do" list.

[Upgrade.ClusSvc.Registered]

DelReg = WelcomeUI.Uninstall.reg



;-[ destination directories ]---------------------------------------------------
;
; Note that the Directory Ids 33001 through 33006 were chosen to be larger than
; DIRID_USER as defined in setupapi.h. Those Directory Ids will be associated
; with particular directories when OC_QUEUE_FILE_OPS is processed.

[DestinationDirs]
ClusterSystemFiles              = 11                    ;\Windows\System32
ClusterDriverFiles              = 12                    ;\Windows\System32\drivers
NT4.files.Startup	            = 10,%DestinationDirNT4Startup%
NT4.files.AdminTools			= 10,%DestinationDirNT4AdminTools%
ClusterFiles                    = 33001
NT4.files.HelpFiles             = 33001
ClusterUpgradeFiles             = 33002
ClusterUpgradeReplaceOnlyFiles  = 33002
ClusterAdminFiles               = 33003
ClusterUninstallFiles           = 33004
NT4.files.root                  = 33005
NT4.files.private               = 33006


;-[ file copy sections ]--------------------------------------------------------

[ClusterSystemFiles]
clussprt.dll,,,1


[ClusterDriverFiles]
clusdisk.sys,,,1
clusnet.sys,,,1


[ClusterFiles]
clussvc.exe,,,1
timeserv.exe,,,1
clusres.dll,,,1
resrcmon.exe,,,1
wshclus.dll,,,1
cluscfg.exe,,,1
cluster.inf,,,1
clusiis4.dll,,,1
clnetres.dll,,,1


[ClusterAdminFiles]
cladmwiz.dll,,,1
cluadmin.exe,,,1
cluadmex.dll,,,1
cluadmmc.dll,,,1
debugex.dll,,,1
iisclex3.dll,,,1
clnetrex.dll,,,1
mqclus.dll,,,1

[ClusterUpgradeReplaceOnlyFiles]
iisclus3.dll,,,1

[ClusterUpgradeFiles]
mqclus.dll,,,1

[ClusterUninstallFiles]

;
;   These files are created when cluscfg.exe runs.
;
;   cluadmin.cnt may be left from some old installation.
;
;setup.hlp
clusdb,,,1
clusdb.log,,,1
cluster.log,,,1
cluadmin.cnt,,,1

;
;   These files are part of an NT 4 Cluster Server installation. Cluadmin.cnt
;   may also remain from a previous Windows 2000 installation.
;
[NT4.files.root]
clusprxy.exe,,,1
rpcltccl.dll,,,1
rpcltscl.dll,,,1
setup.exe,,,1
setup.hlp,,,1
cluadmin.cnt,,,1


[NT4.files.private]
security.dll,,,1

[NT4.files.Startup]
%NT4StartupFileToRemove%,,,1

[NT4.files.AdminTools]
%NT4AdminToolsFileToRemove%,,,1

[NT4.files.HelpFiles]
; This file is in the %windir%\cluster directory in NT4 but in the %windir%\help
; directory in Win2000. So, the old file should be deleted during an upgrade.
cluadmin.hlp,,,1
cluscfg.hlp,,,1

;-[ registry alterations ]----------------------------------------------------------

[WelcomeUI.reg]

; The following two registry keys are used to add the Cluster configuration program
; to the Welcome UI task list. As per Sharon Montgomery on 12/18/98 Server Solutions
; uses those same reg keys.

; Note that the value in the fourth field, 0x0, maps to FLG_ADDREG_TYPE_SZ.

HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Setup\OCManager\ToDoList\Cluster","Title",0x0,%ToDoListTitle%

; Note that the value in the fourth field, 0x00020000, maps to FLG_ADDREG_TYPE_EXPAND_SZ.

HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Setup\OCManager\ToDoList\Cluster","ConfigCommand",0x00020000,"%windir%\cluster\cluscfg.exe" 

; These are additional keys required by Server Solutions.

HKLM,"Software\Microsoft\Windows NT\CurrentVersion\SrvWiz","Home",0x10001,3
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\Setup\Welcome","SrvWiz",0x10001,1
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\Explorer\tips","Show",0x10001,1

[WelcomeUI.Uninstall.reg]

HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Setup\OCManager\ToDoList\Cluster"

[ClusterInstallState.reg]

; The following registry key is used to indicate that the Cluster Setup OCM DLL
; believes that it has completed successfully. Note that the value of eInstallStateFilesCopied
; maps to (DWORD) 1.

; Note that the value in the fourth field, 0x10001, maps to FLG_ADDREG_TYPE_DWORD.

HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Cluster Server","ClusterInstallationState",0x10001,1

[ClusterLog.Add.Reg]
; Enable cluster logging by setting the appropriate environment variables.
; Note, a WM_SETTINGCHANGE message has to be broadcast to all top level windows in the system
; during a standalone installation to allow applications to see this change. See Knowledge Base article Q104011.
HKLM,System\CurrentControlSet\Control\Session Manager\Environment,ClusterLog,0x20000,%SystemRoot%\cluster\cluster.log

[ClusterLog.Del.Reg]
; Disable cluster logging.
HKLM,System\CurrentControlSet\Control\Session Manager\Environment,ClusterLog


[ClusterInstallState.Uninstall.reg]

HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Cluster Server"


[RegisterCLUSIIS4withEvenLog.reg]

; The following registry keys are used to register ClusIIS4.dll with the eventlog.

HKLM,System\CurrentControlSet\Services\EventLog\Application\CLUSIIS4,"EventMessageFile",0x00020000,"%SystemRoot%\cluster\clusiis4.dll"
HKLM,System\CurrentControlSet\Services\EventLog\Application\CLUSIIS4,"TypesSupported",0x00010001,0x7

[RegisterCLUSIIS4withEvenLog.Uninstall.reg]

HKLM,System\CurrentControlSet\Services\EventLog\Application\CLUSIIS4

[ClusCfg.reg]

;   The registry keys listed in this section are created when cluscfg.exe runs.
;   Additional registry keys that are created inthe Cluster hive are not explicitly
;   listed here. My theory is that it is sufficient to unload the Cluster hive and
;   delete the Cluster hive file.

;
; Cluster rpc transport
;
HKLM,Software\Microsoft\Rpc\ClientProtocols,ncadg_cluster
HKLM,Software\Microsoft\Rpc\ServerProtocols,ncadg_cluster

;
; Cluster Service
;
HKLM,System\CurrentControlSet\Services\ClusSvc

;
; Time Service
;
HKLM,System\CurrentControlSet\Services\TimeServ

;
;   ClusDisk
;
HKLM,System\CurrentControlSet\Services\ClusDisk

;
;   ClusNet
;
HKLM,System\CurrentControlSet\Services\ClusNet

HKLM,Software\Microsoft\Windows\CurrentVersion\App Paths\CluAdmin.exe

HKCU,Software\Microsoft\Cluster Administrator


[NT4.reg]

; This section exists to facilitate removal of registry keys that remain from
; previous NT 4 Cluster Server installations.

HKLM,"Software\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Cluster Server"

[Upgrade.Add.reg]

; The registry keys in this section must be revised when upgrading from NT 4.0 to
; NT 5.0. Failure to update these registry keys will result in the inability of
; the cluster service to start.
;
; Note that additional registry operations requiring run time information may be
; performed programatically in OnOcCompleteInstallation. At this time, on upgrade,
; HKLM\System\CurrentControlSet\Services\ClusSvc\ImagePath gets set to the path
; to the cluster service queried from the Service Control Manager. This is done in
; order to handle upgrading a version of Cluster service that was previously
; installed somewhere other than the default location.

; Note that 0x10000 maps to FLG_ADDREG_TYPE_MULTI_SZ.

; Replace the existing key.

HKLM,"System\CurrentControlSet\Services\ClusSvc","DependOnService",0x10000,"ClusNet"

; Append to the existing key. Note that 0x10008 maps to FLG_ADDREG_APPEND for REG_MULTI_SZ.

HKLM,"System\CurrentControlSet\Services\ClusSvc","DependOnService",0x10008,"RpcSs"
HKLM,"System\CurrentControlSet\Services\ClusSvc","DependOnService",0x10008,"W32Time"
HKLM,"System\CurrentControlSet\Services\ClusSvc","DependOnService",0x10008,"NetMan"
HKLM,"System\CurrentControlSet\Services\ClusSvc","DependOnService",0x10008,"WMI"

;Since Beta 2 of NT 5 Clustering disabled version checking by default, we need to enable 
;it now. This is done by setting the service parameter NoVersionCheck to 0.
HKLM,"System\CurrentControlSet\Services\ClusSvc\Parameters","NoVersionCheck",0x10000,0

[Upgrade.Del.reg]

; The following two keys are not needed in Windows 2000.

HKLM,"Software\Microsoft\Rpc\ClientProtocols\ncadg_cluster"
HKLM,"Software\Microsoft\Rpc\ServerProtocols\ncadg_cluster"

[MMCSnapin.Add.Reg]
;
; This registry entry makes the MMC snap-in appear on remote machine administering this cluster node
; CluAdMMC.DLL also has to be registered to enable the snap-in on this node.
;
HKLM,System\CurrentControlSet\Control\Server Applications,{12E7ED01-5540-11D1-9AA4-00C04FB93A80},,%ExtSnapInName%

; Unregister the MMC extension snap-in.
[MMCSnapin.Del.Reg]
HKLM,System\CurrentControlSet\Control\Server Applications,{12E7ED01-5540-11D1-9AA4-00C04FB93A80}

[ClusSvcEventLog.Add.Reg]
HKLM,"System\CurrentControlSet\Services\EventLog\System\ClusSvc","EventMessageFile",0x20000,"%SystemRoot%\cluster\clussvc.exe;%SystemRoot%\system32\sp3res.dll"

[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."
DestinationDirNT4Startup = "profiles\all users\start menu\programs\startup"
DestinationDirNT4AdminTools = "profiles\all users\start menu\programs\administrative tools"
NT4StartupFileToRemove = "Windows NT Server, Enterprise Edition Installer.cmd"
NT4AdminToolsFileToRemove = "Enterprise Edition Installer.lnk"
ExtSnapInName="Cluster Service"
ToDoListTitle = "Configure Cluster service"
MSMQ.LTypeName="Message Queuing"

;
; Resource Type Names (Non-Localizable)
;
MSMQ.TypeName="MSMQ"
MSDTC.TypeName="Distributed Transaction Coordinator"
