Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Except for the methods that return context handles, the methods comprising this RPC interface all return 0x00000000 to indicate success and a nonzero error code to indicate failure. Aside from the values listed in section 3.2.4.6 and the values that represent particular error conditions listed in section 3.1.4, the server can return any implementation-specific nonzero Win32 error value to signify an error condition (as specified in section 1.8). The values listed in section 3.2.4.6 indicate a cluster node failure and MUST be used as specified in section 3.2.4.6. Certain error codes that are returned by some methods SHOULD cause the client to attempt to reconnect to the cluster, as specified in section 3.2.4.6.
Methods that return context handles MUST return a valid context handle to indicate success and NULL to indicate failure.
Certain methods require the client to supply one or more context handles that are obtained by a previous method call. In particular:
The ApiOpenCluster method or the ApiOpenClusterEx method MUST be called in order to obtain an HCLUSTER_RPC context handle prior to invoking the following methods: ApiAddNotifyCluster, ApiNodeResourceTypeControl, ApiResourceTypeControl, ApiNodeClusterControl, ApiClusterControl, ApiCreateNetInterfaceEnum, and ApiCloseCluster. After ApiCloseCluster is called, the specified HCLUSTER_RPC context handle is no longer valid.
The ApiOpenNode method or the ApiOpenNodeEx method MUST be called in order to obtain an HNODE_RPC context handle prior to invoking the following methods: ApiAddResourceNode, ApiRemoveResourceNode, ApiGetNodeId, ApiMoveGroupToNode, ApiAddNotifyNode, ApiReAddNotifyNode, ApiGetNodeState, ApiCloseNode, ApiPauseNode, ApiResumeNode, ApiEvictNode, ApiNodeResourceControl, ApiNodeResourceTypeControl, ApiNodeGroupControl, ApiNodeNodeControl, ApiNodeControl, ApiNodeNetworkControl, ApiNodeNetInterfaceControl, ApiCreateNodeEnum, and ApiNodeClusterControl. After ApiCloseNode is invoked, the specified HNODE_RPC context handle is no longer valid.
The ApiOpenGroup method, the ApiOpenGroupEx method, or the ApiCreateGroup method MUST be called in order to obtain an HGROUP_RPC context handle prior to invoking the following methods: ApiCreateResource, ApiChangeResourceGroup, ApiDeleteGroup, ApiSetGroupName, ApiGetGroupId, ApiGetNodeId, ApiOnlineGroup, ApiOfflineGroup, ApiSetGroupNodeList, ApiAddNotifyGroup, ApiReAddNotifyGroup, ApiNodeGroupControl, ApiGroupControl, ApiCreateGroupResourceEnum, ApiGetGroupState, ApiMoveGroup, ApiMoveGroupToNode, ApiSetGroupDependencyExpression, ApiRemoveClusterGroupDependency, ApiAddGroupSetDependency, ApiAddGroupToGroupSetDependency, and ApiCloseGroup. After ApiCloseGroup is called, the specified HGROUP_RPC context handle is no longer valid.
The ApiOpenResource method, the ApiOpenResourceEx method, or the ApiCreateResource method MUST be called in order to obtain an HRES_RPC context handle prior to invoking the following methods: ApiSetQuorumResource, ApiDeleteResource, ApiSetResourceName, ApiGetResourceType, ApiFailResource, ApiCanResourceBeDependent, ApiAddResourceNode, ApiRemoveResourceNode, ApiChangeResourceGroup, ApiAddNotifyResource, ApiReAddNotifyResource, ApiSetResourceDependencyExpression, ApiGetResourceDependencyExpression, ApiGetResourceNetworkName, ApiGetResourceState, ApiGetResourceId, ApiOnlineResource, ApiOfflineResource, ApiAddResourceDependency, ApiRemoveResourceDependency, ApiCreateResEnum, ApiNodeResourceControl, ApiResourceControl, ApiChangeCsvStateEx, and ApiCloseResource. After ApiCloseResource is called, the specified HRES_RPC context handle is no longer valid.
Either the ApiGetRootKey, the ApiCreateKey, or the ApiOpenKey method MUST be called in order to obtain an HKEY_RPC context handle prior to invoking the following methods: ApiCreateKey, ApiOpenKey, ApiEnumKey, ApiSetValue, ApiDeleteValue, ApiQueryValue, ApiDeleteKey, ApiEnumValue, ApiQueryInfoKey, ApiSetKeySecurity, ApiGetKeySecurity, ApiAddNotifyKey, ApiExecuteBatch, ApiCreateBatchPort, ApiGetBatchNotification, ApiCloseBatchPort, and ApiCloseKey. After ApiCloseKey is called, the specified HKEY_RPC context handle is no longer valid.
The ApiCreateNotify method MUST be called in order to obtain an HNOTIFY_RPC context handle prior to calling the following methods: ApiAddNotifyCluster, ApiAddNotifyNode, ApiAddNotifyGroup, ApiAddNotifyResource, ApiAddNotifyKey, ApiAddNotifyNetwork, ApiAddNotifyNetInterface, ApiReAddNotifyNode, ApiReAddNotifyGroup, ApiReAddNotifyResource, ApiReAddNotifyNetwork, ApiReAddNotifyNetInterface, ApiUnblockGetNotifyCall, and ApiCloseNotify. After ApiCloseNotify is called, the specified HNOTIFY_RPC context handle is no longer valid.
Either the ApiOpenNetwork or ApiOpenNetworkEx method MUST be called in order to obtain an HNETWORK_RPC context handle prior to calling the following methods: ApiGetNetworkState, ApiSetNetworkName, ApiCreateNetworkEnum, ApiGetNetworkId, ApiSetNetworkPriorityOrder, ApiNodeNetworkControl, ApiNetworkControl, ApiAddNotifyNetwork, ApiReAddNotifyNetwork, and ApiCloseNetwork. After ApiCloseNetwork is called, the specified HNETWORK_RPC context handle is no longer valid.
Either the ApiOpenNetInterface or ApiOpenNetInterfaceEx method MUST be called in order to obtain an HNETINTERFACE_RPC context handle prior to calling the following methods: ApiGetNetInterfaceState, ApiGetNetInterfaceId, ApiNodeNetInterfaceControl, ApiNetInterfaceControl, ApiAddNotifyNetInterface, ApiReAddNotifyNetInterface, and ApiCloseNetInterface. After ApiCloseNetInterface is called, the specified HNETINTERFACE_RPC context handle is no longer valid.
The ApiCreateBatchPort method MUST be called in order to obtain an HBATCH_PORT_RPC context handle prior to calling the following methods: ApiGetBatchNotification and ApiCloseBatchPort. After ApiCloseBatchPort is called, the specified HBATCH_PORT_RPC context handle is no longer valid.