722 lines
22 KiB
Plaintext
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
|