////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2000-2002 Microsoft Corporation // // Module Name: // ClusterUtils.h // // Description: // This file contains the declaration of the ClusterUtils // functions. // // Implementation Files: // ClusterUtils.cpp // // Maintained By: // Galen Barbee (GalenB) 01-JAN-2000 // ////////////////////////////////////////////////////////////////////////////// #pragma once // // Cluster API Functions. // HRESULT HrIsCoreResource( HRESOURCE hResIn ); HRESULT HrIsResourceOfType( HRESOURCE hResIn , const WCHAR * pszResourceTypeIn ); HRESULT HrGetIPAddressInfo( HRESOURCE hResIn , ULONG * pulIPAddress , ULONG * pulSubnetMask , BSTR * pbstrNetworkName ); HRESULT HrLoadCredentials( BSTR bstrMachine , IClusCfgSetCredentials * piCCSC ); HRESULT HrGetNodeNameHostingResource( HCLUSTER hClusterIn , HRESOURCE hResIn , BSTR * pbstrNameOut ); HRESULT HrGetNodeNameHostingCluster( HCLUSTER hClusterIn , BSTR * pbstrNodeName ); HRESULT HrGetNetworkOfCluster( HCLUSTER hClusterIn , BSTR * pbstrNetworkName ); HRESULT HrGetSCSIInfo( HRESOURCE hResIn , CLUS_SCSI_ADDRESS * pCSAOut , DWORD * pdwSignatureOut , DWORD * pdwDiskNumberOut ); HRESULT HrGetClusterInformation( HCLUSTER hClusterIn , BSTR * pbstrClusterNameOut , CLUSTERVERSIONINFO * pcviOut ); HRESULT HrGetClusterResourceState( HRESOURCE hResourceIn , BSTR * pbstrNodeNameOut , BSTR * pbstrGroupNameOut , CLUSTER_RESOURCE_STATE * pcrsStateOut ); HRESULT HrGetClusterQuorumResource( HCLUSTER hClusterIn , BSTR * pbstrResourceNameOut , BSTR * pbstrDeviceNameOut , DWORD * pdwMaxQuorumLogSizeOut ); // // String manipulation functions. // HRESULT HrSeparateDomainAndName( BSTR bstrNameIn , BSTR * pbstrDomainOut , BSTR * pbstrNameOut ); HRESULT HrAppendDomainToName( BSTR bstrNameIn , BSTR bstrDomainIn , BSTR * pbstrDomainNameOut ); // // Cluster helper functions. // HRESULT HrReplaceTokens( LPWSTR pwszStringInout , LPCWSTR pwszSearchTokensIn , WCHAR chReplaceTokenIn , DWORD * pcReplacementsOut ); HRESULT HrGetMaxNodeCount( DWORD * pcMaxNodesOut ); HRESULT HrGetReferenceStringFromHResult( HRESULT hrIn , BSTR * pbstrReferenceStringOut ); HRESULT HrIsClusterServiceRunning( void ); HRESULT HrCheckJoiningNodeVersion( PCWSTR pcwszClusterNameIn , DWORD dwNodeHighestVersionIn , DWORD dwNodeLowestVersionIn , IClusCfgCallback * pcccbIn ); HRESULT HrGetNodeNames( HCLUSTER hClusterIn , long * pnCountOut , BSTR ** prgbstrNodeNamesOut );