;///////////////////////////////////////////////////////////////////////////// ;// !!! READ THIS BEFORE YOU CHANGE THIS FILE !!! ;// --------------------------------------------- ;// ;// This file is used by BaseCluster in Whistler to form, join or cleanup ;// a cluster. ;// ;// Changing anything in the form or join path will most probably also affect the ;// upgrade path, so IF YOU CHANGE THIS FILE, CHECK IF YOU NEED TO CHANGE CLUSOCM ;// AS WELL. Too many bugs have been caused by this not being done. ;// ;// Also, if you add anything to the form or join path, do not forget to add the ;// converse action to the cleanup path. For example, if you create the cluster service ;// in the ClusSvc_Create section, do not forget to delete the service in the ;// ClusSvc_Cleanup section. This is needed so the system is left in good ;// state if we need to roll back the install. It will also be used to clean ;// up the node after it has been evicted from a cluster. ;// ;///////////////////////////////////////////////////////////////////////////// [Version] Signature="$Windows NT$" ;///////////////////////////////////////////////////////////////////////////// ;// !README! ;// ;// 1. 32768 maps to the cluster installation directory. ;// 2. 32769 maps to the localquorum directory ;// ;///////////////////////////////////////////////////////////////////////////// ;///////////////////////////////////////////////////////////////////////////// ;// Destination directories ;///////////////////////////////////////////////////////////////////////////// [DestinationDirs] ClusDB_Cleanup_DelFiles=32768 ;///////////////////////////////////////////////////////////////////////////// ;// ClusSvc Section ;///////////////////////////////////////////////////////////////////////////// [ClusSvc_Create] AddService=ClusSvc,,ClusSvc_Install,ClusSvc_EventLog_Install AddReg=ClusSvc_Install_Reg DelReg=NodeEvictedFlag_Reg [ClusSvc_Install] DisplayName = %ClusSvc.DisplayName% ServiceType = 0x10 ; SERVICE_WIN32_OWN_PROCESS StartType = 2 ; SERVICE_AUTO_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %32768%\clussvc.exe Dependencies = ClusNet,RpcSs,W32Time,NetMan [ClusSvc_Install_Reg] HKLM,System\CurrentControlSet\Services\ClusSvc,Description,0x0,"%ClusSvc.Description%" [ClusSvc_EventLog_Install] AddReg=ClusSvc_EventLog_AddReg [ClusSvc_EventLog_AddReg] ; 0x10001 maps to FLG_ADDREG_TYPE_DWORD. ; 0x20000 maps to FLG_ADDREG_TYPE_EXPAND_SZ. HKR,,CategoryMessageFile,0x20000,%32768%\ClusSvc.exe HKR,,CategoryCount,0x10001,29 HKR,,EventMessageFile,0x20000,%32768%\ClusSvc.exe HKR,,TypesSupported,0x10001,7 [ClusSvc_Cleanup] DelService=ClusSvc DelReg=ClusSvc_DelReg, NodeEvictedFlag_Reg [NodeEvictedFlag_Reg] HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Cluster Server",NodeHasBeenEvicted [ClusSvc_DelReg] HKLM,System\CurrentControlSet\Services\ClusSvc HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Cluster Server",ClusterFirstRun HKLM,"Software\Microsoft\Windows NT\CurrentVersion\Cluster Server",ClusterDatabaseCopyInProgress [ClusSvc_EventLog_DelReg] ; ; this section isn't enabled for uninstall. This allows admins to continue to view ; clussvc entries in the system event log. Necessary to validate that evict processing ; occurred correctly ; HKLM,System\CurrentControlSet\Services\EventLog\System\ClusSvc ;///////////////////////////////////////////////////////////////////////////// ;// ClusNet Section ;///////////////////////////////////////////////////////////////////////////// [ClusNet_Create] AddService=ClusNet,,ClusNet_Install,ClusNet_EventLog_Install AddReg=ClusNet_Winsock_Registration [ClusNet_Install] DisplayName = %ClusNet.DisplayName% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\clusnet.sys LoadOrderGroup = Tdi Dependencies = Tcpip [ClusNet_EventLog_Install] AddReg=ClusNet_EventLog_AddReg [ClusNet_EventLog_AddReg] ; 0x20000 maps to FLG_ADDREG_TYPE_EXPAND_SZ. HKR,,EventMessageFile,0x20000,"%32768%\ClusSvc.exe;%systemroot%\system32\iologmsg.dll" HKR,,TypesSupported,0x10001,7 ; Part of the ClusNet WinSock registration is done using SetupAPI. The rest is done ; in the code using the registry API. [ClusNet_Winsock_Registration] HKLM,System\CurrentControlSet\Services\ClusNet\Parameters\Winsock,HelperDllName,0x20000,%32768%\WSHClus.DLL ; The flag 0x00010008 maps to ( FLG_ADDREG_TYPE_MULTI_SZ | FLG_ADDREG_APPEND ) HKLM,System\CurrentControlSet\Services\WinSock\Parameters,Transports,0x00010008,ClusNet ; Part of the cleanup is also done by the code. [ClusNet_Cleanup] DelService=ClusNet DelReg=ClusNet_DelReg,ClusNet_EventLog_DelReg [ClusNet_EventLog_DelReg] ; 0x20000 maps to FLG_ADDREG_TYPE_EXPAND_SZ. HKLM,System\CurrentControlSet\Services\EventLog\System\ClusNet [ClusNet_DelReg] HKLM,System\CurrentControlSet\Services\ClusNet ;///////////////////////////////////////////////////////////////////////////// ;// ClusDisk Section ;///////////////////////////////////////////////////////////////////////////// [ClusDisk_Create] AddReg=ClusDisk_Reg,ClusDisk_Reg_LargeIrp [ClusDisk_Cleanup] DelReg=ClusDisk_Reg ; GorN says that it is not necessary to delete the LargeIrpStackLocations value. [ClusDisk_Reg] HKLM,System\CurrentControlSet\Services\ClusDisk\Parameters\Signatures [ClusDisk_Reg_LargeIrp] ; Generate 1 extra IRP stack location for ClusDisk HKLM,System\CurrentControlSet\Control\Session Manager\I/O System,LargeIrpStackLocations,0x10001,9 ;///////////////////////////////////////////////////////////////////////////// ;// Miscellaneous Section ;///////////////////////////////////////////////////////////////////////////// [Node_Create] AddReg=ExtensionSnapin_Reg,DebuggerRetries_Reg [Node_Cleanup] DelReg=ExtensionSnapin_Reg ; Ian Service says that it is ok to not delete the DebuggerRetries_Reg entries. [ExtensionSnapin_Reg] ; Enable Computer Management SnapIn extension HKLM,System\CurrentControlSet\Control\Server Applications,{12E7ED01-5540-11D1-9AA4-00C04FB93A80},,%ExtSnapInName% [DebuggerRetries_Reg] ; Set system debugger retries down to 1 HKLM,System\CurrentControlSet\Control\Session Manager,Debugger Retries,0x10001,1 ;///////////////////////////////////////////////////////////////////////////// ;// ClusDB Section ;///////////////////////////////////////////////////////////////////////////// [ClusDB_Form] AddReg=ClusDB_Form_Template_AddReg [ClusDB_Form_Template_AddReg] ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Tree under HKLM\Cluster ; ;;;;;;;;;;;;;;;;;;;;;;;;;;; HKR,Nodes HKR,Groups HKR,Resources HKR,ResourceTypes HKR,Quorum HKR,Networks HKR,NetworkInterfaces ;Cluster object admin extension HKR,,AdminExtensions,0x10000,"{4EC90FB0-D0BB-11CF-B5EF-00A0C90AB505}" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Tree under HKLM\Cluster\Groups ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; HKR,Groups\ClusterGroupGUIDPlaceholder,Name,0x0,%ClusterGroupName% HKR,Groups\ClusterGroupGUIDPlaceholder,PersistentState,0x00010001,1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Tree under HKLM\Cluster\Resources ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Cluster Name Resource ; HKR,Resources\ClusterNameResGUIDPlaceHolder,Name,0x0,%ClusterNameResName% HKR,Resources\ClusterNameResGUIDPlaceHolder,Type,0x0,%NetName.TypeName% HKR,Resources\ClusterNameResGUIDPlaceHolder,Flags,0x00010001,1 HKR,Resources\ClusterNameResGUIDPlaceHolder,IsAlivePollInterval,0x00010001,60000 HKR,Resources\ClusterNameResGUIDPlaceHolder,LooksAlivePollInterval,0x00010001,5000 ; ; Cluster IP Address Resource ; HKR,Resources\ClusterIPAddrResGUIDPlaceHolder,Name,0x0,%ClusterIPAddrResName% HKR,Resources\ClusterIPAddrResGUIDPlaceHolder,Type,0x0,%IpAddr.TypeName% HKR,Resources\ClusterIPAddrResGUIDPlaceHolder,Flags,0x00010001,1 HKR,Resources\ClusterIPAddrResGUIDPlaceHolder,IsAlivePollInterval,0x00010001,60000 HKR,Resources\ClusterIPAddrResGUIDPlaceHolder,LooksAlivePollInterval,0x00010001,5000 ; ; LocalQuorum Resource ; HKR,Resources\LocalQuorumResGUIDPlaceHolder,Name,0x0,%LocalQuorumResName% HKR,Resources\LocalQuorumResGUIDPlaceHolder,Type,0x0,%LocalQuorum.TypeName% HKR,Resources\LocalQuorumResGUIDPlaceHolder,Flags,0x00010001,1 HKR,Resources\LocalQuorumResGUIDPlaceHolder,IsAlivePollInterval,0x00010001,60000 HKR,Resources\LocalQuorumResGUIDPlaceHolder,LooksAlivePollInterval,0x00010001,5000 HKR,Resources\LocalQuorumResGUIDPlaceHolder\Parameters,Path,0x0,"%32769%\" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Tree under HKLM\Cluster\ResourceTypes ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; HKR,ResourceTypes\%GenApp.TypeName%,DllName,,"clusres.dll" HKR,ResourceTypes\%GenApp.TypeName%,Name,,%GenApp.DisplayName% HKR,ResourceTypes\%GenApp.TypeName%,IsAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%GenApp.TypeName%,LooksAlivePollInterval,0x10001,5000 HKR,ResourceTypes\%GenApp.TypeName%,AdminExtensions,0x10000,"{4EC90FB0-D0BB-11CF-B5EF-00A0C90AB505}" HKR,ResourceTypes\%GenSvc.TypeName%,DllName,,"clusres.dll" HKR,ResourceTypes\%GenSvc.TypeName%,Name,,%GenSvc.DisplayName% HKR,ResourceTypes\%GenSvc.TypeName%,IsAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%GenSvc.TypeName%,LooksAlivePollInterval,0x10001,5000 HKR,ResourceTypes\%GenSvc.TypeName%,AdminExtensions,0x10000,"{4EC90FB0-D0BB-11CF-B5EF-00A0C90AB505}" HKR,ResourceTypes\%NetName.TypeName%,DllName,,"clusres.dll" HKR,ResourceTypes\%NetName.TypeName%,Name,,%NetName.DisplayName% HKR,ResourceTypes\%NetName.TypeName%,IsAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%NetName.TypeName%,LooksAlivePollInterval,0x10001,5000 HKR,ResourceTypes\%NetName.TypeName%,AdminExtensions,0x10000,"{4EC90FB0-D0BB-11CF-B5EF-00A0C90AB505}" HKR,ResourceTypes\%PhysDisk.TypeName%,DllName,,"clusres.dll" HKR,ResourceTypes\%PhysDisk.TypeName%,Name,,%PhysDisk.DisplayName% HKR,ResourceTypes\%PhysDisk.TypeName%,IsAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%PhysDisk.TypeName%,LooksAlivePollInterval,0x10001,5000 HKR,ResourceTypes\%PhysDisk.TypeName%,AdminExtensions,0x10000,"{4EC90FB0-D0BB-11CF-B5EF-00A0C90AB505}" HKR,ResourceTypes\%PrtSplSvc.TypeName%,DllName,,"clusres.dll" HKR,ResourceTypes\%PrtSplSvc.TypeName%,Name,,%PrtSplSvc.DisplayName% HKR,ResourceTypes\%PrtSplSvc.TypeName%,IsAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%PrtSplSvc.TypeName%,LooksAlivePollInterval,0x10001,5000 HKR,ResourceTypes\%PrtSplSvc.TypeName%,AdminExtensions,0x10000,"{4EC90FB0-D0BB-11CF-B5EF-00A0C90AB505}" HKR,ResourceTypes\%FileShr.TypeName%,DllName,,"clusres.dll" HKR,ResourceTypes\%FileShr.TypeName%,Name,,%FileShr.DisplayName% HKR,ResourceTypes\%FileShr.TypeName%,IsAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%FileShr.TypeName%,LooksAlivePollInterval,0x10001,5000 HKR,ResourceTypes\%FileShr.TypeName%,AdminExtensions,0x10000,"{4EC90FB0-D0BB-11CF-B5EF-00A0C90AB505}" HKR,ResourceTypes\%IpAddr.TypeName%,DllName,,"clusres.dll" HKR,ResourceTypes\%IpAddr.TypeName%,Name,,%IpAddr.DisplayName% HKR,ResourceTypes\%IpAddr.TypeName%,IsAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%IpAddr.TypeName%,LooksAlivePollInterval,0x10001,5000 HKR,ResourceTypes\%IpAddr.TypeName%,AdminExtensions,0x10000,"{4EC90FB0-D0BB-11CF-B5EF-00A0C90AB505}" HKR,ResourceTypes\%WinsSvc.TypeName%,DllName,,"clnetres.dll" HKR,ResourceTypes\%WinsSvc.TypeName%,Name,,%WinsSvc.DisplayName% HKR,ResourceTypes\%WinsSvc.TypeName%,IsAlivePollInterval,0x10001,120000 HKR,ResourceTypes\%WinsSvc.TypeName%,LooksAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%WinsSvc.TypeName%,AdminExtensions,0x10000,"{AB4B1105-DCD6-11D2-84B7-009027239464}" HKR,ResourceTypes\%DhcpSvc.TypeName%,DllName,,"clnetres.dll" HKR,ResourceTypes\%DhcpSvc.TypeName%,Name,,%DhcpSvc.DisplayName% HKR,ResourceTypes\%DhcpSvc.TypeName%,IsAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%DhcpSvc.TypeName%,LooksAlivePollInterval,0x10001,5000 HKR,ResourceTypes\%DhcpSvc.TypeName%,AdminExtensions,0x10000,"{AB4B1105-DCD6-11D2-84B7-009027239464}" HKR,ResourceTypes\%MSMQ.TypeName%,DllName,,"mqclus.dll" HKR,ResourceTypes\%MSMQ.TypeName%,Name,,%MSMQ.DisplayName% HKR,ResourceTypes\%MSMQ.TypeName%,IsAlivePollInterval,0x10001,120000 HKR,ResourceTypes\%MSMQ.TypeName%,LooksAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%MSDTC.TypeName%,DllName,,"mtxclu.dll" HKR,ResourceTypes\%MSDTC.TypeName%,Name,,%MSDTC.DisplayName% HKR,ResourceTypes\%MSDTC.TypeName%,IsAlivePollInterval,0x10001,120000 HKR,ResourceTypes\%MSDTC.TypeName%,LooksAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%LocalQuorum.TypeName%,DllName,,"clusres.dll" HKR,ResourceTypes\%LocalQuorum.TypeName%,Name,,%LocalQuorum.DisplayName% HKR,ResourceTypes\%LocalQuorum.TypeName%,IsAlivePollInterval,0x10001,60000 HKR,ResourceTypes\%LocalQuorum.TypeName%,LooksAlivePollInterval,0x10001,5000 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Tree under HKLM\Cluster\Resources ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; HKR,Quorum,Path,0x0,"%32769%\" [ClusDB_Cleanup] DelFiles=ClusDB_Cleanup_DelFiles [ClusDB_Cleanup_DelFiles] ClusDB ClusDB.log ;///////////////////////////////////////////////////////////////////////////// ;// Strings ;///////////////////////////////////////////////////////////////////////////// [Strings] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Cluster Registry Keys And Values (Non-localizable) ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Resource Type Names (Non-localizable) ; GenApp.TypeName="Generic Application" GenSvc.TypeName="Generic Service" NetName.TypeName="Network Name" PhysDisk.TypeName="Physical Disk" PrtSplSvc.TypeName="Print Spooler" FileShr.TypeName="File Share" IpAddr.TypeName="IP Address" LocalQuorum.TypeName="Local Quorum" DhcpSvc.TypeName="DHCP Service" WinsSvc.TypeName="WINS Service" MSMQ.TypeName="MSMQ" MSDTC.TypeName="Distributed Transaction Coordinator" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Other Non-localizable Strings ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;; ; Localizable Strings ; ;;;;;;;;;;;;;;;;;;;;;;; ; ; ClusSvc Strings ; ClusSvc.DisplayName="Cluster Service" ClusSvc.Description="Enables servers to work together as a cluster to keep server-based applications highly available, regardless of individual component failures." ; ; ClusNet Strings ; ClusNet.DisplayName="Cluster Network Driver" ; ; Cluster Database Strings ; ClusterGroupName="Cluster Group" ClusterNameResName="Cluster Name" ClusterIPAddrResName="Cluster IP Address" LocalQuorumResName="Local Quorum" ; ; Resource Type Display Names ; GenApp.DisplayName="Generic Application" GenSvc.DisplayName="Generic Service" NetName.DisplayName="Network Name" PhysDisk.DisplayName="Physical Disk" PrtSplSvc.DisplayName="Print Spooler" FileShr.DisplayName="File Share" IpAddr.DisplayName="IP Address" LocalQuorum.DisplayName="Local Quorum" DhcpSvc.DisplayName="DHCP Service" WinsSvc.DisplayName="WINS Service" MSMQ.DisplayName="Message Queuing" MSDTC.DisplayName="Distributed Transaction Coordinator" ; ; Miscellaneous Strings ; ExtSnapInName="Cluster Service"