3.1.4.1.26 ApiChangeResourceGroup (Opnum 25)

(Protocol Version 2) The ApiChangeResourceGroup method moves the designated resource and all the resources in its dependency tree out of its current group and into the designated group. The nonvolatile cluster state is updated to reflect this change.

The server MUST fail this method if the resource is already a member of the group designated by hGroup. In this event, the server returns ERROR_ALREADY_EXISTS.

The server fails this method using error ERROR_HOST_NODE_NOT_GROUP_OWNER if the group containing hResource and the destination group are not hosted on the same node.

The resource state sequence number MUST be monotonically incremented when the resource is transferred to another group.

The server MUST accept an ApiChangeResourceGroup request for processing only if it is in the read/write state, as specified in section 3.1.1.

 error_status_t ApiChangeResourceGroup(
   [in] HRES_RPC hResource,
   [in] HGROUP_RPC hGroup
 );

hResource: An HRES_RPC context handle that was obtained in a previous ApiOpenResource or ApiCreateResource method call.

hGroup: An HGROUP_RPC context handle that was obtained in a previous ApiOpenGroup or ApiCreateGroup method call.

Return Values: The method MUST return the following error codes for the specified conditions.

Return value/code

Description

0x00000000

ERROR_SUCCESS

Success.

0x00000006

ERROR_INVALID_HANDLE

Either the hResource parameter does not represent a valid HRES_RPC context handle or the hGroup parameter does not represent a valid HGROUP_RPC context handle.

0x000000B7

ERROR_ALREADY_EXISTS

See the preceding text for when this error can occur.

0x0000138E

ERROR_RESOURCE_NOT_AVAILABLE

The resource represented by the hResource parameter no longer exists in the nonvolatile cluster state.

0x00001394

ERROR_GROUP_NOT_AVAILABLE

The group represented by the hGroup parameter no longer exists in the nonvolatile cluster state.

0x00001398

ERROR_HOST_NODE_NOT_GROUP_OWNER

See the preceding text for details of when this error can occur.

For any other condition, the server MUST set Status to a value that is not one of the values listed in the preceding table. The client MUST treat all values that are not listed in the preceding table the same, except as specified in section 3.2.4.6.