|
|
//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000 Microsoft Corporation
//
// Module Name:
// CBaseInfo.cpp
//
// Description:
// This file contains the implementation of the CBaseInfo
// class heirarchy. They are wrappers for the ClusterApi methods.
//
//
// Documentation:
//
// Maintained By:
//
//////////////////////////////////////////////////////////////////////////////
#include "pch.h"
#include "CBaseInfo.h"
DEFINE_THISCLASS("CBaseInfo")
CBaseInfo::CBaseInfo( void ) { m_pICHProvider = NULL; }
CBaseInfo::~CBaseInfo( void ) { TraceFunc( "" );
Close();
if ( m_pICHProvider ) { m_pICHProvider->Release(); } // if:
TraceFuncExit(); }
HRESULT CBaseInfo::Close( void ) { return S_FALSE; }
HCLUSTER CBaseInfo::getClusterHandle( void ) { HCLUSTER hCluster = NULL;
if ( m_pICHProvider != NULL ) { m_pICHProvider->GetClusterHandle( & hCluster ); }
return hCluster; }
HRESULT CBaseInfo::SetClusterHandleProvider( IClusterHandleProvider * pICHPIn ) { TraceFunc( "" ); Assert( m_pICHProvider == NULL ); Assert( pICHPIn != NULL );
m_pICHProvider = pICHPIn; m_pICHProvider->AddRef();
Assert( m_pICHProvider == pICHPIn );
HRETURN( S_OK ); }
HRESULT CBaseInfo::GetPropertyStringValue( CtlCodeEnum cceIn, const WCHAR * pszPropertyIn, BSTR * pbstrResultOut ) { TraceFunc( "" ); Assert( pbstrResultOut != NULL ); Assert( pszPropertyIn != NULL );
DWORD sc; HRESULT hr = S_OK; CBasePropList cpl;
sc = TW32( cpl.ScGetProperties( *this, ToCode( cceIn ) ) ); if ( sc == ERROR_SUCCESS ) { hr = THR( GetPropertyStringHelper( cpl, pszPropertyIn, pbstrResultOut ) ); } else { hr = HRESULT_FROM_WIN32( sc ); }
HRETURN( hr );
}
HRESULT CBaseInfo::GetPropertyStringHelper( CBasePropList & cplIn, const WCHAR * pszPropertyIn, BSTR * pbstrResultOut ) { TraceFunc( "" ); Assert( pbstrResultOut != NULL ); Assert( pszPropertyIn != NULL );
DWORD sc; HRESULT hr = S_OK; CLUSPROP_BUFFER_HELPER cpbh;
sc = TW32( cplIn.ScMoveToPropertyByName( pszPropertyIn ) ); if ( sc != ERROR_SUCCESS ) { hr = HRESULT_FROM_WIN32( sc ); goto Exit; } // if:
cpbh = cplIn.CbhCurrentValue(); Assert( cpbh.pSyntax->dw == CLUSPROP_SYNTAX_LIST_VALUE_SZ );
*pbstrResultOut = TraceSysAllocString( cpbh.pStringValue->sz ); if ( *pbstrResultOut == NULL ) { hr = THR( E_OUTOFMEMORY ); } // if:
Exit: HRETURN( hr ); }
HRESULT CBaseInfo::GetPropertyDwordValue( CtlCodeEnum cceIn, const WCHAR * pszPropertyIn, DWORD * pdwValueOut ) { TraceFunc( "" ); Assert( pdwValueOut != NULL ); Assert( pszPropertyIn != NULL );
DWORD sc; HRESULT hr = S_OK; CBasePropList cpl;
sc = TW32( cpl.ScGetProperties( *this, ToCode( cceIn ) ) ); if ( sc == ERROR_SUCCESS ) { hr = THR( GetPropertyDwordHelper( cpl, pszPropertyIn, pdwValueOut ) ); } else { hr = HRESULT_FROM_WIN32( sc ); }
HRETURN( hr );
}
HRESULT CBaseInfo::GetPropertyDwordHelper( CBasePropList & cplIn, const WCHAR * pszPropertyIn, DWORD * pdwValueOut ) { TraceFunc( "" ); Assert( pdwValueOut != NULL ); Assert( pszPropertyIn != NULL );
DWORD sc; HRESULT hr = S_OK; CLUSPROP_BUFFER_HELPER cpbh;
sc = TW32( cplIn.ScMoveToPropertyByName( pszPropertyIn ) ); if ( sc != ERROR_SUCCESS ) { hr = HRESULT_FROM_WIN32( sc ); goto Exit; }
cpbh = cplIn.CbhCurrentValue(); Assert( cpbh.pSyntax->dw == CLUSPROP_SYNTAX_LIST_VALUE_DWORD );
*pdwValueOut = cpbh.pDwordValue->dw;
Exit:
HRETURN( hr );
}
//////////////////////////////////////////////////////////////////////////////
// CBaseClusterInfo
//////////////////////////////////////////////////////////////////////////////
HRESULT CBaseClusterInfo::Close( void ) { return S_FALSE; }
HRESULT CBaseClusterInfo::Open( BSTR bstrNameIn ) { TraceFunc( "" );
HRESULT hr = S_FALSE; HCLUSTER hCluster = getClusterHandle(); IUnknown * punk = NULL; IClusterHandleProvider * piCHProvider = NULL;
if ( hCluster == NULL ) { CHandleProvider::S_HrCreateInstance( &punk );
hr = punk->TypeSafeQI( IClusterHandleProvider, &piCHProvider ); if ( SUCCEEDED( hr )) { hr = piCHProvider->OpenCluster( bstrNameIn ); if ( SUCCEEDED( hr ) ) { hr = SetClusterHandleProvider( piCHProvider ); } } }
if ( punk ) { punk->Release(); }
if ( piCHProvider ) { piCHProvider->Release(); }
HRETURN( hr ); }
DWORD CBaseClusterInfo::Control( DWORD dwEnum, VOID * pvBufferIn, DWORD dwLengthIn, VOID * pvBufferOut, DWORD dwBufferLength, DWORD * pdwLengthOut, HNODE hHostNode ) { TraceFunc( "" );
DWORD sc; HCLUSTER hCluster = getClusterHandle();
if ( hCluster == NULL ) { sc = TW32( ERROR_INVALID_PARAMETER ); goto Exit; }
sc = ClusterControl( hCluster, hHostNode, dwEnum, pvBufferIn, dwLengthIn, pvBufferOut, dwBufferLength, pdwLengthOut ); if ( ( sc != ERROR_MORE_DATA ) && ( sc != ERROR_SUCCESS ) ) { TW32( sc ); } // if:
Exit:
RETURN( sc );
}
//////////////////////////////////////////////////////////////////////////////
// CBaseClusterGroupInfo
//////////////////////////////////////////////////////////////////////////////
HRESULT CBaseClusterGroupInfo::Close( ) { TraceFunc( "" );
HRESULT hr = S_FALSE;
if ( m_hGroup ) { hr = S_OK; CloseClusterGroup( m_hGroup ); }
HRETURN( hr );
}
HRESULT CBaseClusterGroupInfo::Open( BSTR bstrGroupName ) { TraceFunc( "" );
HRESULT hr = S_OK; HCLUSTER hCluster = getClusterHandle(); if ( hCluster == NULL ) { hr = THR( E_FAIL ); goto Exit; }
m_hGroup = OpenClusterGroup( hCluster, bstrGroupName ); if ( m_hGroup == NULL ) { hr = HRESULT_FROM_WIN32( TW32( GetLastError() ) ); }
Exit:
HRETURN( hr );
}
DWORD CBaseClusterGroupInfo::Control( DWORD dwEnum, VOID * pvBufferIn, DWORD dwLengthIn, VOID * pvBufferOut, DWORD dwBufferLength, DWORD * pdwLengthOut, HNODE hHostNode ) { TraceFunc( "" );
DWORD sc;
if ( m_hGroup == NULL ) { sc = TW32( ERROR_INVALID_PARAMETER ); goto Exit; }
sc = ClusterGroupControl( m_hGroup , hHostNode, dwEnum, pvBufferIn, dwLengthIn, pvBufferOut, dwBufferLength, pdwLengthOut ); if ( ( sc != ERROR_MORE_DATA ) && ( sc != ERROR_SUCCESS ) ) { TW32( sc ); } // if:
Exit:
RETURN( sc );
}
//////////////////////////////////////////////////////////////////////////////
// CBaseClusterGroupInfo
//////////////////////////////////////////////////////////////////////////////
HRESULT CBaseClusterResourceInfo::Close( void ) { TraceFunc( "" );
HRESULT hr = S_FALSE;
if ( m_hResource ) { hr = S_OK; CloseClusterResource( m_hResource ); }
HRETURN( hr );
}
HRESULT CBaseClusterResourceInfo::Open( BSTR bstrResourceName ) { TraceFunc( "" );
HRESULT hr = S_OK; HCLUSTER hCluster = getClusterHandle(); if ( hCluster == NULL ) { hr = THR( E_FAIL ); goto Exit; }
m_hResource = OpenClusterResource( hCluster, bstrResourceName ); if ( m_hResource == NULL ) { hr = HRESULT_FROM_WIN32( TW32( GetLastError() ) ); }
Exit:
HRETURN( hr );
}
DWORD CBaseClusterResourceInfo::Control( DWORD dwEnum, VOID * pvBufferIn, DWORD dwLengthIn, VOID * pvBufferOut, DWORD dwBufferLength, DWORD * pdwLengthOut, HNODE hHostNode ) { TraceFunc( "" );
DWORD sc;
if ( m_hResource == NULL ) { sc = TW32( ERROR_INVALID_PARAMETER ); goto Exit; }
sc = ClusterResourceControl( m_hResource, hHostNode, dwEnum, pvBufferIn, dwLengthIn, pvBufferOut, dwBufferLength, pdwLengthOut ); if ( ( sc != ERROR_MORE_DATA ) && ( sc != ERROR_SUCCESS ) ) { TW32( sc ); } // if:
Exit:
RETURN( sc );
}
//////////////////////////////////////////////////////////////////////////////
// CBaseClusterGroupInfo
//////////////////////////////////////////////////////////////////////////////
HRESULT CBaseClusterNodeInfo::Close( void ) { TraceFunc( "" );
HRESULT hr = S_FALSE;
if ( m_hNode ) { hr = S_OK; CloseClusterNode( m_hNode ); }
HRETURN( hr );
}
HRESULT CBaseClusterNodeInfo::Open( BSTR bstrNodeName ) { TraceFunc( "" );
HRESULT hr = S_OK;
HCLUSTER hCluster = getClusterHandle(); if ( hCluster == NULL ) { hr = THR( E_FAIL ); goto Exit; }
m_hNode = OpenClusterNode( hCluster, bstrNodeName ); if ( m_hNode == NULL ) { hr = HRESULT_FROM_WIN32( TW32( GetLastError() ) ); }
Exit:
HRETURN( hr );
}
DWORD CBaseClusterNodeInfo::Control( DWORD dwEnum, VOID * pvBufferIn, DWORD dwLengthIn, VOID * pvBufferOut, DWORD dwBufferLength, DWORD * pdwLengthOut, HNODE hHostNode ) { TraceFunc( "" );
DWORD sc;
if ( m_hNode == NULL ) { sc = TW32( ERROR_INVALID_PARAMETER ); goto Exit; }
sc = ClusterNodeControl( m_hNode, hHostNode, dwEnum, pvBufferIn, dwLengthIn, pvBufferOut, dwBufferLength, pdwLengthOut ); if ( ( sc != ERROR_MORE_DATA ) && ( sc != ERROR_SUCCESS ) ) { TW32( sc ); } // if:
Exit:
RETURN( sc );
}
//////////////////////////////////////////////////////////////////////////////
// CBaseClusterGroupInfo
//////////////////////////////////////////////////////////////////////////////
HRESULT CBaseClusterNetworkInfo::Close( void ) { TraceFunc( "" );
HRESULT hr = S_FALSE;
if ( m_hNetwork ) { hr = S_OK; CloseClusterNetwork( m_hNetwork ); }
HRETURN( hr );
}
HRESULT CBaseClusterNetworkInfo::Open( BSTR bstrNetworkName ) { TraceFunc( "" );
HRESULT hr = S_OK; HCLUSTER hCluster = getClusterHandle(); if ( hCluster == NULL ) { hr = THR( E_FAIL ); goto Exit; }
m_hNetwork = OpenClusterNetwork( hCluster, bstrNetworkName ); if ( m_hNetwork == NULL ) { hr = HRESULT_FROM_WIN32( TW32( GetLastError() ) ); }
Exit:
HRETURN( hr );
}
DWORD CBaseClusterNetworkInfo::Control( DWORD dwEnum, VOID * pvBufferIn, DWORD dwLengthIn, VOID * pvBufferOut, DWORD dwBufferLength, DWORD * pdwLengthOut, HNODE hHostNode ) { TraceFunc( "" );
DWORD sc;
if ( m_hNetwork == NULL ) { sc = TW32( ERROR_INVALID_PARAMETER ); goto Exit; }
sc = ClusterNetworkControl( m_hNetwork, hHostNode, dwEnum, pvBufferIn, dwLengthIn, pvBufferOut, dwBufferLength, pdwLengthOut ); if ( ( sc != ERROR_MORE_DATA ) && ( sc != ERROR_SUCCESS ) ) { TW32( sc ); } // if:
Exit:
RETURN( sc );
}
//////////////////////////////////////////////////////////////////////////////
// CBaseClusterGroupInfo
//////////////////////////////////////////////////////////////////////////////
HRESULT CBaseClusterNetInterfaceInfo::Close( void ) { TraceFunc( "" );
HRESULT hr = S_FALSE;
if ( m_hNetworkInterface ) { hr = S_OK; CloseClusterNetInterface( m_hNetworkInterface ); }
HRETURN( hr );
}
HRESULT CBaseClusterNetInterfaceInfo::Open( BSTR bstrNetworkInterfaceName ) { TraceFunc( "" );
HRESULT hr = S_OK; HCLUSTER hCluster = getClusterHandle();
if ( hCluster == NULL ) { hr = THR( E_FAIL ); goto Exit; }
m_hNetworkInterface = OpenClusterNetInterface( hCluster, bstrNetworkInterfaceName ); if ( m_hNetworkInterface == NULL ) { hr = HRESULT_FROM_WIN32( TW32( GetLastError() ) ); }
Exit:
HRETURN( hr );
}
DWORD CBaseClusterNetInterfaceInfo::Control( DWORD dwEnum, VOID * pvBufferIn, DWORD dwLengthIn, VOID * pvBufferOut, DWORD dwBufferLength, DWORD * pdwLengthOut, HNODE hHostNode ) { TraceFunc( "" );
DWORD sc;
if ( m_hNetworkInterface == NULL ) { sc = TW32( ERROR_INVALID_PARAMETER ); goto Exit; }
sc = ClusterNetInterfaceControl( m_hNetworkInterface, hHostNode, dwEnum, pvBufferIn, dwLengthIn, pvBufferOut, dwBufferLength, pdwLengthOut ); if ( ( sc != ERROR_MORE_DATA ) && ( sc != ERROR_SUCCESS ) ) { TW32( sc ); } // if:
Exit:
RETURN( sc );
}
//////////////////////////////////////////////////////////////////////////////
// ToCode
//
// These methods translate the CtlCodeEnums to the appropriate control code
// for each class.
//
//
/////////////////////////////////////////////////////////////////
DWORD CBaseClusterInfo::ToCode( CtlCodeEnum cceIn ) { TraceFunc( "" );
DWORD dwResult = 0;
switch( cceIn ) { case CONTROL_UNKNOWN: dwResult = CLUSCTL_CLUSTER_UNKNOWN; break;
case CONTROL_VALIDATE_COMMON_PROPERTIES: dwResult = CLUSCTL_CLUSTER_VALIDATE_COMMON_PROPERTIES; break; case CONTROL_VALIDATE_PRIVATE_PROPERTIES: dwResult = CLUSCTL_CLUSTER_VALIDATE_PRIVATE_PROPERTIES; break; case CONTROL_ENUM_COMMON_PROPERTIES: dwResult = CLUSCTL_CLUSTER_ENUM_COMMON_PROPERTIES; break; case CONTROL_ENUM_PRIVATE_PROPERTIES: dwResult = CLUSCTL_CLUSTER_ENUM_PRIVATE_PROPERTIES; break; case CONTROL_GET_RO_COMMON_PROPERTIES: dwResult = CLUSCTL_CLUSTER_GET_RO_COMMON_PROPERTIES; break; case CONTROL_GET_RO_PRIVATE_PROPERTIES: dwResult = CLUSCTL_CLUSTER_GET_RO_PRIVATE_PROPERTIES; break; case CONTROL_GET_COMMON_PROPERTIES: dwResult = CLUSCTL_CLUSTER_GET_COMMON_PROPERTIES; break; case CONTROL_GET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_CLUSTER_GET_PRIVATE_PROPERTIES; break; case CONTROL_SET_COMMON_PROPERTIES: dwResult = CLUSCTL_CLUSTER_SET_COMMON_PROPERTIES; break; case CONTROL_SET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_CLUSTER_SET_PRIVATE_PROPERTIES; break;
case CONTROL_GET_TYPE: case CONTROL_GET_NAME: case CONTROL_GET_ID: case CONTROL_GET_FLAGS: case CONTROL_GET_CLASS_INFO: case CONTROL_GET_NETWORK_NAME: case CONTROL_GET_CHARACTERISTICS: case CONTROL_GET_REQUIRED_DEPENDENCIES:
case CONTROL_STORAGE_GET_DISK_INFO: case CONTROL_STORAGE_IS_PATH_VALID: case CONTROL_STORAGE_GET_AVAILABLE_DISKS: case CONTROL_QUERY_DELETE:
case CONTROL_ADD_CRYPTO_CHECKPOINT: case CONTROL_ADD_REGISTRY_CHECKPOINT: case CONTROL_GET_REGISTRY_CHECKPOINTS: case CONTROL_GET_CRYPTO_CHECKPOINTS: case CONTROL_DELETE_CRYPTO_CHECKPOINT: case CONTROL_DELETE_REGISTRY_CHECKPOINT: default: dwResult = 0; }
RETURN( dwResult );
}
DWORD CBaseClusterGroupInfo::ToCode( CtlCodeEnum cceIn ) { TraceFunc( "" );
DWORD dwResult = 0;
switch( cceIn ) { case CONTROL_UNKNOWN: dwResult = CLUSCTL_GROUP_UNKNOWN; break;
case CONTROL_VALIDATE_COMMON_PROPERTIES: dwResult = CLUSCTL_GROUP_VALIDATE_COMMON_PROPERTIES; break; case CONTROL_VALIDATE_PRIVATE_PROPERTIES: dwResult = CLUSCTL_GROUP_VALIDATE_PRIVATE_PROPERTIES; break; case CONTROL_ENUM_COMMON_PROPERTIES: dwResult = CLUSCTL_GROUP_ENUM_COMMON_PROPERTIES; break; case CONTROL_ENUM_PRIVATE_PROPERTIES: dwResult = CLUSCTL_GROUP_ENUM_PRIVATE_PROPERTIES; break; case CONTROL_GET_RO_COMMON_PROPERTIES: dwResult = CLUSCTL_GROUP_GET_RO_COMMON_PROPERTIES; break; case CONTROL_GET_RO_PRIVATE_PROPERTIES: dwResult = CLUSCTL_GROUP_GET_RO_PRIVATE_PROPERTIES; break; case CONTROL_GET_COMMON_PROPERTIES: dwResult = CLUSCTL_GROUP_GET_COMMON_PROPERTIES; break; case CONTROL_GET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_GROUP_GET_PRIVATE_PROPERTIES; break; case CONTROL_SET_COMMON_PROPERTIES: dwResult = CLUSCTL_GROUP_SET_COMMON_PROPERTIES; break; case CONTROL_SET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_GROUP_SET_PRIVATE_PROPERTIES; break;
case CONTROL_GET_NAME: dwResult = CLUSCTL_GROUP_GET_NAME; break; case CONTROL_GET_ID: dwResult = CLUSCTL_GROUP_GET_ID; break; case CONTROL_GET_FLAGS: dwResult = CLUSCTL_GROUP_GET_FLAGS; break; case CONTROL_GET_CHARACTERISTICS: dwResult = CLUSCTL_GROUP_GET_CHARACTERISTICS; break; case CONTROL_QUERY_DELETE: dwResult = CLUSCTL_GROUP_QUERY_DELETE; break;
case CONTROL_GET_CLASS_INFO: case CONTROL_GET_NETWORK_NAME: case CONTROL_GET_TYPE: case CONTROL_GET_REQUIRED_DEPENDENCIES:
case CONTROL_STORAGE_GET_DISK_INFO: case CONTROL_STORAGE_IS_PATH_VALID: case CONTROL_STORAGE_GET_AVAILABLE_DISKS:
case CONTROL_ADD_CRYPTO_CHECKPOINT: case CONTROL_ADD_REGISTRY_CHECKPOINT: case CONTROL_GET_REGISTRY_CHECKPOINTS: case CONTROL_GET_CRYPTO_CHECKPOINTS: case CONTROL_DELETE_CRYPTO_CHECKPOINT: case CONTROL_DELETE_REGISTRY_CHECKPOINT: default: dwResult = 0; }
RETURN( dwResult );
}
DWORD CBaseClusterResourceInfo::ToCode( CtlCodeEnum cceIn ) { TraceFunc( "" );
DWORD dwResult = 0;
switch( cceIn ) { case CONTROL_UNKNOWN: dwResult = CLUSCTL_RESOURCE_UNKNOWN; break;
case CONTROL_VALIDATE_COMMON_PROPERTIES: dwResult = CLUSCTL_RESOURCE_VALIDATE_COMMON_PROPERTIES; break; case CONTROL_VALIDATE_PRIVATE_PROPERTIES: dwResult = CLUSCTL_RESOURCE_VALIDATE_PRIVATE_PROPERTIES; break; case CONTROL_ENUM_COMMON_PROPERTIES: dwResult = CLUSCTL_RESOURCE_ENUM_COMMON_PROPERTIES; break; case CONTROL_ENUM_PRIVATE_PROPERTIES: dwResult = CLUSCTL_RESOURCE_ENUM_PRIVATE_PROPERTIES; break; case CONTROL_GET_RO_COMMON_PROPERTIES: dwResult = CLUSCTL_RESOURCE_GET_RO_COMMON_PROPERTIES; break; case CONTROL_GET_RO_PRIVATE_PROPERTIES: dwResult = CLUSCTL_RESOURCE_GET_RO_PRIVATE_PROPERTIES; break; case CONTROL_GET_COMMON_PROPERTIES: dwResult = CLUSCTL_RESOURCE_GET_COMMON_PROPERTIES; break; case CONTROL_GET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTIES; break; case CONTROL_SET_COMMON_PROPERTIES: dwResult = CLUSCTL_RESOURCE_SET_COMMON_PROPERTIES; break; case CONTROL_SET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_RESOURCE_SET_PRIVATE_PROPERTIES; break;
case CONTROL_GET_TYPE: dwResult = CLUSCTL_RESOURCE_GET_RESOURCE_TYPE; break; case CONTROL_GET_NAME: dwResult = CLUSCTL_RESOURCE_GET_NAME; break; case CONTROL_GET_ID: dwResult = CLUSCTL_RESOURCE_GET_ID; break; case CONTROL_GET_FLAGS: dwResult = CLUSCTL_RESOURCE_GET_FLAGS; break; case CONTROL_GET_CLASS_INFO: dwResult = CLUSCTL_RESOURCE_GET_CLASS_INFO; break; case CONTROL_GET_NETWORK_NAME: dwResult = CLUSCTL_RESOURCE_GET_NETWORK_NAME; break; case CONTROL_GET_CHARACTERISTICS: dwResult = CLUSCTL_RESOURCE_GET_CHARACTERISTICS; break; case CONTROL_GET_REQUIRED_DEPENDENCIES: dwResult = CLUSCTL_RESOURCE_GET_REQUIRED_DEPENDENCIES; break;
case CONTROL_ADD_CRYPTO_CHECKPOINT: dwResult = CLUSCTL_RESOURCE_ADD_CRYPTO_CHECKPOINT; break; case CONTROL_ADD_REGISTRY_CHECKPOINT: dwResult = CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT; break; case CONTROL_GET_REGISTRY_CHECKPOINTS: dwResult = CLUSCTL_RESOURCE_GET_REGISTRY_CHECKPOINTS; break; case CONTROL_GET_CRYPTO_CHECKPOINTS: dwResult = CLUSCTL_RESOURCE_GET_CRYPTO_CHECKPOINTS; break; case CONTROL_DELETE_CRYPTO_CHECKPOINT: dwResult = CLUSCTL_RESOURCE_DELETE_CRYPTO_CHECKPOINT; break; case CONTROL_DELETE_REGISTRY_CHECKPOINT: dwResult = CLUSCTL_RESOURCE_DELETE_REGISTRY_CHECKPOINT; break;
case CONTROL_STORAGE_GET_DISK_INFO: dwResult = CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO; break; case CONTROL_STORAGE_IS_PATH_VALID: dwResult = CLUSCTL_RESOURCE_STORAGE_IS_PATH_VALID; break; case CONTROL_QUERY_DELETE: dwResult = CLUSCTL_RESOURCE_QUERY_DELETE; break;
case CONTROL_STORAGE_GET_AVAILABLE_DISKS: default: dwResult = 0; }
RETURN( dwResult );
}
DWORD CBaseClusterNodeInfo::ToCode( CtlCodeEnum cceIn ) { TraceFunc( "" );
DWORD dwResult = 0;
switch( cceIn ) { case CONTROL_UNKNOWN: dwResult = CLUSCTL_NODE_UNKNOWN; break;
case CONTROL_VALIDATE_COMMON_PROPERTIES: dwResult = CLUSCTL_NODE_VALIDATE_COMMON_PROPERTIES; break; case CONTROL_VALIDATE_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NODE_VALIDATE_PRIVATE_PROPERTIES; break; case CONTROL_ENUM_COMMON_PROPERTIES: dwResult = CLUSCTL_NODE_ENUM_COMMON_PROPERTIES; break; case CONTROL_ENUM_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NODE_ENUM_PRIVATE_PROPERTIES; break; case CONTROL_GET_RO_COMMON_PROPERTIES: dwResult = CLUSCTL_NODE_GET_RO_COMMON_PROPERTIES; break; case CONTROL_GET_RO_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NODE_GET_RO_PRIVATE_PROPERTIES; break; case CONTROL_GET_COMMON_PROPERTIES: dwResult = CLUSCTL_NODE_GET_COMMON_PROPERTIES; break; case CONTROL_GET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NODE_GET_PRIVATE_PROPERTIES; break; case CONTROL_SET_COMMON_PROPERTIES: dwResult = CLUSCTL_NODE_SET_COMMON_PROPERTIES; break; case CONTROL_SET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NODE_SET_PRIVATE_PROPERTIES; break;
case CONTROL_GET_NAME: dwResult = CLUSCTL_NODE_GET_NAME; break; case CONTROL_GET_ID: dwResult = CLUSCTL_NODE_GET_ID; break; case CONTROL_GET_FLAGS: dwResult = CLUSCTL_NODE_GET_FLAGS; break; case CONTROL_GET_CHARACTERISTICS: dwResult = CLUSCTL_NODE_GET_CHARACTERISTICS; break;
case CONTROL_GET_TYPE: case CONTROL_GET_CLASS_INFO: case CONTROL_GET_NETWORK_NAME: case CONTROL_GET_REQUIRED_DEPENDENCIES:
case CONTROL_STORAGE_GET_DISK_INFO: case CONTROL_STORAGE_IS_PATH_VALID: case CONTROL_STORAGE_GET_AVAILABLE_DISKS: case CONTROL_QUERY_DELETE:
case CONTROL_ADD_CRYPTO_CHECKPOINT: case CONTROL_ADD_REGISTRY_CHECKPOINT: case CONTROL_GET_REGISTRY_CHECKPOINTS: case CONTROL_GET_CRYPTO_CHECKPOINTS: case CONTROL_DELETE_CRYPTO_CHECKPOINT: case CONTROL_DELETE_REGISTRY_CHECKPOINT: default: dwResult = 0; }
RETURN( dwResult );
}
DWORD CBaseClusterNetworkInfo::ToCode( CtlCodeEnum cceIn ) { TraceFunc( "" );
DWORD dwResult = 0;
switch( cceIn ) { case CONTROL_UNKNOWN: dwResult = CLUSCTL_NETWORK_UNKNOWN; break;
case CONTROL_VALIDATE_COMMON_PROPERTIES: dwResult = CLUSCTL_NETWORK_VALIDATE_COMMON_PROPERTIES; break; case CONTROL_VALIDATE_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NETWORK_VALIDATE_PRIVATE_PROPERTIES; break; case CONTROL_ENUM_COMMON_PROPERTIES: dwResult = CLUSCTL_NETWORK_ENUM_COMMON_PROPERTIES; break; case CONTROL_ENUM_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NETWORK_ENUM_PRIVATE_PROPERTIES; break; case CONTROL_GET_RO_COMMON_PROPERTIES: dwResult = CLUSCTL_NETWORK_GET_RO_COMMON_PROPERTIES; break; case CONTROL_GET_RO_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NETWORK_GET_RO_PRIVATE_PROPERTIES; break; case CONTROL_GET_COMMON_PROPERTIES: dwResult = CLUSCTL_NETWORK_GET_COMMON_PROPERTIES; break; case CONTROL_GET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NETWORK_GET_PRIVATE_PROPERTIES; break; case CONTROL_SET_COMMON_PROPERTIES: dwResult = CLUSCTL_NETWORK_SET_COMMON_PROPERTIES; break; case CONTROL_SET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NETWORK_SET_PRIVATE_PROPERTIES; break;
case CONTROL_GET_NAME: dwResult = CLUSCTL_NETWORK_GET_NAME; break; case CONTROL_GET_ID: dwResult = CLUSCTL_NETWORK_GET_ID; break; case CONTROL_GET_FLAGS: dwResult = CLUSCTL_NETWORK_GET_FLAGS; break; case CONTROL_GET_CHARACTERISTICS: dwResult = CLUSCTL_NETWORK_GET_CHARACTERISTICS; break;
case CONTROL_GET_TYPE: case CONTROL_GET_CLASS_INFO: case CONTROL_GET_NETWORK_NAME: case CONTROL_GET_REQUIRED_DEPENDENCIES:
case CONTROL_STORAGE_GET_DISK_INFO: case CONTROL_STORAGE_IS_PATH_VALID: case CONTROL_STORAGE_GET_AVAILABLE_DISKS: case CONTROL_QUERY_DELETE:
case CONTROL_ADD_CRYPTO_CHECKPOINT: case CONTROL_ADD_REGISTRY_CHECKPOINT: case CONTROL_GET_REGISTRY_CHECKPOINTS: case CONTROL_GET_CRYPTO_CHECKPOINTS: case CONTROL_DELETE_CRYPTO_CHECKPOINT: case CONTROL_DELETE_REGISTRY_CHECKPOINT: default: dwResult = 0; }
RETURN( dwResult ); }
DWORD CBaseClusterNetInterfaceInfo::ToCode( CtlCodeEnum cceIn ) { TraceFunc( "" );
DWORD dwResult = 0;
switch( cceIn ) { case CONTROL_UNKNOWN: dwResult = CLUSCTL_NETINTERFACE_UNKNOWN; break;
case CONTROL_VALIDATE_COMMON_PROPERTIES: dwResult = CLUSCTL_NETINTERFACE_VALIDATE_COMMON_PROPERTIES; break; case CONTROL_VALIDATE_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NETINTERFACE_VALIDATE_PRIVATE_PROPERTIES; break; case CONTROL_ENUM_COMMON_PROPERTIES: dwResult = CLUSCTL_NETINTERFACE_ENUM_COMMON_PROPERTIES; break; case CONTROL_ENUM_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NETINTERFACE_ENUM_PRIVATE_PROPERTIES; break; case CONTROL_GET_RO_COMMON_PROPERTIES: dwResult = CLUSCTL_NETINTERFACE_GET_RO_COMMON_PROPERTIES; break; case CONTROL_GET_RO_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NETINTERFACE_GET_RO_PRIVATE_PROPERTIES; break; case CONTROL_GET_COMMON_PROPERTIES: dwResult = CLUSCTL_NETINTERFACE_GET_COMMON_PROPERTIES; break; case CONTROL_GET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NETINTERFACE_GET_PRIVATE_PROPERTIES; break; case CONTROL_SET_COMMON_PROPERTIES: dwResult = CLUSCTL_NETINTERFACE_SET_COMMON_PROPERTIES; break; case CONTROL_SET_PRIVATE_PROPERTIES: dwResult = CLUSCTL_NETINTERFACE_SET_PRIVATE_PROPERTIES; break;
case CONTROL_GET_NAME: dwResult = CLUSCTL_NETINTERFACE_SET_PRIVATE_PROPERTIES; break; case CONTROL_GET_ID: dwResult = CLUSCTL_NETINTERFACE_SET_PRIVATE_PROPERTIES; break; case CONTROL_GET_FLAGS: dwResult = CLUSCTL_NETINTERFACE_SET_PRIVATE_PROPERTIES; break; case CONTROL_GET_CHARACTERISTICS: dwResult = CLUSCTL_NETINTERFACE_SET_PRIVATE_PROPERTIES; break;
case CONTROL_GET_CLASS_INFO: case CONTROL_GET_NETWORK_NAME: case CONTROL_GET_REQUIRED_DEPENDENCIES: case CONTROL_GET_TYPE:
case CONTROL_STORAGE_GET_DISK_INFO: case CONTROL_STORAGE_IS_PATH_VALID: case CONTROL_STORAGE_GET_AVAILABLE_DISKS: case CONTROL_QUERY_DELETE:
case CONTROL_ADD_CRYPTO_CHECKPOINT: case CONTROL_ADD_REGISTRY_CHECKPOINT: case CONTROL_GET_REGISTRY_CHECKPOINTS: case CONTROL_GET_CRYPTO_CHECKPOINTS: case CONTROL_DELETE_CRYPTO_CHECKPOINT: case CONTROL_DELETE_REGISTRY_CHECKPOINT: default: dwResult = 0; }
RETURN( dwResult );
}
|