windows-nt/Source/XPSP1/NT/base/cluster/mgmt/cluscfg/inc/cluscfgpostcfg.idl
2020-09-26 16:20:57 +08:00

722 lines
22 KiB
Plaintext

//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000 Microsoft Corporation
//
// Module Name:
// ClusCfgPostCfg.idl
//
// Description:
// This file describes the interfaces used during post configuration of
// resources / applications after the initial local quorum cluster has
// been configured.
//
// Maintained By:
// Geoff Pease (GPease) 06-JUN-2000
//
//////////////////////////////////////////////////////////////////////////////
// Comments for generated files
cpp_quote( "//////////////////////////////////////////////////////////////////////////////" )
cpp_quote( "//" )
cpp_quote( "// Copyright (c) 2000 Microsoft Corporation" )
cpp_quote( "//" )
cpp_quote( "// Remarks:" )
cpp_quote( "// Generated file. See file ClusCfgPostCfg.idl for more details." )
cpp_quote( "//" )
cpp_quote( "//////////////////////////////////////////////////////////////////////////////" )
//////////////////////////////////////////////////////////////////////////////
// Imported Files
//////////////////////////////////////////////////////////////////////////////
import "unknwn.idl";
//////////////////////////////////////////////////////////////////////////////
// Forward Declarations
//////////////////////////////////////////////////////////////////////////////
interface IClusCfgManagedResourceCfg;
interface IClusCfgResourcePreCreate;
interface IClusCfgResourceCreate;
interface IClusCfgResourcePostCreate;
interface IClusCfgResourceEvict;
interface IClusCfgGroupCfg;
//////////////////////////////////////////////////////////////////////////////
// Type Definitions
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// Interface Definitions
//////////////////////////////////////////////////////////////////////////////
//****************************************************************************
//++
//
// interface IClusCfgManagedResourceCfg
//
// Description:
// TODO: gpease 06-JUN-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 60300A0F-77E1-440c-BD94-6BFB0DBFDB3A ),
local,
pointer_default( unique )
]
interface IClusCfgManagedResourceCfg : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgManagedResourceCfg::PreCreate(
// IUnknown * punkServicesIn
// )
//
// Description:
// This method is called by the post configuration manager to
// determine the requirements of the resource. Querying the
// punkServicesIn allows the managed resource to use services
// provided by the manager.
//
// Arguments:
// punkServicesIn
// The resource should QI this interface for services provided
// by the post configuration manager and to set its dependencies.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT PreCreate( IUnknown * punkServicesIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgManagedResourceCfg::Create(
// IUnknown * punkServicesIn
// )
//
// Description:
// This method is called by the post configuration manager to
// have the resource create an instance of itself. Querying the
// punkServicesIn allows the managed resource to use services
// provided by the manager.
//
// Arguments:
// punkServicesIn
// The resource should QI this interface for services provided
// by the post configuration manager and to create itself.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT Create( IUnknown * punkServicesIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgManagedResourceCfg::PostCreate(
// IUnknown * punkServicesIn
// )
//
// Description:
// This method is called by the post configuration manager to allow
// resources to perform any post-creation configuration that may be
// needed. At this point the cluster is fully configured. Querying
// the punkServicesIn allows the managed resource to use services
// provided by the manager.
//
// Arguments:
// punkServicesIn
// The resource should QI this interface for services provided
// by the post configuration manager.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT PostCreate( IUnknown * punkServicesIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgManagedResourceCfg::Evict(
// IUnknown * punkServicesIn
// )
//
// Description:
// This method is called by the post configuration manager to alert
// the resource that this node was evicted from the cluster. The
// resource should do whatever cleanup it needs to do revert to a
// non-clustered state. Querying the punkServicesIn allows the
// managed resource to uses services provided by the post
// configuration manager.
//
// Arguments:
// punkServicesIn
// The resource should QI this interface for services provided
// by the post configuration manager.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed. Errors are ignored and do not prevent a node
// from being evicted.
//
//////////////////////////////////////////////////////////////////////////
HRESULT Evict( IUnknown * punkServicesIn );
}; //*** interface IClusCfgManagedResourceCfg
//****************************************************************************
//++
//
// interface IClusCfgResourcePreCreate
//
// Description:
// TODO: gpease 06-JUN-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 4240F6A1-9D49-427e-8F3D-09384E1F59E4 ),
local,
pointer_default( unique )
]
interface IClusCfgResourcePreCreate : IUnknown
{
typedef
[
uuid( 1DAF9692-6662-43b1-AD45-D50F7849B0CD ),
helpstring("Resource dependency flags")
]
enum EDependencyFlags {
[helpstring("Unknown access")] dfUNKNOWN = 0,
[helpstring("Shared access resource")] dfSHARED = 1,
[helpstring("Exclusive access resource")] dfEXCLUSIVE = 2,
} EDependencyFlags;
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourcePreCreate::SetDependency(
// LPCLSID pclsidDepResTypeIn,
// EDependencyFlags dflagIn
// )
//
// Description:
// Informs the post configuration manager that a resource has a
// dependency on another type of resource and if the resource needs
// the resource for shared access or exclusive access.
//
// Arguments:
// pclsidDepResTypeIn
// The CLSID of the type of resource that a resource is
// requesting a dependency on. These are documented in the SDK
// or by the 3rd party resource.
//
// dfIn
// Flags to modify the dependency relationship. The following
// are defined flags:
//
// dfSHARED - the dependent resource can be shared.
// dfEXCLUSIVE - the dependent resource can not be shared.
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetDependency( LPCLSID pclsidDepResTypeIn, DWORD dfIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourcePreCreate::GetType(
// CLSID * pclsidIn
// )
//
// Description:
// A managed resource MUST call this to indicate its resource type.
// Failure to call this during PreCreate will result in your
// resource not being created.
//
// Arguments:
// pclsidIn
// Pointer to the GUID of the resource type.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetType( CLSID * pclsidIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourcePreCreate::SetClassType(
// CLSID * pclsidIn
// )
//
// Description:
// A managed resource sets this to indicate that its resource type
// can be considered to be of a class of resource. You may call this
// multiple times to indicate all the classes you belong to.
//
// Arguments:
// pclsidIn
// Pointer to the GUID of the resource class type.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetClassType( CLSID * pclsidIn );
}; //*** interface IClusCfgResourcePreCreate
//****************************************************************************
//++
//
// interface IClusCfgResourceCreate
//
// Description:
// TODO: gpease 06-JUN-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 0647B41A-C777-443c-9432-02CCCF4FF443 ),
local,
pointer_default( unique )
]
interface IClusCfgResourceCreate : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourceCreate::SetPropertyBinary(
// LPCWSTR pcszNameIn,
// const DWORD cbSizeIn,
// const BYTE * pbyteIn
// )
//
// Description:
//
// Arguments:
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetPropertyBinary( LPCWSTR pcszNameIn, const DWORD cbSizeIn, const BYTE * pbyteIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourceCreate::SetPropertyDWORD(
// LPCWSTR pcszNameIn,
// const DWORD dwDWORDIn
// )
//
// Description:
//
// Arguments:
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetPropertyDWORD( LPCWSTR pcszNameIn, const DWORD dwDWORDIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourceCreate::SetPropertyString(
// LPCWSTR pcszNameIn,
// LPCWSTR pcszStringIn
// )
//
// Description:
//
// Arguments:
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetPropertyString( LPCWSTR pcszNameIn, LPCWSTR pcszStringIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourceCreate::SetPropertyExpandString(
// LPCWSTR pcszNameIn,
// LPCWSTR pcszStringIn
// )
//
// Description:
//
// Arguments:
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetPropertyExpandString( LPCWSTR pcszNameIn, LPCWSTR pcszStringIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourceCreate::SetPropertyMultiString(
// LPCWSTR pcszNameIn,
// const DWORD cbMultiStringIn,
// LPCWSTR pcszMultiStringIn
// )
//
// Description:
//
// Arguments:
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetPropertyMultiString( LPCWSTR pcszNameIn, const DWORD cbMultiStringIn, LPCWSTR pcszMultiStringIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourceCreate::SetPropertyUnsignedLargeInt(
// LPCWSTR pcszNameIn,
// const ULARGE_INTEGER ulIntIn
// )
//
// Description:
//
// Arguments:
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetPropertyUnsignedLargeInt( LPCWSTR pcszNameIn, const ULARGE_INTEGER ulIntIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourceCreate::SetPropertyLong(
// LPCWSTR pcszNameIn,
// const LONG lLongIn
// )
//
// Description:
//
// Arguments:
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetPropertyLong( LPCWSTR pcszNameIn, const LONG lLongIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourceCreate::SetPropertySecurityDescriptor(
// LPCWSTR pcszNameIn,
// const SECURITY_DESCRIPTOR * pcsdIn
// )
//
// Description:
//
// Arguments:
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetPropertySecurityDescriptor( LPCWSTR pcszNameIn, const SECURITY_DESCRIPTOR * pcsdIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourceCreate::SetPropertyLargeInt(
// LPCWSTR pcszNameIn,
// const LARGE_INTEGER lIntIn
// )
//
// Description:
//
// Arguments:
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetPropertyLargeInt( LPCWSTR pcszNameIn, const LARGE_INTEGER lIntIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourceCreate::SendResourceControl(
// DWORD dwControlCode,
// LPVOID lpInBuffer,
// DWORD cbInBufferSize,
// )
//
// Description:
//
// Arguments:
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SendResourceControl( DWORD dwControlCode,
LPVOID lpInBuffer,
DWORD cbInBufferSize
);
}; //*** interface IClusCfgResourceCreate
//****************************************************************************
//++
//
// interface IClusCfgResourcePostCreate
//
// Description:
// TODO: gpease 06-JUN-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 72A9BF54-13B6-451f-910D-6913EBF025AB ),
local,
pointer_default( unique )
]
interface IClusCfgResourcePostCreate : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourcePostCreate::ChangeName(
// LPCWSTR pcszNameIn
// )
//
// Description:
// Changes the name of the resource.
//
// Arguments:
// pcszNameIn
// The name to assign the group.
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT ChangeName( LPCWSTR pcszNameIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgResourceCreate::SendResourceControl(
// DWORD dwControlCode,
// LPVOID lpInBuffer,
// DWORD cbInBufferSize,
// LPVOID lpOutBuffer,
// DWORD cbOutBufferSize,
// LPDWORD lpcbBytesReturned
// )
//
// Description:
//
// Arguments:
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SendResourceControl( DWORD dwControlCode,
LPVOID lpInBuffer,
DWORD cbInBufferSize,
LPVOID lpOutBuffer,
DWORD cbOutBufferSize,
LPDWORD lpcbBytesReturned
);
}; //*** interface IClusCfgResourcePostCreate
//****************************************************************************
//++
//
// interface IClusCfgGroupCfg
//
// Description:
// TODO: gpease 06-JUN-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( DCB6D3D2-A55F-49e5-A64A-0CCFEB01ED3A ),
local,
pointer_default( unique )
]
interface IClusCfgGroupCfg : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgGroupCfg::SetName(
// LPCWSTR pcszNameIn
// )
//
// Description:
// Changes the name of the group in which the resource was created.
// Note that the last resource to set the name wins. The ordering
// of the last resource is the resource that doesn't have anything
// depending on it.
//
// Arguments:
// pcszNameIn
// The name to assign the group.
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT SetName( LPCWSTR pcszNameIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IClusCfgGroupCfg::GetName(
// DWORD * pcbSizeInout,
// LPWSTR pszNameOut
// )
//
// Description:
// Retrieves the name of the group in which the resource was created.
// Note that the last resource to set the name wins. The ordering
// of the last resource is the resource that doesn't have anything
// depending on it. Do not cache this value as the name may change
// after control has been returned to the manager.
//
// Arguments:
// pcbSizeInout
// Size of the pszNameOut buffer. On return, it is the size
// of the sting in bytes (not WCHARs). If the buffer is too
// small, the required buffer size will be returned.
//
// bstrNameIn
// The name to assign the group.
//
// Return Value:
// S_OK
// Success.
//
// HRESULT_FROM_WIN32( ERROR_MORE_DATA )
// The buffer size specified is too small.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT GetName( DWORD * pcbSizeInout, LPWSTR pszNameOut );
}; //*** interface IClusCfgGroupCfg