/*++

Copyright (c) 1996  Microsoft Corporation

Module Name:

    clusrpc.acf

Abstract:

    Application Configuration File for clusrpc interface

Author:

    John Vert (jvert) 6/5/1996

Revision History:

--*/


[ explicit_handle,
  strict_context_handle
] interface IntraCluster
{

typedef [allocate(dont_free)] PGUM_DATA;

[comm_status, fault_status] FmsOnlineGroupRequest();
[comm_status, fault_status] FmsOfflineGroupRequest();
[comm_status, fault_status] FmsMoveGroupRequest();
[comm_status, fault_status] FmsOnlineResourceRequest();
[comm_status, fault_status] FmsOfflineResourceRequest();
[comm_status, fault_status] FmsArbitrateResource();
[comm_status, fault_status] FmsFailResource();
[comm_status, fault_status] FmsQueryOwnedGroups();
[comm_status, fault_status] FmsCreateResource();
[comm_status, fault_status] FmsDeleteResource();
[comm_status, fault_status] FmsChangeResourceNode();
[comm_status, fault_status] FmsResourceControl();
[comm_status, fault_status] FmsResourceTypeControl();
[comm_status, fault_status] FmsGroupControl();

[comm_status, fault_status] FmsPrepareQuorumResChange();
[comm_status, fault_status] FmsCompleteQuorumResChange();

[comm_status, fault_status] FmsQuoNodeOnlineResource();
[comm_status, fault_status] FmsQuoNodeOfflineResource();
[comm_status, fault_status] FmsRmOnlineResource();
[comm_status, fault_status] FmsRmOfflineResource();


#ifdef GUM_POST_SUPPORT
[fault_status] GumQueueLockingPost();
[fault_status] GumDeliverPostCallback();
#endif

[comm_status, fault_status] GumAttemptJoinUpdate();
[comm_status, fault_status] GumJoinUpdateNode();
[comm_status, fault_status] GumGetNodeSequence();

[comm_status, fault_status] MmRpcMsgSend();
[comm_status, fault_status] MmRpcEstablishSecurityContext();
[comm_status, fault_status] MmRpcDeleteSecurityContext();
[comm_status, fault_status] MmRpcBanishNode();

[comm_status, fault_status] NmRpcDeliverJoinMessage();
[comm_status, fault_status] NmRpcCreateJoinerBinding();
[comm_status, fault_status] CpDepositCheckpoint();
[comm_status, fault_status] CpRetrieveCheckpoint();

[comm_status, fault_status] EvPropEvents();

[comm_status, fault_status] CpDeleteCheckpoint();
[comm_status, fault_status] GumCollectVoteFromNode();
//
// New procedures for version 2.0 (NT 5.0)
//
[async, comm_status, fault_status] NmRpcReportInterfaceConnectivity();
[comm_status, fault_status] NmRpcGetInterfaceOnlineAddressEnum();
[comm_status, fault_status] NmRpcGetInterfacePingAddressEnum();

//
// We can't use [comm_status, fault_status] for remote procedures because
// of a bug in the MIDL compiler.
//
[async] NmRpcDoInterfacePing();

[comm_status, fault_status] FmsBackupClusterDatabase();
[comm_status, fault_status] FmsChangeResourceGroup();
[comm_status, fault_status] FmsDeleteGroupRequest();

[comm_status, fault_status] CpDepositCryptoCheckpoint();
[comm_status, fault_status] CpRetrieveCryptoCheckpoint();
[comm_status, fault_status] CpDeleteCryptoCheckpoint();

[comm_status, fault_status] FmsAddResourceDependency();
[comm_status, fault_status] FmsRemoveResourceDependency();
[comm_status, fault_status] FmsCreateResource2();

}


[ explicit_handle,
  strict_context_handle
] interface ExtroCluster
{
[comm_status, fault_status] DmSyncDatabase();

[comm_status, fault_status] NmRpcEnumNodeDefinitions();
[comm_status, fault_status] NmRpcEnumNetworkDefinitions();
[comm_status, fault_status] NmRpcEnumInterfaceDefinitions();
[comm_status, fault_status] NmRpcCreateNetwork();
[comm_status, fault_status] NmRpcCreateInterface();
[comm_status, fault_status] NmRpcSetInterfaceInfo();
[comm_status, fault_status] NmRpcDeleteInterface();
[comm_status, fault_status] NmRpcJoinBegin();
[comm_status, fault_status] NmRpcCreateBinding();
[comm_status, fault_status] NmRpcPetitionForMembership();
[comm_status, fault_status] JoinAddNode();
[comm_status, fault_status] TestRPCSecurity();

//
// New procedures for version 2.0 (NT 5.0) that are understood by
// NT4 SP4.
//
[comm_status, fault_status] NmRpcJoinBegin2();
[comm_status, fault_status] JoinAddNode2();
[comm_status, fault_status] NmRpcEnumNodeDefinitions2();
[comm_status, fault_status] NmRpcEnumInterfaceDefinitions2();
[comm_status, fault_status] NmRpcCreateNetwork2();
[comm_status, fault_status] NmRpcCreateInterface2();
[comm_status, fault_status] NmRpcSetInterfaceInfo2();
[comm_status, fault_status] NmRpcSetNetworkName();
[comm_status, fault_status] NmRpcReportJoinerInterfaceConnectivity();
[comm_status, fault_status] NmRpcEnumNetworkAndInterfaceStates();
[comm_status, fault_status] NmRpcGetLeaderNodeId();

//
// New procedures for version 2.0 (NT 5.0) that are not understood by
// NT4 SP4.
//
[comm_status, fault_status] JoinAddNode3();
[comm_status, fault_status] NmRpcAddNode();

//
// New structures and procedures added for version 2.1 (NT 5.1)
// that are not understood by NT 5.0 or earlier
//
[comm_status, fault_status] NmRpcJoinBegin3();

}

[ explicit_handle, strict_context_handle ] interface JoinVersion

{

[comm_status, fault_status] CsRpcGetJoinVersionData();

}