Export (0) Print
Expand All

6.1 Protocol Version 2.0

import "ms-dtyp.idl";

 [
     uuid(b97db8b2-4c63-11cf-bff6-08002be23f2f), 
    version(2.0)
 ]
 interface clusapi
 {
 
 typedef [context_handle] void *HCLUSTER_RPC;
 typedef [context_handle] void *HNODE_RPC;
 typedef [context_handle] void *HGROUP_RPC;
 typedef [context_handle] void *HRES_RPC;
 typedef [context_handle] void *HKEY_RPC;
 typedef [context_handle] void *HNOTIFY_RPC;
 typedef [context_handle] void *HNETWORK_RPC;
 typedef [context_handle] void *HNETINTERFACE_RPC;
 

 typedef struct _RPC_SECURITY_DESCRIPTOR {
     [ size_is( cbInSecurityDescriptor ),
       length_is( cbOutSecurityDescriptor ) ]
       unsigned char *lpSecurityDescriptor;
     unsigned long cbInSecurityDescriptor;
     unsigned long cbOutSecurityDescriptor;
 } RPC_SECURITY_DESCRIPTOR, *PRPC_SECURITY_DESCRIPTOR;
 
 
 typedef struct _RPC_SECURITY_ATTRIBUTES {
     unsigned long nLength;
     RPC_SECURITY_DESCRIPTOR RpcSecurityDescriptor;
     long bInheritHandle;
 } RPC_SECURITY_ATTRIBUTES, *PRPC_SECURITY_ATTRIBUTES;
 
 
 typedef struct _CLUSTER_OPERATIONAL_VERSION_INFO {
     unsigned long dwSize;
     unsigned longdwClusterHighestVersion;
     unsigned longdwClusterLowestVersion;
     unsigned longdwFlags;
     unsigned longdwReserved;
 }CLUSTER_OPERATIONAL_VERSION_INFO,*PCLUSTER_OPERATIONAL_VERSION_INFO;
 
 
 

 HCLUSTER_RPC
 ApiOpenCluster(
     [ out ] error_status_t *Status
     );
 
 error_status_t
 ApiCloseCluster(
     [ in, out ] HCLUSTER_RPC *Cluster
     );
 
 error_status_t 
 ApiSetClusterName(
     [in, string] const wchar_t* NewClusterName
     );
 
 error_status_t
 ApiGetClusterName(
     [ out ] [string] wchar_t * *ClusterName,
     [ out ] [string] wchar_t * *NodeName
     );
 
 error_status_t
 ApiGetClusterVersion(
     [ out ] unsigned short *lpwMajorVersion,
     [ out ] unsigned short *lpwMinorVersion,
     [ out ] unsigned short *lpwBuildNumber,
     [ out, string ]  wchar_t * *lpszVendorId,
     [ out, string ]  wchar_t * *lpszCSDVersion
     );
 
 error_status_t
 ApiGetQuorumResource(
     [ out, string ] LPWSTR *lpszResourceName,
     [ out, string ] LPWSTR *lpszDeviceName,
     [ out ] DWORD *pdwMaxQuorumLogSize
     );
 
 error_status_t
 ApiSetQuorumResource(
     [ in ] HRES_RPC hResource,
     [ in, string ] LPCWSTR  lpszDeviceName,
     [ in ] DWORD    dwMaxQuorumLogSize
     );    

 
 typedef struct _ENUM_ENTRY {
     unsigned long Type;
     [string] wchar_t * Name;
 } ENUM_ENTRY, *PENUM_ENTRY;
 
 typedef struct _ENUM_LIST {
     unsigned long EntryCount;
     [size_is(EntryCount)] ENUM_ENTRY Entry[*];
 } ENUM_LIST, *PENUM_LIST;
 
 error_status_t
 ApiCreateEnum(
     [ in ] unsigned long dwType,
     [ out ] PENUM_LIST *ReturnEnum
     );

 
 HRES_RPC
 ApiOpenResource(
     [ in, string ]  const wchar_t * lpszResourceName,
     [ out ] error_status_t *Status
     );
 
 HRES_RPC
 ApiCreateResource(
     [ in ] HGROUP_RPC hGroup,
     [ in, string ] const wchar_t * lpszResourceName,
     [ in, string ] const wchar_t * lpszResourceType,
     [ in ] unsigned long dwFlags,
     [ out ] error_status_t *Status
     );
     
 error_status_t
 ApiDeleteResource(
     [in] HRES_RPC hResource
     );
     
 error_status_t
 ApiCloseResource(
     [ in, out ] HRES_RPC *Resource
     );
 
 error_status_t
 ApiGetResourceState(
     [ in ] HRES_RPC hResource,
     [ out ] unsigned long *State,
     [ out, string ] wchar_t * *NodeName,
     [ out, string ] wchar_t * *GroupName
     );
 
 error_status_t 
 ApiSetResourceName(
     [in] HRES_RPC hResource,
     [in, string] const wchar_t* lpszResourceName
     );
 
 error_status_t
 ApiGetResourceId(
     [ in ] HRES_RPC hResource,
     [ out, string ] wchar_t * *pGuid
     );
 
 error_status_t
 ApiGetResourceType(
     [ in ] HRES_RPC hResource,
     [ out, string ] wchar_t * *lpszResourceType
     );
 
 error_status_t 
ApiFailResource(
     [in] HRES_RPC hResource
     );
 
 error_status_t
 ApiOnlineResource(
     [ in ] HRES_RPC hResource
     );
 
 error_status_t
 ApiOfflineResource(
     [ in ] HRES_RPC hResource
     );
 
 error_status_t
 ApiAddResourceDependency(
     [ in ] HRES_RPC hResource,
     [ in ] HRES_RPC hDependsOn
     );
 
 error_status_t
 ApiRemoveResourceDependency(
     [ in ] HRES_RPC hResource,
     [ in ] HRES_RPC hDependsOn
     );
 
 error_status_t 
ApiCanResourceBeDependent(
     [in] HRES_RPC hResource,
     [in] HRES_RPC hResourceDependent
     );
 
 error_status_t
 ApiCreateResEnum(
     [ in ] HRES_RPC hResource,
     [ in ] unsigned long dwType,
     [ out ] PENUM_LIST *ReturnEnum
     );
 
 error_status_t
 ApiAddResourceNode(
     [ in ] HRES_RPC hResource,
     [ in ] HNODE_RPC hNode
     );
 
 error_status_t
 ApiRemoveResourceNode(
     [ in ] HRES_RPC hResource,
     [ in ] HNODE_RPC hNode
     );
 
 error_status_t
 ApiChangeResourceGroup(
     [ in ] HRES_RPC hResource,
     [ in ] HGROUP_RPC hGroup
     );
 
 error_status_t
 ApiCreateResourceType(
     [ in, string ] const wchar_t * lpszTypeName,
     [ in, string ] const wchar_t * lpszDisplayName,
     [ in, string ] const wchar_t * lpszDllName,
     [ in ] unsigned long dwLooksAlive,
     [ in ] unsigned long dwIsAlive
     );
 
 error_status_t
 ApiDeleteResourceType(
     [ in, string ] const wchar_t * lpszTypeName
     );
 

 HKEY_RPC
 ApiGetRootKey(
     [ in ] unsigned long samDesired,
     [ out ] error_status_t *Status
     );
 
 HKEY_RPC
 ApiCreateKey(
     [ in ] HKEY_RPC hKey,
     [ in, string ] const wchar_t * lpSubKey,
     [ in ] unsigned long dwOptions,
     [ in ] unsigned long samDesired,
     [ in, unique ] PRPC_SECURITY_ATTRIBUTES lpSecurityAttributes,
     [ out ] unsigned long * lpdwDisposition,
     [ out ] error_status_t *Status
     );
 
 HKEY_RPC
 ApiOpenKey(
     [ in ] HKEY_RPC hKey,
     [ in, string ] const wchar_t * lpSubKey,
     [ in ] unsigned long samDesired,
     [ out ] error_status_t *Status
     );
 
 error_status_t
 ApiEnumKey(
     [ in ] HKEY_RPC hKey,
     [ in ] unsigned long dwIndex,
     [ out, string ] wchar_t * *KeyName,
     [ out ] FILETIME *lpftLastWriteTime
     );
 
 error_status_t
 ApiSetValue(
     [ in ] HKEY_RPC hKey,
     [ in, string ] const wchar_t * lpValueName,
     [ in ] unsigned long dwType,
     [ in, size_is(cbData) ] const unsigned char *lpData,
     [ in ] unsigned long cbData
     );
 
 error_status_t
 ApiDeleteValue(
     [ in ] HKEY_RPC hKey,
     [ in, string ] const wchar_t * lpValueName
     );
 
 error_status_t
 ApiQueryValue(
     [ in ] HKEY_RPC hKey,
     [ in, string ] const wchar_t * lpValueName,
     [ out ] unsigned long *lpValueType,
     [ out, size_is(cbData) ] unsigned char *lpData,
     [ in ] unsigned long cbData,
     [ out ] unsigned long * lpcbRequired
     );
 
 error_status_t
 ApiDeleteKey(
     [ in ] HKEY_RPC hKey,
     [ in, string ] const wchar_t * lpSubKey
     );
 
 error_status_t
 ApiEnumValue(
     [ in ] HKEY_RPC hKey,
     [ in ] unsigned long dwIndex,
     [ out, string ] wchar_t * *lpValueName,
     [ out ] unsigned long * lpType,
     [ out, size_is(*lpcbData) ] unsigned char *lpData,
     [ in, out ] unsigned long * lpcbData,
     [ out ] unsigned long * TotalSize
     );
 
 error_status_t
 ApiCloseKey(
     [ in, out ] HKEY_RPC *pKey
     );
 
 error_status_t
 ApiQueryInfoKey(
     [ in ] HKEY_RPC hKey,
     [ out ] LPDWORD lpcSubKeys,
     [ out ] LPDWORD lpcbMaxSubKeyLen,
     [ out ] LPDWORD lpcValues,
     [ out ] LPDWORD lpcbMaxValueNameLen,
     [ out ] LPDWORD lpcbMaxValueLen,
     [ out ] LPDWORD lpcbSecurityDescriptor,
     [ out ] PFILETIME lpftLastWriteTime
     );
 
 error_status_t
 ApiSetKeySecurity(
     [ in ] HKEY_RPC hKey,
     [ in ] DWORD SecurityInformation,
     [ in ] PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptor
     );
 
 error_status_t
 ApiGetKeySecurity(
     [ in ] HKEY_RPC hKey,
     [ in ] DWORD SecurityInformation,
     [ in, out ] PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptor
     );

 
 HGROUP_RPC
 ApiOpenGroup(
     [ in, string ] const wchar_t * lpszGroupName,
     [ out ] error_status_t *Status
     );
 
 HGROUP_RPC
 ApiCreateGroup(
     [ in, string ] LPCWSTR lpszGroupName,
     [ out ] error_status_t *Status
     );
 
 error_status_t
 ApiDeleteGroup(
     [ in ] HGROUP_RPC Group
     );    
 
 error_status_t
 ApiCloseGroup(
     [ in, out ] HGROUP_RPC *Group
     );
 
 error_status_t
 ApiGetGroupState(
     [ in ] HGROUP_RPC hGroup,
     [ out ] unsigned long *State,
     [ out, string ] wchar_t * *NodeName
     );
 
 error_status_t
 ApiSetGroupName(
     [ in ] HGROUP_RPC hGroup,
     [ in, string ] LPCWSTR lpszGroupName
     );
 
 error_status_t
 ApiGetGroupId(
     [ in ] HGROUP_RPC hGroup,
     [ out, string ] LPWSTR *pGuid
     );
 
 error_status_t
 ApiGetNodeId(
     [ in ] HNODE_RPC hNode,
     [ out, string ] LPWSTR *pGuid
     );
 
 error_status_t
 ApiOnlineGroup(
     [ in ] HGROUP_RPC hGroup
     );
 
 error_status_t
 ApiOfflineGroup(
     [ in ] HGROUP_RPC hGroup
     );
 
 error_status_t
 ApiMoveGroup(
     [ in ] HGROUP_RPC hGroup
     );
 
 error_status_t
 ApiMoveGroupToNode(
     [ in ] HGROUP_RPC hGroup,
     [ in ] HNODE_RPC hNode
     );
     
 
 error_status_t
 ApiCreateGroupResourceEnum(
     [ in ] HGROUP_RPC hGroup,
     [ in ] unsigned long dwType,
     [ out ] PENUM_LIST *ReturnEnum
     );
 
 error_status_t
 ApiSetGroupNodeList(
     [ in ] HGROUP_RPC hGroup,
     [ in, unique, size_is(cbListSize) ] UCHAR *lpNodeList,
     [ in ] DWORD cbListSize
     );
 
 HNOTIFY_RPC
 ApiCreateNotify(
     [ out ] error_status_t *Status
     );
 
 error_status_t
 ApiCloseNotify(
     [ in, out ] HNOTIFY_RPC *Notify
     );
 
 error_status_t
 ApiAddNotifyCluster(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HCLUSTER_RPC hCluster,
     [ in ] DWORD dwFilter,
     [ in ] DWORD dwNotifyKey
     );
 
 error_status_t
 ApiAddNotifyNode(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HNODE_RPC hNode,
     [ in ] DWORD dwFilter,
     [ in ] DWORD dwNotifyKey,
     [ out ] DWORD *dwStateSequence
     );
 
 error_status_t
 ApiAddNotifyGroup(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HGROUP_RPC hGroup,
     [ in ] DWORD dwFilter,
     [ in ] DWORD dwNotifyKey,
     [ out ] DWORD *dwStateSequence
     );
 
 error_status_t
 ApiAddNotifyResource(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HRES_RPC hResource,
     [ in ] DWORD dwFilter,
     [ in ] DWORD dwNotifyKey,
     [ out ] DWORD *dwStateSequence
     );
 
 error_status_t
 ApiAddNotifyKey(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HKEY_RPC hKey,
     [ in ] DWORD dwNotifyKey,
     [ in ] DWORD Filter,
     [ in ] BOOL WatchSubTree
     );
 
 error_status_t
 ApiReAddNotifyNode(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HNODE_RPC hNode,
     [ in ] DWORD dwFilter,
     [ in ] DWORD dwNotifyKey,
     [ in ] DWORD StateSequence
     );
 
 error_status_t
 ApiReAddNotifyGroup(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HGROUP_RPC hGroup,
     [ in ] DWORD dwFilter,
     [ in ] DWORD dwNotifyKey,
     [ in ] DWORD StateSequence
     );
 
 error_status_t
 ApiReAddNotifyResource(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HRES_RPC hResource,
     [ in ] DWORD dwFilter,
     [ in ] DWORD dwNotifyKey,
     [ in ] DWORD StateSequence
     );
 
 error_status_t
 ApiGetNotify(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] DWORD Timeout,
     [ out ] DWORD *dwNotifyKey,
     [ out ] DWORD *dwFilter,
     [ out ] DWORD *dwStateSequence,
     [ out, string ] LPWSTR *Name
     );
 
 HNODE_RPC
 ApiOpenNode(
     [ in, string ] const wchar_t * lpszNodeName,
     [ out ] error_status_t *Status
     );
 
 error_status_t
 ApiCloseNode(
     [ in, out ] HNODE_RPC *Node
     );
 
 error_status_t
 ApiGetNodeState(
     [ in ] HNODE_RPC hNode,
     [ out ] unsigned long *State
     );
 
 error_status_t
 ApiPauseNode(
     [ in ] HNODE_RPC hNode
     );
 
 error_status_t
 ApiResumeNode(
     [ in ] HNODE_RPC hNode
     );
 
 error_status_t
 ApiEvictNode(
     [ in ] HNODE_RPC hNode
     );

 error_status_t
 ApiNodeResourceControl(
     [ in ] HRES_RPC hResource,
     [ in ] HNODE_RPC hNode,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );    
 
 error_status_t
 ApiResourceControl(
     [ in ] HRES_RPC hResource,
     [ in ] unsigned long dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] unsigned char *lpInBuffer,
     [ in ] unsigned long nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] unsigned char *lpOutBuffer,
     [ in ] unsigned long nOutBufferSize,
     [ out ] unsigned long *lpBytesReturned,
     [ out ] unsigned long *lpcbRequired
     );
 
 error_status_t
 ApiNodeResourceTypeControl(
     [ in ] HCLUSTER_RPC hCluster,
     [ in, string ] LPCWSTR lpszResourceTypeName,
     [ in ] HNODE_RPC hNode,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 ApiResourceTypeControl(
     [ in ] HCLUSTER_RPC hCluster,
     [ in, string ] LPCWSTR lpszResourceTypeName,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 ApiNodeGroupControl(
     [ in ] HGROUP_RPC hGroup,
     [ in ] HNODE_RPC hNode,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 ApiGroupControl(
     [ in ] HGROUP_RPC hGroup,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 ApiNodeNodeControl(
     [ in ] HNODE_RPC hNode,
     [ in ] HNODE_RPC hHostNode,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
        length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 ApiNodeControl(
     [ in ] HNODE_RPC hNode,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 Opnum80NotUsedOnWire(void);

 
 HNETWORK_RPC
 ApiOpenNetwork(
     [ in, string ] LPCWSTR lpszNetworkName,
     [ out ] error_status_t *Status
     );
 
 error_status_t
 ApiCloseNetwork(
     [ in, out ] HNETWORK_RPC *Network
     );
 
 error_status_t
 ApiGetNetworkState(
     [ in ] HNETWORK_RPC hNetwork,
     [ out ] DWORD *State
     );
 
 error_status_t
 ApiSetNetworkName(
     [ in ] HNETWORK_RPC hNetwork,
     [ in, string ] LPCWSTR lpszNetworkName
     );
 
 error_status_t
 ApiCreateNetworkEnum(
     [ in ] HNETWORK_RPC hNetwork,
     [ in ] DWORD dwType,
     [ out ] PENUM_LIST *ReturnEnum
     );
 
 error_status_t
 ApiGetNetworkId(
     [ in ] HNETWORK_RPC hNetwork,
     [ out, string ] LPWSTR *pGuid
     );
 
 error_status_t
 ApiSetNetworkPriorityOrder(
     [ in, range(0, 1000)] DWORD NetworkCount,
     [ in, string, size_is(NetworkCount) ] LPWSTR NetworkIdList[*]
     );
 
 error_status_t
 ApiNodeNetworkControl(
     [ in ] HNETWORK_RPC hNetwork,
     [ in ] HNODE_RPC hNode,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 ApiNetworkControl(
     [ in ] HNETWORK_RPC hNetwork,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 ApiAddNotifyNetwork(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HNETWORK_RPC hNetwork,
     [ in ] DWORD dwFilter,
     [ in ] DWORD dwNotifyKey,
     [ out ] DWORD *dwStateSequence
     );
 
 error_status_t
 ApiReAddNotifyNetwork(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HNETWORK_RPC hNetwork,
     [ in ] DWORD dwFilter,
     [ in ] DWORD dwNotifyKey,
     [ in ] DWORD StateSequence
     );
 
 HNETINTERFACE_RPC
 ApiOpenNetInterface(
     [ in, string ] LPCWSTR lpszNetInterfaceName,
     [ out ] error_status_t *Status
     );
 
 error_status_t
 ApiCloseNetInterface(
     [ in, out ] HNETINTERFACE_RPC *NetInterface
     );
 
 error_status_t
 ApiGetNetInterfaceState(
     [ in ] HNETINTERFACE_RPC hNetInterface,
     [ out ] DWORD *State
     );
 
 error_status_t
 ApiGetNetInterface(
     [ in, string ] LPCWSTR lpszNodeName,
     [ in, string ] LPCWSTR lpszNetworkName,
     [ out, string ] LPWSTR *lppszInterfaceName
     );
 
 error_status_t
 ApiGetNetInterfaceId(
     [ in ] HNETINTERFACE_RPC hNetInterface,
     [ out, string ] LPWSTR *pGuid
     );
 
 error_status_t
 ApiNodeNetInterfaceControl(
     [ in ] HNETINTERFACE_RPC hNetInterface,
     [ in ] HNODE_RPC hNode,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 ApiNetInterfaceControl(
     [ in ] HNETINTERFACE_RPC hNetInterface,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 ApiAddNotifyNetInterface(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HNETINTERFACE_RPC hNetInterface,
     [ in ] DWORD dwFilter,
     [ in ] DWORD dwNotifyKey,
     [ out ] DWORD *dwStateSequence
     );
 
 error_status_t
 ApiReAddNotifyNetInterface(
     [ in ] HNOTIFY_RPC hNotify,
     [ in ] HNETINTERFACE_RPC hNetInterface,
     [ in ] DWORD dwFilter,
     [ in ] DWORD dwNotifyKey,
     [ in ] DWORD StateSequence
     );
 
 error_status_t
 ApiCreateNodeEnum(
     [ in ] HNODE_RPC hNode,
     [ in ] DWORD dwType,
     [ out ] PENUM_LIST *ReturnEnum
     );    
 
 error_status_t
 ApiGetClusterVersion2(
     [ out ] unsigned short *lpwMajorVersion,
     [ out ] unsigned short *lpwMinorVersion,
     [ out ] unsigned short *lpwBuildNumber,
     [ out, string ] wchar_t * *lpszVendorId,
     [ out, string ] wchar_t * *lpszCSDVersion,
     [ out ] PCLUSTER_OPERATIONAL_VERSION_INFO *ppClusterOpVerInfo
     );
 
 error_status_t
 ApiCreateResTypeEnum(
     [ in, string ] LPCWSTR lpszTypeName,
     [ in ] DWORD dwType,
     [ out ] PENUM_LIST *ReturnEnum
     );
 
 error_status_t
 ApiBackupClusterDatabase(
     [ in, string ] LPCWSTR lpszPathName
     );
 
 error_status_t
 ApiNodeClusterControl(
     [ in ] HCLUSTER_RPC hCluster,
     [ in ] HNODE_RPC hHostNode,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 ApiClusterControl(
     [ in ] HCLUSTER_RPC hCluster,
     [ in ] DWORD dwControlCode,
     [ in, unique, size_is(nInBufferSize) ] UCHAR *lpInBuffer,
     [ in ] DWORD nInBufferSize,
     [ out, size_is(nOutBufferSize),
         length_is (*lpBytesReturned)] UCHAR *lpOutBuffer,
     [ in ] DWORD nOutBufferSize,
     [ out ] DWORD *lpBytesReturned,
     [ out ] DWORD *lpcbRequired
     );
 
 error_status_t
 ApiUnblockGetNotifyCall(
     [ in ] HNOTIFY_RPC hNotify
     );
 
 typedef struct IDL_CLUSTER_SET_PASSWORD_STATUS {
     DWORD    NodeId;
     BOOLEAN  SetAttempted;
     DWORD    ReturnStatus;
 } IDL_CLUSTER_SET_PASSWORD_STATUS, *PIDL_CLUSTER_SET_PASSWORD_STATUS;
 
 typedef enum IDL_CLUSTER_SET_PASSWORD_FLAGS {
     IDL_CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES = 1
 } IDL_CLUSTER_SET_PASSWORD_FLAGS;
 
 error_status_t
 ApiSetServiceAccountPassword(
     [ in, string ] LPWSTR lpszNewPassword,
     [ in ]  IDL_CLUSTER_SET_PASSWORD_FLAGS dwFlags,
     [ out, size_is(ReturnStatusBufferSize),
         length_is(*SizeReturned) ] IDL_CLUSTER_SET_PASSWORD_STATUS
         ReturnStatusBufferPtr[*],
     [ in ] DWORD ReturnStatusBufferSize,
     [ out ] DWORD *SizeReturned,
     [ out ] DWORD *ExpectedBufferSize
     );
}
 
Show:
© 2015 Microsoft